Sign in

Matze Schmidbauer

@schmidbauer.dev
135 followers 279 following 189 posts

svelte • accessibility • ai • former PM into IT since long • can't code, builds things slave to a dog • proud member of the xBerg Cargobike Ökoschlunzen Gang • feared by houseplants based in berlin • schmidbauer.dev • navigator.berlin

PostsRepliesMedia
Matze Schmidbauer @schmidbauer.dev · 29/09/2026
Berlin voted on 20 Sept, and navigator.berlin now maps it Kiez by Kiez. In 2023 the CDU led the party vote in 96 of 143 Kieze. Now 39. Die Linke leads in 73, up from 4. In 97 Kieze the strongest party changed.
Seven small maps of Berlin, one per party, showing the vote share in the 143 Kieze in the 2026 election. Each marks the strongest and the weakest Kiez. SPD: Gropiusstadt West 18.5%, Neu-Hohenschönhausen Nord 6.2%. CDU: Grunewald 40.8%, Nördliche Luisenstadt 5.0%. Greens: Helmholtzplatz 27.8%, Marzahn Nord 2.8%. FDP: Grunewald 7.1%, Schillerpromenade 0.7%. AfD: Marzahn Nord 45.6%, Südliche Luisenstadt 3.1%. Die Linke: Südliche Luisenstadt 54.5%, Frohnau/Hermsdorf 9.0%. BSW: Köllnische Heide 9.4%, Zehlendorf Südwest 1.6%.Flow diagram of the strongest party in Berlin's 143 Kieze across three elections: 2016, 2023 (repeat election) and 2026. In 2016 the Kieze are split between SPD, Die Linke, CDU, Greens and AfD. In 2023 the CDU leads in most Kieze, the Greens in many others. In 2026 almost all Green Kieze and many CDU Kieze flow to Die Linke, a large share of CDU Kieze goes to the AfD.Map of Berlin showing the strongest party in each polling district in the 2026 state election, party vote, provisional. Die Linke leads in 730 of 1,572 areas, mostly in the inner city (pink). The AfD dominates the north-east and south-east (blue), the CDU the west and south-west (grey). Next to it the Berlin-wide result: Die Linke 25.7% (+13.4), CDU 18.8% (−9.5), AfD 16.3% (+7.2), Greens 14.3% (−4.1), SPD 12.1% (−6.3), BSW 4.7%, FDP 2.5%.
110
Matze Schmidbauer @schmidbauer.dev · 03/09/2026
Yesterday I presented navigator.berlin at the Svelte Society Meetup Berlin: 65 layers of Berlin's open data on one map, from heat to elections to cool places. Thanks to @fubits.dev for the invitation! Slides: svelte-meetup.schmidbauer.dev
A man in a plaid shirt presents a Berlin map titled "The Kiez-Score" on a wall-mounted screen to a seated audience in a bright loft space.
451
Matze Schmidbauer @schmidbauer.dev · 06/08/2026
First time working with @threlte.xyz to visualize the CPC/IPC patent system for patentclassificationexplorer.com/universe and wow, what fun & performance.
1110
Matze Schmidbauer @schmidbauer.dev · 27/06/2026
Heatwave hits Berlin. Where's the shade, where's the water? navigator.berlin Kiez-Score maps green supply and heat protection per planning area. Every public drinking fountain included. Stay safe out there and care for each other. navigator.berlin/explore?laye...
Claude hat geantwortet: Choropleth map of Berlin showing the "Green & Heat" Kiez-Score per planning area, shaded in four green levels from low to very high.Choropleth map of Berlin showing the "Green & Heat" Kiez-Score per planning area, shaded in four green levels from low to very high. Higher values indicate more usable green space and better heat protection. Outer districts are mostly green (high to very high), the inner city grey (low to medium). Blue droplet markers show drinking fountain locations, dense in the centre and sparser toward the edges. Map data OpenFreeMap, OpenMapTiles, and OpenStreetMap.
010
Matze Schmidbauer @schmidbauer.dev · 10/06/2026
navigator.berlin now maps climate, noise, amenities and housing down to the Kiez - and as of today, how much access to culture a Kiez has, plus how much crime the police record there.
a navigator.berlin map showing police crime recorda navigator.berlin map showing cultural access
000
Matze Schmidbauer @schmidbauer.dev · 01/06/2026
Love you too, Claude
Claude: "But the real time-waster is you—not the technology."
000
Matze Schmidbauer @schmidbauer.dev · 23/05/2026
Got a little obsessed with Berlin's messy open data lately. Enter your address or set the pin at navigator.berlin, see your Kiez across boundaries, Kiez-Score, election results, climate, and...ugh so much more...from XLS...really!
Screenshot of navigator.berlin website with some data layers over a berlin map
282
Matze Schmidbauer @schmidbauer.dev · 11/05/2026
I finally made it. Cat content!
A commit graph that outlines a cat
010
Matze Schmidbauer @schmidbauer.dev · 25/11/2025
Works like a charm
System log:
[Anthropic Webhook] Incident investigating: Elevated Error Rates on the API
[Anthropic Webhook] Impact: major
[Claude Health Monitor] Attempting to disable AI features by webhook
[Claude Health Monitor] Updated system settings
[Claude Health Monitor] Logged status change
[Claude Health Monitor] 🔴 AI features DISABLED by webhook (Elevated Error Rates on the API)
[Email] Sending AI disabled notification to 2 superuser(s)
010
Matze Schmidbauer @schmidbauer.dev · 20/11/2025
Time to implement this story 🙄
User Story
As a system administrator / developer
I want the system to automatically detect Claude API outages and disable AI features
So that users get clear feedback instead of cryptic errors and we don't waste time/money on failed requests

