Eric Wohlgethan
- Role
- Full Stack Developer
- Focus
- UX & Web Components
- Based
- Halstenbek, Germany
- Shipped
- 25 projects
01Work
Twenty-five projects · 2025–2026
Selected 3
-
01
Planum
Floor plans in 2D and 3D, sloped ceilings included.
Built for real homes: attic rooms where the ceiling drops to 1.2 m, hallways that bend, wardrobes that have to fit. Lay rooms out on a 2D canvas, walk through them in 3D, and furnish them from 208 presets with real dimensions. Everything stays in your own browser.
-
02
Stichle
Say how many tricks you’ll take, then take them: our own Wizard for the afternoon meeting, on cards you can tilt.
Share a table’s four-letter code and take a seat; the dealer turns up trump, everyone bids, and the cards are played by flicking them from the hand onto the pile. Sixty letterpress cards drawn in SVG, numbers as paper-cut figures from beggar to king, a foil that moves with the phone. Open bids, secret ones or bids that mustn’t add up; bots and a big screen for the meeting room.
-
03
Harbor
A live dashboard for every localhost dev server.
It watches your open ports, probes each one over HTTP and labels what it finds: Vite, Next.js, Astro, Rails, Django and more. Every card carries a live preview of the running app, and servers can be started, stopped or hidden from the same screen.
How it works Runs locally · private
On the web 10
-
04
Clinch
NFL standings and the playoff picture on one screen.
All eight divisions, seeds one to seven per conference, and the cut line drawn as a real object. Clinched and eliminated only appear once the math says so; nothing is projected. The bracket fills in as games are played, and you can try results of your own.
-
05
Axioma
A Pokémon card collection with its own Cardmarket price scraper.
It finds each card’s Cardmarket page and reads real listings with the country and condition filters you’d actually use, falling back through sensible tiers instead of leaving blanks. Every price it sees goes into a ledger, so each card carries its own history. Portfolios, analytics and two-page binder spreads sit on top.
-
06
Fermata
YouTube to MP3, MP4 and more, processed in the browser.
Downloading, muxing, trimming and tagging all run on your device with WebCodecs and WebAssembly; the server is a small relay that forwards bytes and stores nothing. Albums split into tagged tracks by chapter, and playlists download as a batch.
-
07
Pulse
Live status and 90-day uptime for self-hosted apps.
Each app gets an HTTP check once a minute, and its latest checks decide between operational, degraded and down. Every app keeps 90 days of uptime, and the page updates live. Only the apps listed in one config file are checked; nothing is discovered.
-
08
Cantina
The canteen menu at work: every outlet, both weeks, in German and English.
The canteen’s own menu service can’t be called from a browser, so a small Node server fetches it, cleans up names written for the till and serves the week as one 15 KB document. Dishes come with the kitchen’s photo or a generated dot plate, a CO₂ rating, allergens and the price. Filters dim what doesn’t fit, and an overview puts every outlet’s menu on one page.
-
09
Atrium
The web apps on one wall, each tile a live look into its app.
Clinch’s playoff seeds, today’s dish from Cantina and 90 days of uptime from Pulse, fetched by Atrium’s own server, so the page never calls another origin. Each tile opens its app’s page with status, uptime and links. Sign-in for the apps only the owner sees is built and still switched off.
-
10
Prospekt
The week’s supermarket offers in one place, each price judged against its own history.
famila’s and Marktkauf’s flyers are print PDFs, read as text by a parser that checks every price against the unit price printed beside it. Confirmed prices build a history, and each offer is judged against up to 52 weeks of it. A watchlist, a shopping list and recipes sit on top. It’s one household’s app, so the link leads to a sign-in.
prospekt.ewolution.cloud How it works Sign-in only · private
-
11
TCGSL
Every English and Japanese Pokémon TCG set, newest first, with its logo and its best cards.
All English sets since Base Set in 1999 and the Japanese ones since 1996, one row each and grouped by year, with a switch between the two lists and a scrubber along the edge on a phone. Each set opens its full card list, led by its three most valuable cards at Cardmarket’s trend price, or by its highest-numbered ones for a Japanese set. A small server resizes every logo and card to the size the page draws and keeps it, so the images of the English list weigh 11 MB instead of 104 MB, and it fetches the sets again once a day.
-
12
PokeProxy
Printable sheets of Pokémon card proxies at the real card size, for the cards the binder is still missing.
Choose the paper and the card size, 63 × 88 mm by default, and the page shows the grid that fits, with cut marks and a 50 mm line to check the printer kept the size. Fill a slot from a search over every English and Japanese card in TCGSL’s list, from a link to a card page or a picture, or from a picture of your own, and print in colour, greyscale or a lighter ink saver. A card comes out at 63 × 88 mm because every position on the page is set in millimetres. The sheet stays on your own device; a small Node server searches the cards in memory and reads pasted links, only from public addresses.
-
13
Pitcher
Paste a YouTube link, set a BPM, and hear the track at it, the key held or resampled: a bootleg tested before the DAW opens.
Type the tempo into the big number or throw the ruler and let it settle on a genre: House 124, Techno 132, Drum & bass 174. Keep key holds the key while the tempo moves; Resample lets the pitch follow the tempo like a record, FL Studio’s default. The page reads the track’s tempo, beat grid and key itself, lays a kick on every beat, loops bars and jumps to YouTube’s most replayed part. The audio comes through a small relay to YouTube, the same as Fermata’s, and is decoded, analysed and stretched in the browser with WebAssembly, never stored.
For the afternoon meeting 11
-
14
Aale Spiele
The games our afternoon meeting plays, and a button that picks one.
Eleven browser games, from skribbl.io to HaxBall, each with a sentence on how it plays, what kind it is and whether it’s teams or everyone for themselves. “Was spielen wir?” spins a reel through them like a slot machine and stops on one, never the same twice in a row, and a filter narrows the draw to creative, guessing, geo or action games. The games ship with the page, so it works offline.
-
15
Schätzle
Guess the price of eBay listings together, in four modes: a party game for our afternoon meeting.
Join a room with its four-letter code, no account needed: guess the price, guess without going over, call higher or lower, or sort four items by price, alone or in teams, with a big-screen view for the meeting room’s projector. Guesses are scored by the ratio: 10% off earns about 850 of 1,000 points, half or double the price earns nothing.
-
16
Vollmond
The party game Werewolf for our afternoon meeting, with the app as the narrator, on a video call or at one table.
Found a village, share its four-letter code, and the app deals the cards: werewolves, villagers and eight special roles from the Seer to the Elder, each a woodcut in two inks drawn for the game. It runs the nights and days by itself; at night everyone taps something, so no screen gives a role away. Bots fill a table for trying it out, and a big-screen view is there for sharing.
-
17
Kritzle
Draw a word, guess the others’: our own skribbl.io for the afternoon meeting, with an avatar maker and a gallery at the end.
Share a room’s four-letter code, build a face with a few arrows, and take turns drawing while everyone else guesses in the chat; a right guess never shows, only who got it. Classic or Blitz, German or English word lists in nine themes or your own words, and bots to fill a room. At the end a podium, awards and a gallery where every drawing replays as a timelapse.
-
18
CDNMS
One word, a number, a board of cards: our own Codenames for the afternoon meeting, with word and picture cards.
Share a room’s four-letter code and take a seat in a team: one spymaster each, everyone else guesses. Boards of 25 words, 20 picture cards that each put two line motifs together, or both, with German or English words in six themes and your own. Each page gets only what it may see, so the key never leaves the spymasters’ screens.
-
19
Stammtisch
Mau-Mau, Doppelkopf, Skat and Durak at one table: the classic card games for the afternoon meeting, in the German deck.
Share a table’s four-letter code, pick the game and its house rules, and play deal after deal, with bots in the empty seats. Doppelkopf to the German Doppelkopf Association’s rules, Skat to the International Skat Order, Mau-Mau and Durak the way most tables play them; every house rule is a switch. The German deck is drawn in SVG, its Unter, Ober and König as paper cuts.
-
20
Würfle
The classic five-dice game, alone or at a table with friends: glass dice you flick across the table, and the paper block with up to six games.
Throw five cobalt glass dice with a flick across the table or a button, keep the ones you like on the rail, and write the score in a block laid out like the paper one. Alone, the rules and up to three bots run in the page, offline too; with friends, share a four-letter code and everyone sees each throw land. Every throw is played through by the physics before it’s shown, then lands on the numbers the server rolled.
-
21
Yksi
Our colour-matching card game for the afternoon meeting, against bots or at a table with friends: match the colour or the number, and call “yksi!” before your last card.
Match the top card’s colour, number or sign, and tap “yksi!” before your second-to-last card, or anyone can catch you and you draw two. Against up to five bots the rules run in the page, offline too; with friends, share a four-letter code, and the house rules are the host’s. The 108-card deck is drawn like a Finnish screen print, each colour with its own sign so the colours tell apart without colour vision.
-
22
Skibbo
Our own take on the stock-pile card game, alone against bots or at a table with friends: enamel number plates built up from 1 to 12, laid out for the tablet first.
Play out your stock before everyone else, onto four shared piles that count from 1 to 12. Every card is an enamel house-number plate drawn in the page, blue, green or fuchsia by its number, the Joker in all three. Alone against up to five bots, offline too, or with friends at a four-letter code, in teams of two if you like; the table is laid out for an iPad first.
-
23
Randomiser
Our wheel of fortune for the afternoon meeting, at the fair: a painted wheel, a jackpot or a duck race draws a name, and the winner is decided before anything moves.
Type the meeting’s names once, pick the wheel, the jackpot or the duck race and press the ticket: the winner is drawn first from the browser’s crypto random source and the machine only plays its way there, with a near miss and a clown horn on Max drama and a prize ticket in a spotlight at the end. Each machine’s length and feel are set in Settings, and Everyone once lets the winners sit out until all have had a turn. Made for a laptop shared in the call, it fills the window exactly, keeps everything on the device, works offline and makes its fairground sounds with Web Audio.
-
24
CurveExtreme
Our own curve game for the afternoon meeting: steer a line that never stops, slip through its gaps and outlast everyone, up to ten in a room.
Every line moves at a measured speed and turns on a measured circle, leaves a gap now and then, and its round ends at any line or the wall; whoever is still driving scores. Share a four-letter code for up to ten curves, or put up to four people on one keyboard, with 25 powerups and a Tune panel that turns every number of the feel. No page is told where a curve is: each simulates the round itself on the server’s clock, and only steering changes travel.
On the machine 1
-
25
Mulpur
A menu bar auto-clicker that watches one square of the screen.
You drag a box over the region to watch and snip the target yourself; it matches that template at several scales, around 40 times a second. A click only fires once the match clears your confidence threshold, and the cursor travels a curved path with varied timing instead of jumping.
How it works Runs locally · private
02About
- Role
- Full Stack Developer
- Focus
- UX and web components
- Based in
- Halstenbek, Germany
- Works in
- TypeScript, Web Components, Svelte, React, Three.js, Swift, Python
- Hosts on
- A NAS: Docker, Watchtower, Cloudflare Tunnel
- Source
- github.com/ewolution94
- git pushrelease
- CItypecheck · test · build
- GHCRamd64 + arm64 image
- Watchtowerpulls :latest
- NASDocker
- TunnelCloudflare edge, TLS