Markus Oberlehner
banner
markus.oberlehner.net
Markus Oberlehner
@markus.oberlehner.net
Working on modernizing Austria's digital tax services. Vue / Nuxt, React / Next.js expert, TDD practitioner, Node.js enthusiast, ML padawan.
Controversial opinion: Tabs (the UI concept) were a mistake!

Especially in the browser, they offer no advantage over separate windows, but come with the huge downside of having to use different keyboard shortcuts than the OS already provides for navigating windows.
January 10, 2026 at 10:06 AM
Progress on my journey to digital sovereignty, leaving Apple and Google behind:

- Sold my AirPods Max
- Switched my search engine and browser

For the most part, it won't be as hard as I thought; I only fear the day when my MacBook Pro needs to be replaced. markus.oberlehner.net/blog/escapin...
Escaping the Apple Ecosystem - My Journey to Digital Sovereignty - Markus Oberlehner
Follow my journey as I leave the Apple ecosystem and search for alternatives to regain my digital sovereignty.
markus.oberlehner.net
January 10, 2026 at 9:51 AM
So Tailwind is now showered with sponsorship money. Good.

Now that leaves us with hundreds of other open source libraries, blogs, and ad supported websites that are still struggling.
January 9, 2026 at 7:31 AM
By far the most useful kind of tests! Also with 100% humans in the loop.
also i should emphasize these have to be e2e tests, in the sense of "can completely rewrite the implementation from scratch with no changes to tests". the agent should have NO valid reason to modify the tests themselves while working on the implementation. the whole point is they never drift
January 9, 2026 at 6:51 AM
I have a perfectly fine iPad Air lying around that is completely broken. Just because it gets no updates anymore. Providing full Linux support should be mandatory after ending support.
January 8, 2026 at 4:50 PM
Apple is the champion of providing magical experiences THAT JUST DON'T WORK.

Just now, my girlfriend started typing in our new Wi-Fi password on her iPhone; *magically* a pop-up appeared on my phone asking if I wanted to share the password with her. I pressed yes, but it didn't work.
January 8, 2026 at 8:37 AM
I decided to spend more time on writing and building. So, this might be my only conference next year. But I heard so many great things about @madvue.es that I had to apply for this one!

I am honored to be part of it!
We’re thrilled to welcome @markus.oberlehner.net as a speaker at #MadVue 2026!

Markus, DX Engineer at @storyblok.com , will be joining us for the first time and we can’t wait to have him on stage  🚀
 
Get you tickets now with discount and join us! 
https://madvue.es/

#developers  #frontend
December 9, 2025 at 1:51 PM
I've completely changed my mind on this recently:
**You don't need to become a software company!**

