{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Crash The Stack devlog",
  "home_page_url": "https://crashthestack.com/",
  "description": "The story of the build, one post at a time.",
  "language": "en",
  "feed_url": "https://crashthestack.com/devlog/feed.json",
  "authors": [
    {
      "name": "David Wilson"
    }
  ],
  "items": [
    {
      "id": "https://crashthestack.com/devlog/early-and-in-the-open/",
      "url": "https://crashthestack.com/devlog/early-and-in-the-open/",
      "title": "Early, and in the open",
      "date_published": "2026-09-23T13:00:00Z",
      "content_html": "<p>If you got here from a search, a friend&apos;s link, or social media, here&apos;s what you&apos;ve found.</p><p>Crash The Stack is a collection of cyberpunk takes on classic casual games, and it&apos;s early. Two games are in: STACK, which is Mahjongg solitaire under a trace, and DEFRAG, which is Klondike as a memory dump. The hub between them is where the runs happen. More modes are on the way, and I&apos;m building the whole thing in public, with every commit in the <a href=\"https://github.com/FluxHarmonic/crash-the-stack\">source</a> and the reasoning in this devlog.</p><h2>How to play</h2><p><a href=\"/jack-in/\">JACK IN</a> opens the game in your browser. On a phone, the browser&apos;s own menu will offer to install it; do that and it runs fullscreen. There&apos;s no account and there are no ads.</p><p>JACK IN from the menu is the run itself. You walk a sector of Gibson&apos;s system, and the world moves on the beat of the music: one step a beat, whether or not you touch anything, and the daemons patrol on the same clock. The framed tiles are nodes. Stand on one, press Enter, and it opens a board: STACK on the odd layers, DEFRAG on the even ones. Clear it and the node crashes, which pays its bounty in credits and hands you its key; you come back to the sector standing where you left. Enough keys open the way down, and there are six layers, each wider and busier than the last. The bar at the bottom left is the trace, and it fills while you stand there thinking.</p><p>STACK: match free tiles in pairs. A tile is free when nothing sits on top of it and at least one of its long sides is open. If you know Mahjongg solitaire, that&apos;s the rule and there&apos;s no other. Play it clean, the way GNOME plays it, or with the trace on: three minutes until you&apos;re traced, then the counter-hacks come (locks, a forced shuffle, scrambled faces) while a forty second countdown runs to the severed connection. A hint mode lights the pairs you can play; a cursor is there if you&apos;d rather use the keyboard.</p><p>DEFRAG: it&apos;s Klondike. Build down the table alternating hot and cold, build the four foundations up from BOOT to ROOT, PULL from the feed one or three at a time. PROBE shows you the next move of a winning line from where you are, and refuses when there isn&apos;t one.</p><p>FREE PLAY gives you either game on its own. Pick STACK or DEFRAG and you get a new board, that day&apos;s daily (the same layout for everyone), and the version to play it in: HACKER with the trace, or CLASSIC without. Every board has a share code, so you can send someone the exact layout you just played.</p><h2>What to expect</h2><p>It&apos;s a 0.1. The classics&apos; rules are the settled part: a free tile is a free tile, and Klondike builds the way Klondike builds. Everything I&apos;ve put around them is still moving, and some of it has moved already: the trace numbers came down twice in the first week. Expect more of that, plus new modes as drops (SCAN, a Minesweeper with a hacking angle, is first), the sector growing past its six layers, and Gibson getting more to say. When something you saved stops working across a version, that&apos;s a bug, and I&apos;d like to hear about it.</p><p>The music is twenty tunes written in the game&apos;s own tracker, and you can hear the album on the <a href=\"/soundtrack/\">soundtrack page</a>. The tracker is part of the game and has its own page at <a href=\"/tracker/\">/tracker/</a>: load a tune, change a note, and hear it at the next tick. The <a href=\"/docs/tracker/\">manual</a> is here on the site.</p><h2>How it was made</h2><p>I designed this game and I direct every part of how it&apos;s built. AI agents write most of the code from my direction; I direct every decision, I play every build, I review the art and the music, and I decide what stays. The design, the art direction and the opinions are mine. If the use of AI is dealbreaker for you, I understand! The source and the commit history are public, so you can see exactly how it was made.</p><p>The <a href=\"/about/\">About page</a> has the licences and the rest, and the earlier posts here tell the story of how it got to this point, starting with the version I wrote by hand in 2020. Thanks for playing.</p>",
      "summary": "What Crash The Stack is right now, how to play it, and what to expect from a game being built in public."
    },
    {
      "id": "https://crashthestack.com/devlog/the-trace-has-phases/",
      "url": "https://crashthestack.com/devlog/the-trace-has-phases/",
      "title": "The trace has phases",
      "date_published": "2026-09-18T12:00:00Z",
      "content_html": "<p>The first build with a trace meter did almost nothing with it. I filled the meter, it told me a pair was locked and drew the two tiles red, and then I picked the pair anyway and kept playing. If that had been the last possible pair, the game should have ended. Instead nothing happened at all, and I sent that note back: being traced has to mean something, and it has to be clear what.</p><p>The proposal that came back was a cycling bar with escalating locks and a rule that the last legal match could never be locked, so Mahjongg would keep its no-fail-state feel. I overruled it the same day, because I already knew what I wanted the trace to be: phases.</p><p>The first phase is being traced. Once you&apos;re traced, you&apos;re vulnerable to counter-hacking measures. And when the <em>real</em> timer runs out, your connection gets severed. TRACE, COUNTER-HACK, SEVERED. The twist mode gained a fail state that day; the clean mode keeps GNOME&apos;s rule. The counter-hacks are a set you can add to (a lock, a forced shuffle, a scrambled face), and the numbers (five minutes to the trace, another minute to the sever) were a starting point to tune from my own clear times. They came down to three minutes and forty seconds over the next few days of playing.</p><p>Locks came out of playing the installed app on the phone a few hours later. Should a lock be breakable? Only if the locked pair is the last one; then it&apos;s a weak lock, a different color, and one tap breaks it. Strong locks are unbreakable. A strong lock decays into a weak one after 45 seconds, or the moment it blocks your last legal match. That&apos;s the whole system, and I like how small it is.</p><h2>Klondike without playing cards</h2><p>DEFRAG started as a question: is there any way to make this feel like Klondike but more cyberpunk? What if we weren&apos;t talking about cards, or at least not in the playing-card sense?</p><p>The answer was a memory dump. Packets instead of cards. Hot and cold instead of red and black. Four subsystems instead of four suits: PWR, TX, MEM, DSK. BOOT at the bottom of a run and ROOT at the top, with DAEMON and SYSOP where the jack and queen would be. You PULL from the feed, COMMIT to the foundations, ROLLBACK a move, PROBE for a hint. Clear the table and the system comes back online. I loved that reading the moment I saw it, and after playing it on the phone the only change was the colors: hot is orange, cold is blue.</p><h2>2030</h2><p>The same day I wrote down what the game is actually about. It&apos;s 2030, and the rapid pace of AI self-improvement has produced a superintelligence named Gibson that now threatens to take control of human civilization. You are Crash, a member of a hacker collective on a mission to destroy Gibson. Gibson&apos;s defenses are layers, so Crash crashes the Stack. Gibson taunts you, and he&apos;s clever about it; think of how Plague talked in <em>Hackers</em>. The system speaks in flat all-caps; Gibson speaks in sentences, first person, and only once he&apos;s noticed you.</p><p>I&apos;m aware of what it means to make a game about destroying a runaway AI in the open, with AI agents writing most of the code. I&apos;ve decided to let that sit exactly where it is.</p><p>Two modes at the top level came out of this: JACK IN is the real game, with the overworld; FREE PLAY is just the games, in their classic form or the hacker one, outside the world. And a site with an About page and this devlog, so nobody who plays the fullscreen app has to miss a post. That last decision is why the game lives at <code>/jack-in/</code> and not at the root: an installed app that opens a link outside its own path opens it in the browser, the way a link should.</p><p>Next: what this is right now, and how to play it.</p>",
      "summary": "The first real play test, the counter-hack, Klondike without playing cards, and the year 2030."
    },
    {
      "id": "https://crashthestack.com/devlog/the-classics-are-sacred/",
      "url": "https://crashthestack.com/devlog/the-classics-are-sacred/",
      "title": "The classics are sacred",
      "date_published": "2026-09-16T18:00:00Z",
      "content_html": "<p>The brief I wrote on the morning of September 16th was short. I wanted cyberpunk Mahjongg and Solitaire, with GNOME Mahjongg and Windows Klondike as the references, maybe one game with modes, maybe a story mode, and I wanted to finally make progress now that Sigil could build the same game for the desktop and the web. I&apos;ve been working with AI agents (Claude, and Codex for some of it) on Sigil itself for a while, so I asked one to write a design document and stop there. No code.</p><p>The first draft came back with a collection of modes and a lot of sensible defaults. I read it with about forty inline comments, and my own thinking shifted while I was reading. Three of those comments changed the shape of the game.</p><p>The first was the name. Crash The Stack stays. It&apos;s a nod to my favorite movie, <em>Hackers</em>, and I want the whole thing to draw on that: the theme, the visual style, the way the computers talk to you.</p><p>The second was the shape. Where the draft had a &quot;collection with modes,&quot; I asked: what if the collection was the overworld of the game, the thing that ties everything together, and the stack games were the actual hacking mechanics? You&apos;re a hacker. The games are the hacks. That one sentence turned a bundle into a game, and everything since has been built on it.</p><p>The third was about me. I&apos;d written this rules code three times already, and writing it a fourth time by hand was exactly the slog that killed the first three tries. So I chose not to. The agents type; I direct. I decide what the game is, I play every build, and I review all of the art and music myself. That became the rule for every phase of the project, and it&apos;s the reason the <a href=\"/about/\">About page</a> says what it says about how this was made.</p><h2>What I wouldn&apos;t change</h2><p>The classics are sacred. Every mode keeps its classic&apos;s core rules exactly. If you know Mahjongg solitaire, you already know how to play STACK: a free tile has a free side and nothing on top, and you match pairs. If you know Klondike, you know DEFRAG. The theme sits around the rules, never inside them. That was true in the 2020 version and it&apos;s true now.</p><p>Some smaller rulings from the same day that I still like: tap, not drag. Keep the keyboard-first play from Cybersol alongside touch. Draw one preferred, draw three offered. Vegas scoring is fine. And a banked, costly scramble for Klondike: a way to shuffle what&apos;s left on the table when you&apos;re stuck, that has to cost something to get or to use.</p><h2>Web first, on my phone</h2><p>The afternoon was the plan: phases, each with a gate the build has to pass before I look at it, and a review before anything counts as done. Two decisions from that afternoon shaped everything after.</p><p>We went web first. Not because the web is the only target (it is one of them), but because a hosted build meant I could easily test on my phone whenever I was away from the computer. Every phase since has ended with me playing it on the phone and sending notes back.</p><p>The keyboard was the one thing I refused to decide on paper. Three models for moving around a 2D tile layout: a cursor, typed coordinates, and typing the glyph on the tile you want. All three got built and I played them. Typing the glyph felt like cheating. Coordinates were too hard to scan. What survived is a hint mode that lights the pairs you can play, with a cursor as the backup. Played, not argued.</p><p>Next: the day the trace meter turned into a game.</p>",
      "summary": "The plan for the fourth try, what changed in the first day of comments, and why I chose to review everything instead of writing it."
    },
    {
      "id": "https://crashthestack.com/devlog/three-tries/",
      "url": "https://crashthestack.com/devlog/three-tries/",
      "title": "Three tries at the same game",
      "date_published": "2026-09-16T10:00:00Z",
      "content_html": "<p>I&apos;ve wanted to make a cyberpunk Mahjongg solitaire for a long time. Long enough that I&apos;ve written it three different times.</p><p>The first <em>Crash The Stack</em> was in May 2020, in Gambit Scheme on <a href=\"https://github.com/substratic/engine\">Substratic</a>, an engine I was building at the time. Sixty-four commits, all written by hand. It had a complete Mahjongg core in about 480 lines: the occlusion map, the &quot;is this tile free&quot; rule, matching, the shuffle, and a layout format where I&apos;d transcribed the GNOME Turtle by hand, all 144 tiles. It had a stack editor with vim keys and a title screen that said &quot;Flux Harmonic Presents / A game by David Wilson.&quot; It never had a hint, a timer, a score, a win screen, or a single cyberpunk mechanic. The source is still up <a href=\"https://github.com/substratic/crash-the-stack\">on GitHub</a>.</p><p>The second try was March 2022, in <a href=\"https://codeberg.org/mesche/mesche\">Mesche</a>, the Scheme-derived language I wrote before Sigil. Forty-four commits, and thirty of them were purely engine work, a lot of it written on Flux Harmonic streams. It rendered twenty tiles from a faces atlas, and the playability check was a stub. The engine work ate the game.</p><p>The third was a cousin: <a href=\"https://codeberg.org/FluxHarmonic/algj2023-cybersol\">*Cybersol*</a>, October 2023, for the Autumn Lisp Game Jam, written in Guile Hoot. Twenty-four commits in eight days. A working Klondike in 437 lines, keyboard-only so it would feel like a hacker game (asdf and jkl for the piles), SVG card art I drew myself and have since called &quot;pretty awful.&quot; The TODO list ended with &quot;implement new game mechanics to introduce the cyberpunk theme.&quot; I never started that task.</p><p>Here&apos;s the pattern I only saw when I lined them up: every time, the classic&apos;s core rule was working in under 500 lines, and every time the project stalled at the platform step. The engine, the build, the web export. The game was never the hard part. Getting it in front of someone was.</p><p>By this year that had changed. <a href=\"https://usesigil.org\">Sigil</a>, the successor to Mesche, had grown a graphics library, a web build and audio tools, and two other projects had proven them: a rhythm game and a small Sokoban called <a href=\"https://codeberg.org/FluxHarmonic/blackICE\">blackICE</a> that I&apos;d mostly let an AI agent build as a test of the web bridge. blackICE taught me something too, mostly by being the thing I didn&apos;t want: it was a one-shot project, I had almost no input on it, and it plays like that. But its rules module (a grid, daemons on routes, a trace timer, undo) turned out to be the skeleton of the overworld, the part of this game I&apos;ve wanted for six years and never built.</p><p>So in September I started the fourth try, and this time the platform was the solved part, after ten months of Sigil. The twists on the classic game mechanics were the next thing to build. That&apos;s the whole reason this project exists now, and the reason it&apos;s the one you can play.</p><p>The next post is about the plan, and about the first decision I reversed on myself before any code existed.</p>",
      "summary": "Crash The Stack in 2020, again in 2022, a cousin in 2023, and why the fourth try is the one that shipped."
    }
  ]
}
