// selected work
Work that ships.
Products taken from idea to something people pay for — built, shipped and running.


Klokly — time tracking, reinvented through simplicity
A lightweight time-tracking app built to make it natural to keep track of where the time goes. Instead of heavy project-management tooling, Klokly does one thing: a clock experience that feels fast and present.
- React / Next.js
- TypeScript
- Realtime Sync
- Playwright
- Supabase (database + auth)
- User Management
- Stripe payment
- Marketing landing page
Start and stop timing on tasks, see live status, and share the overview with the rest of the team in real time. Built on modern web technology with a calm, editorial design. Founder of www.klokly.app, Lars Sohl

WordPress Built from Scratch
I designed and developed the WordPress theme for larssohl.dk entirely from scratch. The site works as both a portfolio, a digital playground and a technical showcase, and goes far beyond a traditional WordPress website.
- Custom WordPress Theme
- Custom WordPress Backend
- Custom WordPress Plugins
- Dynamic Content Management
- Backend-Controlled Slideshow
- Backend-Controlled Text & CTA Content
- Dynamic Galleries
- Interactive UI Components
- Custom Contact Form
- Embedded JavaScript Game
- Custom Animations & Transitions
- Responsive Design
- PWA Development
Content and functionality are managed through a custom-built backend, including slideshows, text, CTAs, galleries and archives. The site also features interactive elements, hidden functionality, a small built-in game, dynamic content and various experiments with AI, 3D, animation and web technology. The project is an example of how WordPress can be used as a flexible framework rather than simply a CMS running on a standard theme. One man on the show: Lars Sohl

Monster Builder
Monster Builder is an interactive browser-based experiment that guides the user through the process of creating a personal monster via a futuristic “biometric reading.” The interface uses a laboratory and sci-fi-inspired visual language, with concepts such as Landmarks, Biometric Reading, and DNA Lock, making the experience feel like a blend of a monster generator, biometric scanner, and digital experiment.
- CSS3
- JavaScript
- Interactive state-based user interface
- Dynamic manipulation
- Biometric
- Vercel
The game is designed as a short, direct web experience in which the user's input becomes part of the fiction itself, rather than simply serving as traditional UI navigation.



Bane Status — real-time track status, straight from your phone
A WordPress plugin and companion PWA built so motocross track managers can flip the track's status — open or closed — from their phone in seconds, with the change showing live on the club's homepage.
- WordPress Plugin
- PWA PIN-login
- Glassmorphism
- UI Live-widget (30 sek. polling)
- Service Worker
- Offline Shell
- WordPress Admin Integration
No login to WordPress, no computer needed — a track manager opens the app from their home screen, enters a 4-digit PIN, and sets the track open or closed with a quick message attached. The homepage widget updates instantly with no page reload, using signed session tokens and bcrypt-hashed PINs for security. Built for Amager MX, a motocross club on Amager Fælled. www.amck.dk (new site work in progress) Idea & builder: Lars Sohl


Word Drop — dramatic text overlays, dropped straight from your phone
A WordPress plugin and companion PWA that lets you send large, animated text overlays live onto your website — directly from your phone's home screen, no computer needed.
- WordPress Plugin
- PWA
- PIN-login
- 5 Animation Effects
- 5 Display Fonts
- Real-time Overlay
- No-code Interface
No login to WordPress, no browser navigation — you open the app from your home screen, type a word or short phrase, pick a font and one of five effects (fade-in, gradient-flow, pixel-assemble, glitch, draw-stroke), and tap "Post." The overlay appears instantly on the live site, either fading out after 4–6 seconds or staying until removed. Built in collaboration with Claude (Anthropic). Concept: Lars Sohl



80' Acade Game - Cosmic Tunnel v3.1.0
A small mobile-optimized browser game built from scratch with a focus on gameplay, atmosphere and an experience that works just as well on a phone as it does on a computer.
- HTML / CSS / JavaScript
- Phaser
- Three.js
- Canvas API
- Vite
- Webpack
- Parcel
- Node.js
- Vercel
** The Idea Sometimes the best way to learn new technology is simply to build something you would actually like to use yourself. Cosmic Tunnel started as exactly that kind of idea: A small game set in a futuristic universe, where the player has to find their way through a cosmic tunnel and try to make it all the way through. It wasn't meant to be yet another endless runner that simply goes on forever. It needed a beginning, a challenge and a goal. That's the kind of project KodeKid enjoys: not necessarily because the world needs another game, but because it's a great way to explore what is possible with modern web technology. Play for free [Cosmic Tunnel v3.1.0](game.larssohl.dk)

