
Groovy Waves
A wave-design lab for testing canvas-driven UI motifs, embedded borders, motion states, and less boxy component surfaces.
I'm Peter —
from Denmark.

I'm a web developer and game developer, but what I really am is someone obsessed with how things feel to use.
A website isn't just information. A game isn't just entertainment. Done right, they can make someone feel powerful, spark an idea, or open a door they didn't know was there.
I've been building things on the internet since I was a teenager. I've run the gm(48), a GameMaker game jam since 2013, helping hundreds of developers bring their ideas to life. I've optimized VR games for budget phones, architected complex web applications, and shipped projects that real people depend on every day.
The technical stuff? I've got it. Just look below. But the part I care about most is what happens on the other side of the screen, when someone uses what I've made and feels something.

A wave-design lab for testing canvas-driven UI motifs, embedded borders, motion states, and less boxy component surfaces.

WordPress support for a Swan-certified cleaning company with 700+ employees since 1987.

A satirical game jam entry that placed 3rd at EAL Game Jam 2016. Made as a political spoof.

A fast-paced procedural platformer I made in GameMaker. Tight controls, instant restarts, and that 'one more try' feeling.

Laravel developer support for this B2B car trading platform operating in 12 European markets.

WordPress website for modular tiny houses and garden rooms.

WordPress webshop for a traditional family butcher since 1939. Famous for their award-winning sausages.

A Unity3D environment exploring the Maya-to-Unity asset pipeline. Dusty saloons and tumbleweeds included.

A pastel PixiJS idle-game prototype with bouncy animals, local persistence, shop progression, and a deliberately cozy mobile-first shell.

Tech lead for Denmark's leading car sales platform. Full-stack development across WordPress and Laravel.

Denmark's largest secondhand chain with 34 stores. AI-powered image analysis and Algolia search for their WordPress platform.

WordPress and Laravel development for Denmark's oldest independent car workshop chain. Built API integrations and the exclusive Express membership club.

Drupal to WordPress migration for this Danish insurance company (formerly Sønderjysk Forsikring).

Laravel admin system with AI integrations for a 35-year-old travel agency specializing in tailor-made trips. WordPress frontend with custom booking flow.

A gamified quiz web application made in Vue.js with legacy browser support, teaching safety protocols at Grundfos.

A murder mystery VR game for Google Cardboard. Heavy optimization work to hit 60fps on budget Android phones.

Built the Laravel CRM and quote system that now supports this multi-million lawn care business.

WordPress webshop with thousands of SKUs imported from Microsoft NAV. Denmark's largest ski outlet.

Built with Astro, TypeScript and SCSS — with AI assistance for component structure and styling decisions.

WordPress website for a marine equipment group with 9 specialized brands serving sailboats and super yachts worldwide.

A Unity3D mobile app with 360° course imagery and 3D flyovers. Built for club members to preview holes before playing.

The home of a game jam community I've run since 2013. Built with Laravel — over 48 jams hosted and thousands of games submitted.

Senior web developer and tech lead for a luxury vacation rental company. Full-stack WordPress and Laravel.

I built the website in Laravel, Bootstrap and jQuery for this chartering, shipping, and shipowners company.

WordPress maintenance and support for a major Danish car dealer with multiple locations.

WordPress website for a summer house builder with 37+ years of experience.

Learning CMS platform with WordPress frontend and Laravel backend. Denmark's largest video education portal.

WordPress support for a 90-year-old premium flooring manufacturer targeting architects.
Play this brick breaker made from my 3,730 GitHub contributions. Each brick represents a day of building.
I use AI to move faster, explore more ideas, and handle the parts of development that don't need a human touch.
But every decision, what to build, how it should feel, and why it matters, is mine.
AI lets me spend less time fighting with boilerplate and more time on the craft. I can focus on the details that make someone lean in, the polish that makes something feel right, and the choices that turn a product into an experience.
The technology changes. The intention stays human.
A few things I've built that leverage AI in meaningful ways:
A quick zsh function for running Godot from the macOS terminal when the app bundle is not already in your PATH.

A practical WebRTC primer showing how two browsers can connect directly with manual offer and answer codes, inspired by my multiplayer browser experiment.

How I added GitHub Discussions-powered comments to this site in under 10 minutes, with zero build complexity and zero database management.