05 / FIELD NOTES

A running log on both crafts: level design and the things I build after dark.

2026-07-12

✦ PINNEDWhen everyone's portfolio is correct

A layoff wave put thousands of designers on the market running the same good portfolio advice at once, and doing it right stopped being enough to stand out.

2026-07-03

✦ PINNEDField notes: how I run my side projects with Claude Code

The workflow that carries an interactive novel, a second brain, a wedding SaaS and a skincare atlas at the same time.

2026-08-18

What a camera gets for free

Korean action noir cuts away one beat early and lets you work out what happened, and Hong Kong surveillance stories are about being watched. I tried to write a novel out of both. Pantheon is live with seven chapters free.

2026-08-14

Rules for the version of me who's in a hurry

Why the same instinct shows up in four unrelated repos: decide it once, while there's time to think, so the decision isn't made again badly at midnight.

2026-08-13

The wedding app, part 3: the gate opened itself

What the wedding companion app had to survive on the day itself: a castle that ate phone signal, a countdown with no snooze, and 130 photos from guests who installed nothing.

2026-07-20

The river and the template

Perpetūra's engine is a directed graph in vanilla JS — and the story that refused the 18-chapter template got a river instead.

2026-07-20

Writing around the feeling

The unnameable feeling every Perpetūra story chases, and why it takes five different women to carry it.

2026-07-20

The machine around the writing

Quality on a one-person fiction studio isn't willpower. It's a machine, and this is what its parts are for.

2026-07-18

Two agents, one set of rules

Claude Code and Codex were quietly drifting on the house rules I'd written for them, so Ariadne now generates one instructions file from the other instead of me maintaining both by hand.

2026-07-18

Pulling the prose engine out of Perpetūra

A weekend proof-of-concept points Perpetūra's anti-slop linter at a noir story it had never seen, to find out whether the tooling is a portable engine or just Perpetūra with extra steps.

2026-07-14

One file, two renderers

Adding a chart card to Folium meant reaching for a chart library, then realizing the exported HTML file would show nothing where the chart should be. Every card type has to run twice.

2026-07-14

Why Folium and Tessera's code is now public

Folium and Tessera went source-available this week under PolyForm Noncommercial. A page of screenshots claims; a repo shows. And MIT would hand away a door I want to keep.

2026-07-13

A portfolio review that fits in one file

Reviewing a portfolio used to mean a dozen tabs and a thread of emailed screenshots. Folium is the local visual board I built so a whole review lives on one canvas I can hand over as a single file.

2026-07-12

Stock Academy: the course I wanted before I started

A ten-module investing course for people with no finance background, with the Swedish tax answers written plainly and the not-advice caveats built into each lesson instead of a footer.

2026-07-12

Tessera can bind your letters into a book

Tessera now imposes a series of sealed letters into a home-bindable printed booklet, math-tested and honest about a cheap printer.

2026-07-11

Tessera: a letter with no moving parts but you

Tessera is a free tool and an open format for writing letters that arrive decades from now. I built it to outlive every company, server, and person involved, including me.

2026-07-11

The best edit lost to the plainest one

Picking a hero portrait for a dark, restrained site meant rejecting the most impressive AI edit for the quietest one, then rebuilding it as an interactive video.

2026-07-10

A soundtrack good enough to sell, and wrong for its scene

Generating soundtrack, lyrics, and scene art for Perpetūra with Suno and an image model, and the gap between impressive and usable in context.

2026-07-08

Loaning out your brain: the Perpetūra skill suite

How Perpetūra encodes creative intent once so any session writes toward it, and why the post-prose skills keep the series from contradicting itself.

2026-07-05

Giving a coding agent a memory

Claude Code forgets everything between sessions. Ariadne is the small engine and plain-markdown vault I built so it stops making me re-explain the project every morning.

2026-07-05

Same craft, three genres

The reflexes that carried my open-world work turned into liabilities the moment I moved to co-op and extraction.

2026-07-05

SkinAtlas: teaching the copilot manners

A five-insertion prompt change that stops the copilot from playing doctor or reciting your skin history back at you.

2026-07-04

The verifier that said yes to a PDF

Two fail-open bugs in SkinAtlas's image verification, and the difference between a check that fails and a check that shrugs.

2026-07-04

Three bugs hiding in one small feature

A check-in card feature in SkinAtlas shipped with a design flaw, a serialization trap, and a race condition. Each needed a different kind of fix.

2026-07-04

The SEO cluster nobody could see

Ten landing pages, a sitemap, structured data, cross-links. And a robots.txt that blocked the entire site.

2026-07-03

Setting as constraint: worldbuilding in two crafts