Problem
Current behavior when Claude API is down:

❌ Users run tests → get cryptic API errors
❌ Users try DOCX export → fails silently or with error
❌ Agents fail to run → no clear feedback why
❌ System keeps trying to call broken API → wasted resources
❌ No way to know Claude is down until checking status page
020
Matze Schmidbauer @schmidbauer.dev · 16/11/2025
Working on something I'm excited about: extending automated a11y testing with AI agents. Each specializes in WCAG principles, detects edge cases, analyzes code semantics, and uses Playwright. Going beyond what rule-based tools can catch. Agents handle up to 40% of traditionally manual work.
Screenshot of an accessibility evaluation report showing results for criteria such as meaningful sequence, sensory characteristics, orientation, and identifying input purpose. It highlights a passed logical reading order, notes missing autocomplete attributes on common form fields, and displays detailed findings with HTML code samples and technical explanations.
010
Matze Schmidbauer @schmidbauer.dev · 26/09/2025
Also work a bit on AI Visibility of layerchart.com and claude should learn by himself how to better work with it and not always annoy with "let me try with another technique.." 😜
Screenshot of a basic GEOAudit technical analysis of layerchart.com
110
Matze Schmidbauer @schmidbauer.dev · 26/07/2025
There we go. www.geoaud.it is monitoring its own brand now and for a 3-weeks old domain that are good results.
Screenshot from geoaudit Monitoring analytics page
010
Matze Schmidbauer @schmidbauer.dev · 24/07/2025
Two weeks later, after lots of Svelte and @trpc.io and @inngest.com , I'm finally ready to reveal the domain: www.geoaud.it – with it one can audit the Generative Engine Optimization for websites. Status is still “Coming Soon,” but I'm already at 80%.
Screenshot from geoaudit.it input form
020
Matze Schmidbauer @schmidbauer.dev · 12/07/2025
Bought a new domain, so I’m building this right now. Is your website ready for AI crawlers — or did you block them properly?
A dashboard that is currently build. Shows a website that's been tested for AI-Crawlability
010
Matze Schmidbauer @schmidbauer.dev · 10/07/2025
Totally love the fact that Claude also updates Linear issues with context
Asking Claude to add resend as mail dependency and claude updates issues in linear.
000
Matze Schmidbauer @schmidbauer.dev · 10/07/2025
Really looking forward to building this Claude-only project — from concept and issue creation in Claude.ai and Linear, to implementation in Claude Code.
Claude.ai Chat interface, i am asking Claude to create issues in Linear for a new project. And Claude creates issues.
100
Matze Schmidbauer @schmidbauer.dev · 09/07/2025
Added a populism reaction analysis to Stimmungsschau and no wonder, AfD is the one reacting most positively to articles with high populism scores. Who would have thought? stimmungsschau.de/en/partei/afd
Screenshot from stimmungsschau.de populism reaction analysis. Key Finding: AFD reacts most positively to articles with high populism scores (86% positive reactions).
000
Matze Schmidbauer @schmidbauer.dev · 27/12/2024
That's it, that's 2024 for me. Seriously, why is Friday my peak productivity day?
A digital summary card showing the 2024 coding achievements of the user "@mschmdb" from git-wrapped.com.  

