<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SQLite on Anthony Snavely</title><link>https://anthonysnavely.com/technologies/sqlite/</link><description>Recent content in SQLite on Anthony Snavely</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 28 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://anthonysnavely.com/technologies/sqlite/index.xml" rel="self" type="application/rss+xml"/><item><title>Fucking Golf</title><link>https://anthonysnavely.com/showcase/fucking-golf/</link><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate><guid>https://anthonysnavely.com/showcase/fucking-golf/</guid><description>&lt;p>Top-down, turn-based mini-golf for up to four players per lobby, plus a daily course that everyone plays and compares on one board.&lt;/p>
&lt;h2 id="the-daily">The daily&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>A new course every night.&lt;/strong> A scheduled job asks Claude to design tomorrow&amp;rsquo;s nine holes in a small layout language (shapes, lines, mirrors, hazards), then validates and solves every hole before it goes live. It builds a week ahead and falls back to a procedural course if a night&amp;rsquo;s design fails.&lt;/li>
&lt;li>&lt;strong>Design rules from real play.&lt;/strong> The prompt gets a report of how players actually did on recent holes, and rules that keep things varied: hazards beside the line, holes that don&amp;rsquo;t all play left to right, shaped greens.&lt;/li>
&lt;li>&lt;strong>Replays and share cards.&lt;/strong> Every round is recorded and replayable, and the share card links to a spoiler-safe replay.&lt;/li>
&lt;/ul>
&lt;h2 id="under-the-hood">Under the hood&lt;/h2>
&lt;ul>
&lt;li>Server-authoritative physics. The simulation is deterministic, so a recorded shot replays exactly, and a solver can check every hole is makeable.&lt;/li>
&lt;li>Tile-based map engine with an in-browser editor and a course browser.&lt;/li>
&lt;li>Scores, replays and the daily board in SQLite. Everything else is flat files.&lt;/li>
&lt;li>A home-grown name filter that catches slurs through leetspeak, lookalike alphabets and spacing tricks, checked against a 370k-word dictionary so it doesn&amp;rsquo;t ban Scunthorpe.&lt;/li>
&lt;/ul></description></item><item><title>Fucking Penguins</title><link>https://anthonysnavely.com/showcase/fucking-penguins/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>https://anthonysnavely.com/showcase/fucking-penguins/</guid><description>&lt;p>Last penguin standing. Steer, boost and bump everyone else off the ice. Modes: Classic free-for-all, 2v2v2 teams, and Power Surge. Quick-play or a private room with a code, plus spectating and a leaderboard.&lt;/p>
&lt;p>A shared simulation runs on both server and client, the server is authoritative, and the only dependencies are &lt;code>ws&lt;/code> and &lt;code>better-sqlite3&lt;/code>.&lt;/p></description></item></channel></rss>