What level design location work and historical fiction research share, and what happens when research constrains rather than decorates.

2026-07-03

Perpetūra: building a route from brief to playable

The skill-chained workflow behind each Perpetūra story: research, scaffolding, prose, and the gates that guard release. Reine's route as the example.

2026-07-03

Fit is not the same as contribution

Why senior hires lose motivation when their judgment stops being used, and what has to change on both sides to fix it.

2026-07-03

What a studio is actually made of

Culture, recognition, and the invisible things that decide whether a game team holds together or quietly falls apart.

2026-07-03

The level design of an interactive novel

Routing a romance story turns out to be the same craft as routing a heist.

2026-07-02

Rebuilding this site, part 2: the machinery under the notes

Style as a versioned spec, a glitch system, and how these field notes get made.

2026-07-02

Rebuilding this site: from CRA to celestial clockwork

Why the old portfolio had to go, and what the new one is made of.

2026-07-01

Red-teaming my own hobby projects

One shared security workflow, periodic agent audits, and the real holes they keep finding.

2026-07-01

Writing projects so a different model can pick them up cold

A fresh session has no idea why a file is shaped the way it is. The fix is committing the why to the repo, not to one model's context window.

2026-07-01

Stay in your lane

On the cost of departmental silos in game development, and what happens when a lead who reaches across gets told to pull back.

2026-07-01

SkinAtlas, part 3: memory that survives the session

A .claude/memory directory synced by pre-commit hook, six project skills, and worktrees for parallel agent sessions.

2026-06-30

SkinAtlas, part 2: the atlas grows while I sleep

A resumable batch pipeline, a knowledge base at 2,402 ingredients, and why automated image lookup is wrong 9 times out of 10.

2026-06-29

Two writers, one chair

Perpetūra's two-writer drafting loop, pointed at this site's copy. The orchestration is model-agnostic; what stays fixed is where the judgment lives.

2026-06-29

SkinAtlas, part 1: explainability over magic

A personal skincare atlas where every claim has to cite an ingredient record, not a vibe.

2026-06-28

Leading without a map

What happens when a team has no shared roadmap, and what I learned from building one that nobody committed to.

2026-06-28

The wedding app, part 2: forking our wedding into a product

Multi-tenant rebuild, $99 checkout, a security remediation plan, and features waiting to come back.

2026-06-27

Loom: where the branching logic lives

One design decision inside Loom I keep thinking was right: the logic that makes prose branch lives inside the prose, not in a scripting layer next to it.

2026-06-27

The reel factory: when the marketing threatens to eat the making

Generating social videos and campaign art from the projects themselves, so promotion doesn't cost building time.

2026-06-27

The wedding app, part 1: built in 23 days, for one day

A guest companion app for our own wedding: seating search, photo quests, bingo, and a live slideshow on the venue TV.

2026-06-26

Loom: the three-day engine

Extracting a general interactive-fiction tool from a specific novel, and letting the novel find its gaps.

2026-06-25

The editorial council, one finding at a time

How a multi-model review panel caught me stating my own ending's moral, and what the loop looks like end to end.

2026-06-25

Perpetūra, part 3: voice as a spec

A prose style guide precise enough to lint for, a texture target for sentence rhythm, and an editorial council that argues with itself.

2026-06-24

Perpetūra, part 2: the content bible

Eight canon documents, a character template, and rules that get promoted from lessons.

2026-06-23

Don't pay the expensive model to read logs

The orchestrator's job is judgment, not grep. How I split work between an expensive model and a pile of cheap subagents, and why I still read every diff before I believe it.

2026-06-23

Perpetūra, part 1: an interactive novel that hides its machinery

An interactive novel that hides its machinery, and the release train behind three stories in three centuries.

2026-06-22

Jubileus, part 3: the night the second brain learned to code

Turning the hub into a Claude Code front end: an autonomy gate, resumable sessions, and a feature I deliberately left unfinished.

2026-06-21

Jubileus, part 2: the librarian works nights

Scheduled headless Claude jobs, and the merge rule that lets an agent edit my notes without overwriting me.

2026-06-20

Jubileus, part 1: a second brain in a folder

Plain markdown, one MCP server, and a search index I'm allowed to delete.

2026-06-19

Level design portfolios: what I actually look for

The advice I keep repeating when I review level designers' portfolios, written down so it's searchable.

2026-06-19

The same feature, rebuilt four times: voice in Jubileus

A voice cockpit rebuilt across four speech stacks, each swap forced by one non-negotiable constraint.

2026-06-18

Why I keep showing up to game dev meetups

Community events, mentoring, and the case for being findable in the industry you work in.