The top section displays the user's profile picture, username, and the title "2024 Year in Code". Below this is a contribution heatmap for the year, with the text "1307 contributions in the last year."  

Key statistics are organized into rectangular colored sections:
- **Universal Rank:** Top 2% (crown icon)  
- **Longest Streak:** 9 days (lightning icon)  
- **Total Commits:** 1,307 (trophy icon)  
- **Most Active Month:** October (calendar icon)  
- **Most Active Day:** Friday (bar chart icon)  
- **Stars Earned:** 2 (star icon)  
- **Top Language:** Svelte (rocket icon)  
- **Power Level:** Elite Class (lightning icon)  

At the bottom, the website "git-wrapped.com" is displayed in small text.
000
Matze Schmidbauer @schmidbauer.dev · 04/12/2024
My opening slide for the presentation of the new website today
Slide from a PowerPoint presentation with a dark blue gradient background. The image in the center shows a scene from the movie "Groundhog Day" with a reporter speaking into a microphone, overlaid with the text:  
- **"mtc.berlin"** in large white font at the top.  
- **"Relaunch 2024"** in smaller font in the center.  
- The word **"AGAIN..."** in bold white text at the bottom, emphasizing repetition, referencing the movie's theme.  
A red "REC" icon in the bottom-left corner mimics a recording indicator.
010
Matze Schmidbauer @schmidbauer.dev · 03/12/2024
Ok Monorepo, gotcha. Now you just have to get yourself built...
Screenshot of a terminal window showing a development task for a Monorepo project. On the left, a task manager lists "svelte#dev" and "payload-cms#dev." The right pane shows terminal output:  
- A cache bypass is executed.  
- The command `vite dev` starts the development server.  
- Vite version 5.4.11 is ready after 1678 ms, with a local development server running at `http://localhost:5174/`.  
- The response from a database query displays, humorously ending with: "pagesResponse fuck it, really, you got: 2."  
The interface is on a macOS-like orange background.
000
Matze Schmidbauer @schmidbauer.dev · 28/11/2024
Preparing my slides for PayKit for next week, and maybe I exaggerate a bit 🙄
Flowchart illustrating the process of handling an initial request in a web application with ISR (Incremental Static Regeneration). Key steps include:  
1. Initial request is received.  
2. ISR check determines if the cache is expired or missing.  
   - If valid, serves response with ISR.  
   - Otherwise, continues to load the page.  
3. The page is loaded via `loadPage` in `page-loader.ts`.  
4. Validation of the slug:  
   - If valid, calls tRPC (`getPost` or `getPage`).  
   - If invalid, returns a 400 error ("Slug Required").  
5. Cache check:  
   - On a cache hit, returns cached data.  
   - On a cache miss, fetches data from Payload CMS or logs a fetching error if unsuccessful.  
6. Determines if content is found:  
   - If found, returns the content to the frontend.  
   - If not found, returns a 404 error ("Content Not Found").  
7. Final step checks if ISR is enabled:  
   - If enabled, updates the cache.  
   - If not, serves the response without ISR.
020
Matze Schmidbauer @schmidbauer.dev · 27/11/2024
Well, we're all in the same boat 😮‍💨
Storage overview of a Macintosh HD drive showing 620.64 GB used out of 994.66 GB total capacity. A horizontal bar visualizes storage distribution: red for documents, orange for apps, yellow for messages, green for photos, blue for development, and grey for system data. Free space is labeled as 374.03 GB.
220
Matze Schmidbauer @schmidbauer.dev · 25/11/2024
TIL: Switch off throttling before spending 30 minutes debugging why pages are so slow.
The image shows the Network panel in browser developer tools. It highlights the "Preserve log" checkbox, which is checked, and the network throttling option is set to "Fast 4G," simulating a 4G network connection. Other visible features include buttons for stopping the network log recording, clearing the log, applying filters, and additional network activity options.
010
Matze Schmidbauer @schmidbauer.dev · 10/11/2024
I implemented a generic Cache`<T>` class with Map storage, 1-min TTL. Integrated into router procedures using middleware. Cache.get(key, fetchFn) pattern. Separate caches (content-type). Added invalidateCache mutation. Performance logging via middleware. ❤️
Example implementation of cached queries in tRPC
000
Matze Schmidbauer @schmidbauer.dev · 05/11/2024
Beautiful Berlin 6:30 am
A lonesome dog sitting in the middle of a street
000
Matze Schmidbauer @schmidbauer.dev · 05/11/2024
TIL that using cached queries with @trpc.io is something I never want to miss again. 😍
Console log displaying performance metrics for various queries with cached data. Each line records the query type, the resource it accessed, and the time taken in milliseconds (ms). Examples include:

