online · mecke@mecke.dev
— · — · --:--:-- · up 00:00
↕ drag

Need a thing built?
I'll build the thing. 

Custom websites, scripts, desktop tools, real-time things, weird automation, AI plumbing — basically anything where someone has to actually sit down and code it. Tell me what you need. I'll quote it, build it, ship it.

this entire site — terminal, voxel world, OS sandbox, four mini-games, CS2 trivia, ~20k embedded items — is one HTML file. no build · no bundler · no node_modules · no 300-file dir
— mecke@mecke.dev · interactive shell
// hi. type help to see what this shell can do.
// or customize to redesign the page.
mecke@dev:~$
history · tab autocomplete · esc clear input
live · 3d

Voxel World

A randomized first-person playground. Mine, place, and find every amber block to claim a reward.

three.jsFP cameraraycast~30² grid
enter world
live · physics

Gravity Mode

Throw the entire page around. Every element becomes a rigid body — drag, fling, watch it tumble.

verletcollisiondrag · flingtype to undo
unleash gravity
live · desktop

MECKE OS

An in-browser sandbox OS with synth, paint, files, calc, terminal — all in draggable windows.

9 appsfake fswindow mgrboot screen
boot desktop
M E C K E
play · word

Wordle

Six guesses, five letters. Flip-tile reveals, on-screen keyboard, hand-curated word list — pure DOM, no libs.

CSS 3Dkeyboardstagger fx~200 words
start guessing
play · logic

Sudoku

Procedurally generated 9×9 puzzles with peer highlighting, pencil notes, conflict detection, and a victory flash.

generator3 levelspencil modesolver
solve a board
24816 481632 8163264 163264128
play · puzzle

2048

Slide tiles with arrows or WASD. Smooth merge animations, score tracking, swipe support — get to the orange tile.

raf-loopswipepersisted hi-score
slide tiles
play · memory

Memory Match

Eight pairs, hidden behind 3D-flipping cards. Track moves, beat your time, savour the matched-pair pulse.

CSS 3D fliptimermovesshuffle
flip a card
play · cs2 trivia

CS_Guess

Identify a blurred Counter-Strike 2 item — skin, sticker, agent, knife — in six attempts. Hints unlock as the image declassifies.

~20k itemsgzip+base64fully offlinesteam CDN
enter briefing
tool · web-audio

Synth Lab

A full polyphonic synthesiser — three oscillators, dual envelopes, dual LFOs, multi-mode filter, FX rack, arpeggiator, sequencer, drum machine, MIDI input, and recording. Built on the Web Audio API.

3-oscFX chain16-step seqWebMIDIpresets
open the lab
↕ drag
01 services.txt

What I'll build for you.

No retainers, no monthly minimums. One-off projects, paid by scope. If your thing fits a box below, ask. If it doesn't, ask anyway.

pidservicewhat that meanstimelinestatus
001website Landing page, single-page site, marketing page, portfolio, custom dashboard, internal tool. Whatever shape it needs to be. 3d–3wkaccepting
002script A small thing that watches a folder, scrapes a site, renames files, syncs data, posts to Slack — automating the boring task you keep doing manually. hours–daysaccepting
003desktop_app Native-feeling apps for Windows or cross-platform. WPF / .NET, or Tauri + Svelte if you want lean and modern. 2–6wkaccepting
004realtime_tool Logfile monitors, live parsers, event-driven helpers, anything that has to react to a stream of stuff happening right now. 1–3wkaccepting
005ai_workflow LLM-powered pipelines, custom agents, tool-augmented flows. Less "let's add a chatbot", more "this saves hours per week". 1–4wkaccepting
006something_weird Niche hardware glue, gaming utility, NixOS configuration, knowledge graph, data ontology. If it's code, ask. dependsask
↕ drag
02 recent.log

A few things I've already shipped.

Not a full portfolio — just enough to show I actually finish things.

// recent [ship] Real-time Counter-Strike chat translator. Tails game logs, parses incoming chat events, translates on the fly, displays in a desktop overlay. Event-driven, no polling.
// recent [ship] Vorsorge — Tauri + Svelte desktop app. Cross-platform, lean, native feel. Modern frontend pattern wired to a Rust backend.
// recent [ship] Pin collection platform. Filtering, sponsor integration, responsive layout, dynamic UI. Built around how collectors actually browse.
// recent [wip ] Knowledge graph & documentation system. Ontology-shaped notes for games, devs, locations, easter eggs, media. Cross-referenced and queryable.
// ongoing [note] Plus a pile of personal scripts, NixOS configs, and tooling I won't bore you with. Happy to walk you through any of it on a call.
↕ drag
03 stack.txt

One file. Zero ceremony.

Most "modern" personal sites are 12 megs of npm output before you read a single word. This one isn't. Look around — what you're reading, the terminal, the voxel world, the OS sandbox, four mini-games and a CS2 trivia game with ~20k embedded items are all one HTML file. View source. Save it. Open it offline. It still works.

// 01

One file. Period.

