Products / Krusning
Krusning
People tell about good deeds they've seen others do, so that whoever reads one might do one too. I built it in September 2026, and it was in production two days after the first commit. It's live at krusning.io.
- 228 commits in two weeks
- 23 ADRs
- 47 test files
- ~180 screenshots in visual regression
- Next.js 16, React 19, Drizzle, Postgres


Why it exists
Bad news spreads by itself. Good things happen too, every day, but they rarely get told. Krusning exists to change that, and the name is the idea: krusning is Swedish for ripple, one good deed inspiring the next.
That's why you tell about something you saw someone else do, never about yourself. The effect is shown for everyone together and never per person. The site doesn't promise that reading it makes anyone kinder either, because nobody has measured that.
Three short questions
Telling a deed has to be quick on a phone. A script of my own counts screens, taps and fields until a story is published, on both phone and desktop, and every row in it is a requirement that's tested.
Privacy
Narrators use pseudonyms, places are never more precise than a city, and there are no stats per person. A new deed shows up only after three to nine minutes, so it can't be tied to someone who was just there.
A language model that only flags
Every story is read by a language model that judges whether someone can be identified, whether it involves danger or whether something is abusive. It never removes anything. It creates a report for a person, and if the model doesn't answer, the story is published anyway.
Colours and themes
The site has several colour fields and a dark mode. A check with around 180 screenshots catches it when a CSS change goes wrong somewhere.
