Personal automation, public-source scraping and AI-assisted filtering
This one has no link on it, and that is the point: jobs.grn.dk answers 401 to the internet and always has. It is an internal tool β a job radar, built for its owner's own search for work. Every morning it reads seven contract and job boards, drops everything that cannot match a written profile, has what survives judged by a language model against that profile, and presents the handful worth reading as one screen with three buttons: applied, draft email, discard.
Because it holds one real person's live job search, nothing of it is published here. The screenshot above is a throwaway demo copy of the same interface, seeded with invented rows β every company, title, location and address in it is a placeholder, and it labels itself "demo data" in the header so it can never be mistaken for the live board.
crypto-dash.grn.dk is the public window onto a strategy-research rig that runs on our own server and trains itself. Every hour it backtests a fresh batch of trading-strategy configurations against five-minute crypto candles, scores each one on data it was not fitted to, keeps a running leaderboard, promotes the configurations that hold the top into a simulated book, and demotes them again as soon as their forward behaviour drifts away from what the backtest promised.
It is paper trading only. The installation holds no exchange keys, calls no order endpoint and has no account to spend from. Every fill, every position and every P&L figure on that page is simulated β which is why the page prints PAPER ONLY on itself, in orange, at the top of every hourly regeneration.
veganpower.grn.dk is Vegan Power, a catch-the-fruit arcade game with a rule you understand in one second: eat fruit, not friends. Fruit falls and you catch it. A chicken, a cow or a penguin falls and you dodge it β each one you hit costs one of your seven hearts. It began in 2020 as a small Flutter and Flame game for Android, released on Google Play that December. In 2026 it was taken apart and rebuilt: it now opens in any browser with no install and no account, keeps a global high-score table on its own small API, and carries a multiplayer beta where two to four players share one arena and shove each other off the fruit.
fantasy.grn.dk is γ³γγγ’γ³ KotobaMon β a 3D monster-catching game that runs in an ordinary browser tab, where every monster is a Japanese word. γγγ hibana is a spark, γ³γγ kodama is a tree spirit, and catching one is how the word gets learned. It has a procedurally generated island with five biomes, twelve species, turn-based battles with a type chart, and full Japanese voice-over subtitled in Japanese, romaji and English at the same time. There is no download, no account, no build step and no backend: the whole game is 2,821 lines of vanilla JavaScript plus a vendored copy of Three.js, served as static files.
abc.grn.dk teaches a child to write an alphabet rather than to recognise one: pick a letter, trace it with a finger, and the app scores the shape you actually drew and tells you how close you got. Thai first β all 44 consonants, free β with Japanese hiragana and katakana behind a premium gate. Everything happens in the browser: the handwriting recogniser is plain Dart running on the device, the spoken letter names are files bundled with the app, and there is no account, no runtime backend and no advertising.
Danish coworking space β client brief, built as a working demo
Coworking and shared offices
A Danish coworking space wanted members to book a table by the hour and pay for it β because at 20 kr. per hour per table, a booking that has not been paid for is not a booking. tableflow.grn.dk is that system, built from the client's brief and running live: an hour grid that shows what is actually free, a fifteen-minute payment hold that releases itself, and an admin screen for the people who run the place. Plain PHP and MariaDB β no framework, no dependencies, 853 lines in seven files.