(and you definitely don't need to become an AI company)! Stick to your core competency!
December 1, 2025 at 10:12 AM
On the flip side: Without people like the other Steve, the one who didn't develop emotionally past the age of 13, Woz wouldn't have had the money to fund museums and arts groups.

And you and I wouldn't be staring at some Apple device reading this.

Would it be a net benefit after all? Maybe.
In an era filled with tech dipshits who never developed emotionally past the age of 13 & use their wealth to become odious monsters ...

... listen to Steve Wozniak.
November 22, 2025 at 10:50 AM
Is AI able to write code? I think we can stop asking this question: yes, it can!

Actually, it is way too good at writing (a lot of) code. In a surprising number of cases, when I ask an AI to write a moderately complex piece of code, it will produce an output that works.
November 18, 2025 at 10:58 AM
I’m in both screenshots. I wonder if there should be two types of commits:

1. Quicksave: part of what I’m trying to achieve works, I want to be able to safely go back there and diff new changes against this state.
2. End-of-Level Save: I’ve finished a piece of work that is fully usable.
there are two types. of git authors. it would seem
November 13, 2025 at 9:36 AM
I find it frustrating that a lot of AI critiques out there are completely off the rails, claiming that AI does not provide any value at all and hallucinates 99% of the time.

The only thing this achieves is to discredit any legitimate critique.
November 10, 2025 at 2:09 PM
Is it worth automating things?
I'm a software developer. My job is to automate things. Automation, over the last couple of hundred years, has made many of us rich (compared to our ancestors). So the answer should be simple, and yet it isn't... markus.oberlehner.net/blog/what-we...
What We Do - Markus Oberlehner
As AI threatens to automate jobs, this article poses the question whether automation is even worth it, whether it makes us happy, and whether happiness is even a worthy goal.
markus.oberlehner.net
November 1, 2025 at 11:35 AM
Can you spot the button one has to press to add this boarding pass to Apple Wallet? Liquid Glass is an accessibility nightmare even for people with A+ eyesight.
October 27, 2025 at 7:34 AM
The pattern I see when I read from people I respect, who describe how they make AI coding work for them, is treating AI more like a natural language input modality:

Tell it exactly what you want and it will be able to understand and do it for you.
danabra.mov dan @danabra.mov · Oct 23
people saying ai is a fad don't know what they're talking about. i'm definitely not giving up my claude now; the ability to do structural refactors "change this thing to be layered like this thing in this other project" is fantastic. i *do* want the model to be local and hope we'll get there in time
October 23, 2025 at 5:50 AM
Sitting in a hotel lobby in Amsterdam, I began chatting with a Swiss neuroscientist. At the end of our chat, I was more convinced than ever: always choose Open Source software!
October 11, 2025 at 9:12 AM
Reverse JSX? Instead of HTMLish syntax in JS, JSish syntax in HTML 🤭
Introducing Rendu: JavaScript Hypertext Preprocessor

Not just a template engine — Rendu bridges SPA and SSR using modern Web APIs with multi-streaming and async support.
October 8, 2025 at 1:19 PM
I have a hard time getting excited about a future of even more centralisation where all of us (developers) are merely building widgets for OpenAI.

And probably having to pay a hefty 40% tax. Yay!
OpenAI just dropped the Apps SDK, built on MCP. This is the future of how users will interact with your apps.

You won’t need to build a chatbot anymore.
OpenAI is the chatbot.
You just expose your tools through MCP.

Exciting progress toward Jarvis! youtu.be/9e581mYtrrs
youtu.be
October 7, 2025 at 6:04 AM
Reposted by Markus Oberlehner
If you want to follow my journey to regain digital sovereignty, you can read about it here: markus.oberlehner.net/blog/escapin...
Escaping the Apple Ecosystem - My Journey to Digital Sovereignty - Markus Oberlehner
Follow my journey as I leave the Apple ecosystem and search for alternatives to regain my digital sovereignty.
markus.oberlehner.net
October 5, 2025 at 11:08 AM
Typing this on my MacBook, I think about this picture at least once a day. It has completely changed how I see my Apple devices, from loving how tightly integrated everything is to feeling like a prisoner of the Apple ecosystem. Not a single day passes without me making plans for my escape.
October 3, 2025 at 5:24 AM
In preparation for next week's @viteconf.org, I gave @vitest.dev v4.x-beta a try.

Let's look at how to use the new Visual Regression Testing feature and run it in a Docker container for consistent results across environments.

markus.oberlehner.net/blog/visual-...
Visual Regression Testing With Vitest - Markus Oberlehner
Learn how to set up visual regression testing with Vitest 4 browser mode and run Playwright in a Docker container for stable results.
markus.oberlehner.net
October 1, 2025 at 6:11 PM
Reposted by Markus Oberlehner
Vercel ➝ Netlify migration made simple.

✅ Checklist
✅ Next.js tips
✅ Best practices

Start here → docs.netlify.com/resources/ch...
Vercel to Netlify migration checklist
A comprehensive guide for migrating your projects from Vercel to Netlify, including Next.js setup, configuration migration, and production readiness steps.
docs.netlify.com
September 30, 2025 at 5:07 PM
I asked the AI to impersonate me, and it did so without hesitation, following my writing about how to write good tests for Vue applications. A couple of thoughts about this:
September 22, 2025 at 12:01 PM
Underappreciated upside of AI code reviewers: you can bluntly tell it that it's wrong!
September 19, 2025 at 6:56 AM
Reposted by Markus Oberlehner
Looking for my next role!
I thrive where I can help others grow, and where my Vue.js open-source work is supported with time
Frontend, AI, remote-friendly, and open to (some) relocations!
September 11, 2025 at 9:28 AM