Sign in

Jakob Norlin

@norlin.dev
110 followers 126 following 138 posts

Building endform.dev

PostsRepliesMedia
Jakob Norlin @norlin.dev · 07/10/2026
Here's one from this week. 1 failing test. It has failed 3 times in 1,038 runs over the last 4 weeks, with the same error each time, and the commit only touched an unrelated email file. Verdict: recurring flake, rerun.
100
Jakob Norlin @norlin.dev · 07/09/2026
Endform allows you to limit concurrent tests, which solves both these use cases. Configure a tag that you want to limit concurrency on, what the limit should be, and whether it should only apply within a specific run of your test suite, or globally across all runs happening at the same time.
111
Jakob Norlin @norlin.dev · 07/09/2026
Playwright v1.63 was just released, and it has a new feature called "Test locks". This means only a single test with the same lock name can run at any one time. Great for tests that mutate shared resources that can not reasonably be generated uniquely for each test, but it has some limitations.
110
Jakob Norlin @norlin.dev · 29/07/2026
In Scandinavia, Moomin merch is top notch merch!
6 different Moomin branded mugs
250
Jakob Norlin @norlin.dev · 01/06/2026
"Applies to jobs on my behalf" is one of the top promoted templates on Browserbase 😫
010
Jakob Norlin @norlin.dev · 30/05/2026
We just shipped endform query, a new CLI command for pulling Endform analytics data. A neat thing about this is that you can now ask your coding agent to help debug tests.
210
Jakob Norlin @norlin.dev · 28/05/2026
2.5 megawatts of server rack space in MagasinX in Stockholm. Completely empty right now. What will they put in here? 🤔
000
Jakob Norlin @norlin.dev · 28/05/2026
Hello Mr Unitree robot 🤖 First one in Europe!
000
Jakob Norlin @norlin.dev · 01/01/2026
Oh look, it happened!
CSS code mimicking the tailwind code in the og post
110
Jakob Norlin @norlin.dev · 25/11/2025
My LLM autocomplete just suggested the TS native type Exclude<...>. Didn't know about that, and it seems to be exactly what I needed. Almost like your DistributiveOmit, except it doesn't enforce "K extends keyof T", so it doesn't work for objects, like in your example. But good enough for unions!
Typescript Exclude type
140
Jakob Norlin @norlin.dev · 20/11/2025
Sorry, I tried to be funny 😅
A closed circle is a geometric shape that is a complete, enclosed loop with no breaks, representing the set of all points equidistant from a center.
110
Jakob Norlin @norlin.dev · 16/11/2024
The docs say this, but I don't quite understand the implications of the difference between "during the life cycle of the request" and "after the response is finished". The whole point of waitUntil is to not block the response, so Vercel's explanation doesn't make sense to me.
The use case for unstable_after is to process secondary tasks without blocking the primary response. It's similar to using the platform's waitUntil() or removing await from a promise, but with the following differences:

waitUntil(): accepts a promise and enqueues a task to be executed during the lifecycle of the request, whereas unstable_after accepts a callback that will be executed after the response is finished.
210