- `[Performance] query getNavigationData took 0.10ms` - Using cached data for `de`
- `[Performance] query getSatelliteData took 0.30ms` - Using cached data for `de:application-support`
- `[Performance] query getPageData took 0.16ms` - Using cached data for `de:home`

Each query is fetching cached data for different routes, indicated by the `de:` prefix (possibly German language pages), and the process times are all very low, often under 1ms, suggesting efficient cache usage.
110
Matze Schmidbauer @schmidbauer.dev · 02/11/2024
I am currently working on using whtwnd.com on the ATProtocol as a CMS for a ssr Svelte-base blog and I am totally surprised at how smooth the setup has been so far.
Screenshot of my posts in Whitewind, the Blog-Platform on the ATProtocolScreenshot of the deployed Svelte-App with the two Blogposts rendered that got fetched from Whitewind
110
Matze Schmidbauer @schmidbauer.dev · 30/10/2024
Why? Well, that monitor sometimes is not 100% true-color:
BENQ monitor display completely gone wrong.
110
Matze Schmidbauer @schmidbauer.dev · 29/10/2024
Danke, perfekt!
Screenshot of an online pet profile interface titled "My Pets". A pet rat named "Friedrich Merz" is listed under "Pet Profiles" on the left, with a profile completeness indicator showing 50%. A photo of the rat is displayed above the profile information.

To the right, there are "Top Results for Friedrich Merz" featuring various products for small pets, including:
- FELISTORY Wooden Toy for small animals (€10.98)
- Norhogo Rat Hamster Bed (€8.99)
- LeerKing Tunnel for Guinea Pigs (€19.99)
- Various pet food options, hammocks, treats, and other accessories, each with an "Add to Cart" or "View Details" button below.  

Pagination options at the bottom indicate "Page 1 of 4" with options to go back or forward.
000
Matze Schmidbauer @schmidbauer.dev · 26/10/2024
Chapter Accessibility from State of Frontend 2024 is just depressing. ARIA Landmarks not even 50%, really?
Survey results on how developers ensure accessibility in their applications, from Chapter 4.02: Accessibility.

- Semantic, well-structured HTML: 72%
- Alternative texts, titles, and labels: 70.3%
- Styles for active and focused elements: 53.6%
- Sufficient color contrast: 52.2%
- Keyboard navigability: 48.9%
- ARIA landmarks: 45.9%
- Reducing animations / distracting elements: 25%
- Support for visually impaired people: 23.8%
- I don’t do accessibility / It’s not in my responsibilities: 17.2%
- Other: 0.9%

Source: tsh.io/state-of-frontend
000
Matze Schmidbauer @schmidbauer.dev · 25/10/2024
I dub this Feierabend
Screenshot showing perfect scores (100) in four categories for a website audit:
- Performance: 100
- Accessibility: 100
- Best Practices: 100
- SEO: 100

Each score is displayed inside a green circle, with colorful dots surrounding them.
010
Matze Schmidbauer @schmidbauer.dev · 25/10/2024
Now I can even test CMS-Editor's a11y mistakes (like wrong headings) from GitHub Actions. Yay!
Screenshot of a test result interface for "test-a11y-and-deploy". The section shows the results of accessibility tests.

1. **Run accessibility tests**:
   - The tests check for accessibility violations, specifically the contrast between foreground and background colors against WCAG 2 AA minimum contrast ratio thresholds.
   - Two URLs have violations related to color contrast:
     - `/de/whoweare`
     - `/en/whoweare`
   - A 404 page was also tested with no violations found.

2. **Check for violations**:
   - A script is run to check if any accessibility violations are found.
   - The command outputs: "Warning: Accessibility violations found. Check the test results for details."

The test summary shows:
- Test Files: 1 passed
- Tests: 2 passed
- Total duration: 90.82 seconds
000
Matze Schmidbauer @schmidbauer.dev · 23/10/2024
This is the new standard I've set for myself.
GitHub interface showing the status of a pull request. At the top, it says "All checks have passed" with two successful checks listed: "Dev Branch A11y Tests and Deploy / test-a11y-and-deploy (pull_request)" and "Vercel — Deployment has completed". Below, a message indicates that "This branch has no conflicts with the base branch" and that merging can be done automatically. A green button labeled "Merge pull request" is shown at the bottom.
100