Jan
Weiß

Projects I worked on

  1. bHere

    bHere helps you put your phone away, whether you are with friends or focusing on your own work. Group games add playful stakes to phone use, while solo sessions help you stay on task.

  2. Speislist

    Model Context Protocol Server for managing shopping lists and inventories, demonstrating the potential of AI-agent-friendly everyday applications.

  3. Geschmeckt

    Geschmeckt makes shopping easier by showing you exactly which products your family and friends love. Scan, rate, and share favorites in groups so you always bring home the right choice.

  4. MoveMates

    MoveMates turns running with friends into a live competition. Runners earn points for their speed and for staying in their personal heart rate zone, while a shared leaderboard updates in real time.

  5. QR Reader for Mac

    A native macOS app that captures QR codes via the Mac's webcam, handles URLs and vCards, and stores a history of scans.

  6. Recipe Scanner

    A web application that uses vision LLMs to extract structured recipe information from photos of printed or handwritten recipes, demonstrating the potential of AI for digitizing and organizing personal data.

  7. Zoo-Sponsorship

    Turning symbolic animal adoptions into verifiable NFTs, Zoo-Sponsorship bridges decentralized tech with real-world impact.

  8. Qr Haystack

    Have you ever searched for the proverbial needle in a haystack? Turn it into a bit of fun and play “Qr Haystack”!

  9. Angehörigendialog

    This project focused on the digital transformation of an interview guide for caregivers of people with dementia. It also included the design of visualizations to support the evaluation and interpretation of responses.

  10. Greenovate

    As part of a student team, I worked closely with a project partner to build a website about urban greening in Krems, including an interactive data visualisation.

Posts

2026

  1. A LaTeX setup which sparks joy

    Improve the ergonomics of working with LaTeX documents using Dev Containers in VS Code

  2. Adapting Websites Based on the User's Input Method

    How to detect and adapt to a user's input method (touch, mouse, or other) in 2026 — and why there's still no perfect solution.

  3. Enable Vue DevTools in a Vue application in production

    If you need to debug a Vue application in production, you can enable the Vue DevTools by running a simple script in the browser console. This will allow you to inspect the Vue components and their state, even in a production environment.

  4. Starting with WebMCP

    A practical introduction to WebMCP: what it is, how it compares to MCP, how to try it today, and a curated collection of implementation resources.

2025

  1. Architecture of large frontend applications

    Practical lessons for keeping large frontend applications maintainable with modularization, SOLID principles, and feature flags.

  2. [GER] TypeScript: Kinderleichte und sichere Interaktion mit LocalStorage, SessionStorage, etc.

    Wie man eine typisierte Storage-Abstraktion mit TypeScript baut und Storage-Keys mit ihren Value-Typen verbindet.

  3. Generating an API client for an Angular Ionic App

    Learn how to automatically generate a type-safe API client for your Ionic/Angular frontend from OpenAPI/Swagger documentation. Includes a practical solution for integrating Capacitor's native HTTP client using dependency injection.

2021

  1. A modern aspect ratio hack

    Until Safari supports the aspect-ratio property the struggle with hacky replacements continues. This article examines a new and flexible solution for enforcing an aspect ratio on an element.

  2. The sliding sidewalk: preventing a dropdown element from exceeding the screen

    A CSS pattern that keeps an absolutely positioned element inside the viewport.

  3. CSS Layout: Multi-line horizontal list with separators between items

    Learn how we can add separators between horizontal list items and how to make them responsive.

  4. Use Eleventy to compile your Sass files!

    Read how Eleventy can handle the compilation of your Sass files.

2020

  1. Firefox prints the triangle border hack incorrectly

    The CSS hack for creating triangles is cool but there are two problems. It is hard to wrap your head around it and it is printed incorrectly by Firefox. Here is an alternative for us.

  2. Increasing the clickable area of chip buttons

    What to do if the buttons are too small for human fingers? Let's evaluate our options.

  3. How to prevent scrolling triggered by the space key

    Read how to prevent the space key from scrolling the page. And that you probably shouldn't.

  4. Wrapping slot items in Vue.js 2

    Sometimes you have to wrap a component's slot children. Accordions or sliders are good examples of such situations. I thought about this a little bit too much and came up with four different solutions.

  5. Firefox bug: when background-clip and animation-fill-mode are used together

    Read how I discovered a Firefox bug and learn how to fix it.