Kevin MartinPortfolio · 2026
000
Warming up the particles
KMAvailable for select work
Royan --:--FR
Fullstack developer & creative coderRoyan, France · 45.62°N 1.03°W

KevinMartin

Fullstack developer by day, I build
after hours.

Thirteen years shipping for Dailymotion, the Renault Group, Roole and Arval. React and GraphQL up front, Node, .NET and PHP behind. Based in Royan, on the French west coast.

Stack

  • React
  • TypeScript
  • GraphQL
  • Node.js
  • Three.js
  • WebAssembly
  • CSS
  • Swift
  • C
  • Rust
  • Cloudflare
  • Socket.IO
  • .NET
  • PHP
  • Docker

About

I care most about the layer people actually feel: the interface. Motion, typography, timing, and all the small things that make a product feel alive.

I've built partner tools at Dailymotion, web modules for the Renault Group, a member portal for Roole and fleet applications for Arval. Today I run Studio KMA, my own studio, from Royan.

Off the clock I can't stop building: a 1986 console game recompiled to C, an API mock service, two iOS apps, a multiplayer Snake. You'll find them below, in the Lab.

Now
Studio KMA, Royan
Before
Dailymotion · Renault · Roole · Arval
Day stack
React · GraphQL · Node
Off the clock
Games, CodePen, music

After hours

The Lab

Six things I built after hours in 2026: a SaaS, a level editor running a recompiled 1986 game, a multiplayer shooter, two iOS apps and a light show for Counter-Strike.

  1. 01Public betaLoutreSaaS · Dev tool
  2. 02Beta 4Super Alex Kidd MakerDesktop app · Level editor
  3. 03LiveCSnakeBrowser game · Multiplayer
  4. 04On the App StoreThis Is Simply LifeiOS game · Life simulator
  5. 05On the App StoreSimply WeatheriOS app · Weather
  6. 06Open sourcecs2-ambilightTool · Smart home

01SaaS · Dev tool2026Public beta

Loutre

Your mock API, online in 10 seconds.

Loutre: your mock API online in 10 seconds, next to a sample JSON response
Loutre's comparison page against Beeceptor, Mockfly and Postman

Paste an API schema, get a hosted URL that answers with realistic data. Free, no account. Loutre reads OpenAPI 3.0 to 3.2, Swagger 2.0, TypeScript types, Postman, Insomnia and Bruno collections, HAR files, json-server, curl commands and GraphQL, and turns all of them into OpenAPI 3.1 before serving.

The data is generated once, with a stable seed, and stays coherent: emails derived from names, cities with their postcode, totals that match their items. A single Claude call per mock fills the free-text fields with values that fit the API's domain. Serving never calls the AI.

Then you drive it: status, latency, error rate and scenarios per route or per request header, writes persisted per mock, a request log with replay, and an MCP server so Claude Code can create and steer mocks by itself.

Highlights

  • Built solo in three weeks, from first commit to public beta
  • A typed Effect compiler for 10+ API formats, tested against ~100 real-world specs
  • Served from the edge on Cloudflare Workers, KV and Durable Objects
  • MCP server, CLI on npm (npx loutre serve) and Stripe billing
  • Pre-launch security audit: schema bombs, ReDoS, CSRF, quota bypass, each fix covered by a test
Started
Sept 2026
Platform
Web · CLI · MCP
Pricing
Free · Pro €12/mo
Size
~28,000 lines of TS

02Desktop app · Level editor2026Beta 4

Super Alex Kidd Maker

A Super Mario Maker for Alex Kidd in Miracle World (Sega, 1986)

Build a level, press Play, and it runs on the 1986 game, rewritten in C.

Super Alex Kidd Maker beta, available on Windows, macOS and Linux
Super Alex Kidd Maker app icon, a pixel-art rice ball

A Mario Maker-style level editor for Sega's Master System classic. Pick any of the game's 17 settings, paint with its 256 raw blocks, drop any enemy anywhere, script janken bosses with up to 15 rock-paper-scissors throws, add vehicles, bonus zones and time limits. Bring your own ROM.

Under the editor, the whole game was translated from the cartridge's Z80 code to C by a recompiler I wrote in Python, then rewritten by hand into readable C, routine by routine. It compiles to WebAssembly for the editor and to a native SDL2 binary.

Faithfulness is proven three ways: every Z80 instruction against a reference emulator, the full machine state compared frame by frame with the real ROM, and each rewritten function running side by side with its generated twin during real play.

Highlights

  • Static recompilation of a Z80 cartridge: ~43,000 lines of C, 665 hand-lifted routines
  • Console limits lifted for custom levels, so crowded 'anarchy' levels just work
  • Online sharing with level codes, likes, records and a web gallery, running on Cloudflare D1 and R2 for €0
  • Signed and notarized releases for macOS, Windows and Linux, with auto-update
  • Found a freeze bug in the original 1986 game along the way
Started
Sept 2026
Platform
macOS · Windows · Linux
Engine
Z80 → C → WebAssembly
Size
~65,000 lines

03Browser game · Multiplayer2026Live

CSnake

Codename Snake Strike · Snake × Counter-Strike

Snake meets Counter-Strike. Your squad follows in single file and fires where you aim.

