Daniel Schmidt
Frontend engineer working on the difficult parts between product, design and engineering.
I work across frontend architecture, accessibility, performance and developer experience, usually on large, long-lived web platforms.
The day job
At Charlie Tango, I lead frontend architecture on large websites and web applications, and I stay hands-on in the code.
My work covers frontend structure, CMS and backend integration, accessibility, testing and the tooling teams use to ship. I’ve also led and grown the frontend team and mentored developers across projects.
- 2026Viaplay Sport NewsSports newsroomUmbraco Awards runner-up
- 2025SundhedsstyrelsenPublic health
- 2024MDT+Clinical decision support
- 2023FeriepartnerHoliday booking
- 2022EDCProperty platform
- 2020VælgererklæringPublic service
- Earlier work includes Nike, Blue Origin, Vurderingsportalen, Dansk Erhverv and Sticks’n’Sushi, among others.
Built for Umbraco
Open source for the CMS behind most of that work.
blur-placeholder
Image placeholders generated once, in Umbraco.
Generated when the image is saved, then handed to the frontend as a single string. Public requests do none of that work.
web-analytics
Vercel and Plausible reports inside the Umbraco backoffice.
See overall traffic and the numbers for the page being edited without opening another tab. It reads the analytics you already run.
@charlietango/umbraco-rich-text
Umbraco rich text, rendered as React components.
Renders the Delivery API rich text JSON as React, with a hook to swap any node or block for a component of your own.
Look insideGitHub
Open source
I maintain react-intersection-observer, a React library downloaded around 20 million times a month.
Open source is where I turn recurring project problems into reusable tools. Occasionally, several million other people need the same thing.
react-intersection-observer
Tell a React component when it enters the viewport.
A hook, a render prop, and a component over the Intersection Observer API. It reuses observers where the options match, and ships a test mock so tests do not need a browser.
the whole look
Afterglow is the design system this page is drawn with: a terminal for the modern web, under CRT glass, in eight phosphor colours.
afterglow
Old-school terminal UI
Phosphor green on unlit glass, a pink signal for the thing that is actually happening, hairline borders and no corner radius anywhere. The look this page is wearing, in eight colours.
Look insideOpen AfterglowGitHub
RealmBinder
A campaign log and living compendium for tabletop RPGs.
I’m building a platform for recording RPG session notes and turning them into a connected record of the people, places, quests and clues that make up a campaign.
RealmBinder
Closed beta
Every session, bound together.
Write the session up the way you always would. What comes back is the campaign's cast, its places and its open threads, each one linked to the words that put it there.
Look insideOpen RealmBinder
It’s a Unix system!
When I saw Jurassic Park back in 1996, the dinosaurs were cool. But not as cool as the “unix” file system, flown through in 3D to lock the doors. I have wanted to build one ever since.
VECTIDE
Neon jet ski racing, right in the browser. Hit a wave flat out, flip it, and put a torpedo into whoever is in front of you.
- MultiplayerSend your friends a room code and race up to ten on the same water.
- PickupsTorpedoes, seeking torpedoes, sea mines, boosts, and a wave to throw at whoever is behind you.
- TricksHold jump, let go on the crest, and flip.
Schmidt’s Arcade
Say hello
Based in Copenhagen. Questions about the work, open source or a difficult frontend problem? Write to me.