Markup, styles, every script, all assets, the whole CS2 item registry — gzipped + base64'd inline. view-source: shows you everything. No hidden CDN, no service worker, no "buy our SaaS to host this".

html · css · js~1.5 MB total0 npm packages
// 02

Zero build step.

No webpack. No vite. No "tsc". No node_modules with 87,412 transitive dependencies and a CVE every Tuesday. Edit. Refresh. That's the build system.

no bundlerno transpileno CI minute burn
// 03

Hand-coded. No frameworks.

Vanilla JS, custom CSS. Three.js for the voxel world is the only third-party dep. The OS sandbox windowing, the mini-games, the terminal — all built from scratch. You'd be surprised what fits in a single file when nobody pulls in 40 abstraction layers.

vanilla jsthree.jsweb audio · canvas
// 04

This is what I'll do for you.

I'll match the constraint to the job. Sometimes that's "one HTML file you can email a client". Sometimes it's a Tauri+Svelte desktop app, or a real-time websocket pipeline, or a script that quietly runs at 03:00. The point is: lean stack, ships fast, no maintenance tax.

right toolsmall surfaceactually finished
↕ drag
04 process.md

How it actually works.

No fluff. No 14-step "discovery framework". Here's the loop.

[step 1]tell You email me what's broken / missing / annoying. A paragraph is enough. Screenshots help.
[step 2]scope I reply within ~24h with: is this a fit, rough timeline, fixed price or hourly, what I'd need from you. No proposal docs.
[step 3]build We agree, I build. You see progress as it lands — not at the end. Adjustments mid-flight are normal.
[step 4]ship You get the working thing + source + a short handover note. Small fixes after delivery are on me.
↕ drag
05 contact.sh

Tell me what you need.

A few sentences is enough. I read everything and reply within a day.

awaiting input · this opens your mail client
or just email contact@mecke.dev
↕ reorder mode · drag sections to rearrange · click again to exit
⚡ physics mode · drag and throw · type physics off to stop
amber found
0 / 0
WASD move · SPACE jump · MOUSE look · LMB mine · RMB place · 17 select
click canvas to capture mouse · find every amber block to claim a reward
★ ALL AMBER COLLECTED ★
a monument has been raised at spawn. you found every block — that's the kind of curiosity I want to work with.
claim · email me
loading 3d engine...
F
Files
=
Calculator
A
Notepad
/\\
Paint
♪♪
Synth
~~
Snake
*
Minesweeper
$_
Terminal
?
About
--:--
wordle guess 1/6 · streak 0
sudoku level easy · time 00:00 · mistakes 0
filled 0/81
2048 slide · merge · ascend
or WASD · swipe · R reset
score0
best0
memory match find all 8 pairs
moves 0 matched 0/8 time 00:00
cs_guess round 001 · pool
TARGET // CLASSIFIED
ROUND 001
SCANNING
ATTEMPTS 0 / 6
IDENTIFICATION INPUT
POOL // —
GUESS LOG
0 ENTRIES
// No guesses logged yet //
CS_GUESS
BOOTING EMBEDDED REGISTRY
Decompressing embedded registry…

// MISSION COMPLETE

Attempts
Time
SHARE GRID
⬛⬛⬛⬛⬛⬛

// OPERATOR STATISTICS

ATTEMPT DISTRIBUTION

// MISSION BRIEFING

OBJECTIVE

Identify the classified Counter-Strike 2 item in 6 attempts or fewer. The target can be any item from the CS2 universe — weapon skins, knives, gloves, stickers, agents, music kits, graffiti, collectibles, cases, keys, and more.

PROGRESSIVE REVEAL

Each attempt declassifies more visual data — the image becomes less obscured — and unlocks one additional intel hint about the target.

FEEDBACK CODES

GREEN — Correct identification.
ORANGE — Right weapon (skins) or right category (other items).
YELLOW — Right finish/pattern, wrong weapon.
RED — Wrong on all axes.

INPUT

Type any item's name in the identification input. Use the dropdown's thumbnails to verify before submitting.

synth_lab voices 0 · midi · poly

// SYNTH_LAB BRIEFING

A polyphonic subtractive synthesiser built entirely from the Web Audio API. Three oscillators per voice, dual envelopes, dual LFOs, multi-mode filter, full FX chain, arpeggiator, 16-step sequencer, drum machine, MIDI input, and recording.

Keyboard

Bottom row zm+,/ = lower octave · upper row qp = upper octave · sharps on the row above.

/ = octave shift · / = mod wheel · space = sustain pedal.

Mouse wheels

The two strips left of the keyboard are pitch-bend (springs back) and mod-wheel (sticky). Drag vertically.

Sequencer / Arp / Drum

Click the LED on each card header to enable. Right-click a sequencer step to set its MIDI note. The arpeggiator plays whatever notes you're holding.

MIDI

Click connect midi in the preset card. Pitch-bend and mod-wheel CCs are mapped automatically.

Recording

Hit ⏺ rec in the top bar — output is captured as .webm and downloaded when you stop.

listening…