CSnake: a Deathmatch round with bots on a Dust2-style map, in a Counter-Strike 1.6 style window
CSnake app icon, an orange snake on a checkerboard

You steer the leader, your soldiers follow like a snake's tail and every one of them shoots at your crosshair. A longer squad hits harder, and makes a bigger target. Lose the leader and the whole squad goes down.

Three modes straight from CS: Deathmatch with a Golden Deagle spawning mid-map, Gun Game from pistol to AWP, and a ranked bomb mode where T plant on A or B and CT defuse. Grenades, fog of war and enemy footsteps you can hear, on a Dust2-style map with its callouts.

Play solo against bots from 1v1 to 5v5, or online: quick match, private rooms with a four-letter code, chat and an ELO leaderboard.

Highlights

  • One deterministic engine shared by the server, solo play and the menu demo
  • Authoritative Node server at 20 Hz, with fog of war enforced server-side so wallhacks see nothing
  • CS:GO ranks, 11 squad skins, daily challenges and CS 1.6-style menus
  • Every sound synthesized live with the Web Audio API, zero audio files
  • Installable PWA with twin virtual joysticks on mobile
Started
April 2026
Platform
Browser · PWA
Netcode
Socket.IO · 20 Hz
Size
~7,600 lines

04iOS game · Life simulator2026On the App Store

This Is Simply Life

You're born somewhere in France. After that, everything is your fault.

This Is Simply Life: write a whole life, year after year
Every choice commits you for twenty years
Your best life haunts the next ones as a ghost

A text-based life simulator, written in French. Every year you tap "+1 year" and life answers. Short choices, long consequences: a prenup signed at 31 that wakes up at the divorce, a path forced on your daughter that comes back at a family dinner.

Start a company and take it public, run for mayor and end up a minister, build a property portfolio on credit, raise a family, grow old for real with pensions and check-ups. Your best life becomes a ghost that every new game races against, and a dynasty carries on through your heirs.

The engine is plain JavaScript, shared by the web version and a fully native Expo app with no WebView. Headless simulators play hundreds of lives to balance it, and new content ships over the air without an App Store review.

Highlights

  • 323 events, 38 careers and 199 career missions
  • Memory arcs: choices from decades ago come back to you
  • 8 headless simulators balance the game over hundreds of simulated lives
  • Native React Native UI on top of a shared pure-JS engine
  • Over-the-air content updates with EAS
Released
Sept 2026
Platform
iPhone · iPad
Price
Free
Language
French

05iOS app · Weather2026On the App Store

Simply Weather

Full-screen weather. No ads, no account, no tracker.

Simply Weather home screen: Paris, 22 degrees, rain in about 30 minutes
The animated rain radar over France
Theme settings

One city per screen, the essentials at a glance: temperature, feels-like, the rain to come. Fourteen blocks you can toggle and reorder by drag and drop, from rain nowcasting to air quality, pollen, the starry sky and sea temperature.

Rain is the star: detection to the nearest 15 minutes, an animated radar with two hours of history and a 30-minute forecast, and a countdown to the shower in the Dynamic Island. Weather models side by side: Météo-France, ECMWF, ICON, GFS and Google's WeatherNext 2.

Built with web tech and shipped native through Capacitor, with Swift where it matters: widgets, a Live Activity, an Apple Watch app with complications and Siri shortcuts. History goes back to 1940.

Highlights

  • 14 modular blocks, 10 themes including colour-blind presets, a community theme gallery
  • Dynamic Island rain countdown and Apple Watch complications
  • Model comparison including Google DeepMind's WeatherNext 2
  • The weather on any date since 1940, with normals and records
  • Everything stays on the device: no account, no tracker, no ads
Released
July 2026
Platform
iPhone · Apple Watch
Price
Free
Native
4 Swift targets

06Tool · Smart home2026Open source

cs2-ambilight

Your Philips Hue lights play the Counter-Strike 2 match with you.

The C4 pulse quickens with the real beep timing, the explosion flashes through the room with a fireball and dying embers, round wins blink red or blue for the winning side, and a gold sweep crosses your lights when you're the round MVP.

It reads Valve's official Game State Integration, so nothing is injected into the game and the config installs itself. Effects stream to the bulbs at 50 frames per second over the Hue Entertainment API, then every light returns to the exact state it was in.

Version 2 adds a true ambilight: a tiny Rust sidecar grabs the screen through DXGI, lets the GPU shrink each frame to a small grid, and maps its zones to where your lights stand in the room.

Highlights

  • Rules editor: 8 CS2 events × 6 animations, with colour and speed
  • DTLS/UDP streaming at 50 fps, with a REST fallback
  • Screen capture for about 0.1% of one CPU core, in a 220 KB binary
  • Runs on the gaming PC or in Docker on a NAS
Started
Sept 2026
Runs on
Windows · Linux · Docker
Lights
Philips Hue
Size
~3,200 lines

Contact

Got a weird idea?Let's build it.

Freelance missions, a project for Studio KMA, or just a word about one of the Lab experiments: my inbox is open.

bonjour@kma.studio
© 2026 Kevin Martin · Studio KMAMade in Royan with three.js, GSAP & LenisBack to top ↑