Neon Breach — Synthwave Invasion. Mobile game.
A synthwave-inspired arcade shooter built from the ground up for the browser. A small, fast and uncompromising game packed with neon, enemies, bosses and a healthy dose of 80s arcade spirit — designed to work equally well on desktop and mobile.
- HTML / CSS / JavaScript
- Canvas API
- JavaScript Game Loop
- Web Audio
- Responsive input
- Claude Code
Neon Breach is built directly for the browser using HTML, CSS and JavaScript as the foundation for both the game and its interface. The game graphics and animations are rendered continuously using the Canvas API, while a JavaScript-based game loop drives the real-time mechanics such as movement, enemies, projectiles, collision detection and scoring. The audio is handled with the Web Audio API to provide feedback and reinforce the classic arcade feel. The controls are responsive and adapted to different platforms, with keyboard controls on desktop and touch- and tilt-based controls on mobile devices. The game also includes a backend for handling high scores, which are stored and displayed in a Hall of Fame, adding an extra competitive element and a reason to come back. Development was carried out with Claude Code as part of an AI-assisted development process, using AI as an active part of both programming and iteration.



Automatiq — automation that never phones home
Six ways to fire an SMS — a schedule, a tap, an incoming text, a missed call, arriving somewhere, plugging in a charger — all funnelled through a single send path, on a phone with no account behind it and no server to call. Built for myself, in the open, because everything on the Play Store wanted a subscription to do it worse.
- Kotlin
- Jetpack Compose
- Material 3
- Hilt
- Room
- WorkManager
- Gemini API
Six triggers: - Scheduled — fixed time, chosen weekdays, every N weeks, optional expiry date - Manual — tap the macro in the list, or a home-screen widget - Auto-reply — an incoming SMS matches an optional sender and/or keyword - Location — entering or leaving a geofenced place - Missed call — a call rings out, or is declined - Device state — charger, a chosen Bluetooth device, or a Wi-Fi network connects or drops Role: Personal project · Design and development · Open source, sideloaded · 2026

From email chaos to a custom label production app
Label production sounds simple. Until someone needs a quote for a new label, and the information arrives in five different emails, two PDF files, a few attachments and a message saying “I think everything should be there now.”
- Next.js 14 / React
- Supabase PostgreSQL
- Supabase Storage
- Resend transactional email
- Vercel
- Custom Admin Dashboard
- Customer Accounts & Order History
- Danish / English
Customers can create a complete production brief, select brand and technical specifications, upload artwork and production files, and review everything before submitting. The system automatically sends a confirmation and gives the customer a short window to edit the order before it is forwarded to Brandsurface. Behind the front end is a custom administration interface for managing orders, brands, variants, production options, settings and users. The workflow is data-driven, so key parts of the ordering experience can be changed without touching the code. A small production tool, built as a proper application rather than another form.

Mr. Blender Render
## A private render farm for Blender 3D A desktop application I built to turn the computers already available in a home or studio into a private Blender render farm.
- Tauri 2.0
- Windows Applikation
- MacOS Applikation
- GPU rendering
- Node Render
Instead of rendering an animation on a single machine, Mr. Blender Render distributes frames across multiple PCs and Macs, allowing their GPUs to work on the same render job at the same time. One machine acts as the main controller. The other computers run lightweight Nodes that pick up available frames, render them and report their progress back to the main application. **The result is a simple private render farm without the need for a cloud rendering service.** # Free downlink is coming soon



One click, and the folder structure is already right
A Chrome extension that builds the complete, correctly named job folder the moment a new job starts — so folder structure stops being something anyone has to remember.
- Chrome Extension
- Custom Naming
- Templates
- Local & Network
- Drive Support
Structured, named and ready — the moment a new job starts. No template to remember, no folder set up the "quick" way that turns out wrong six months later. SAME STRUCTURE, EVERY SINGLE TIME **Please contact me if you would like the Chrome extension.**

Enebakken — a tiny house in Sweden with a surprisingly long checklist
Enebakken is a small website and PWA I built for my parents-in-law's little house in Sweden. It is a very simple house. No electricity, no running water, and no smart home system to tell you what you forgot before driving back to Denmark.
- PWA
- JavaScript
- Service Worker
- Offline Support
- User Login
- Shared Data
- Image Upload
- Mobile-first UI
The problem was that opening and closing the house comes with a surprisingly long list of small things that need to be remembered. Water needs to be handled, things need to be emptied, windows checked, equipment put away, and various things switched on or off. The sort of jobs that are easy to remember until you are already halfway home. So I built a very simple digital checklist. The site is private, but a link is available upon request. Please contact me. [Lars Sohl](hello@karssohl.dk)