<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>stafford williams</title>
    <description>spacetraders-v1 dev</description>
    <link>https://staffordwilliams.com/dev/</link>
    <pubDate>Sun, 01 Nov 2026 10:13:19 GMT</pubDate>
    <lastBuildDate>Sun, 01 Nov 2026 10:13:19 GMT</lastBuildDate>
    <generator>Astro</generator>
    <item>
      <title>spacetraders-v1: System monitor machine, last profit per ship, ship state fixes</title>
      <description>&lt;p&gt;Background monitoring moved into its own machine, along with a batch of fixes for stale ship state.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Last trade profit tracked per ship&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Background system monitor machine&lt;/li&gt;&lt;li&gt;Cached vs fresh requests shown in ship log&lt;/li&gt;&lt;li&gt;Old trade component removed&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Completed flight plans not expiring&lt;/li&gt;&lt;li&gt;Stale ship locations&lt;/li&gt;&lt;li&gt;Ships with no flight plan or location&lt;/li&gt;&lt;li&gt;Trade route and buy/upgrade edge cases&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Mon, 17 May 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w20/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w20/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: Fuel-aware trade routes, trade routes table, player machine tests</title>
      <description>&lt;p&gt;Trade route selection became fuel-aware, and the rest of the week went into refactoring for testability.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Player machine tests&lt;/li&gt;&lt;li&gt;Trade routes table with profitability and ship assignments&lt;/li&gt;&lt;li&gt;Flight time in CSV exports&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Buy-and-upgrade flow extracted to its own machine&lt;/li&gt;&lt;li&gt;Data modules split by concern&lt;/li&gt;&lt;li&gt;Global state removed for testability&lt;/li&gt;&lt;li&gt;Database and request logic extracted to modules&lt;/li&gt;&lt;li&gt;Empty trade routes deleted automatically&lt;/li&gt;&lt;li&gt;Route profit accounts for fuel cost and availability&lt;/li&gt;&lt;li&gt;Trade records include quantity and ship type&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Closest location selection in route ranking&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 16 May 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w19/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w19/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: Per-ship request log, manual cargo sales, focused trade route</title>
      <description>&lt;p&gt;More visibility and manual control over individual ships, with a per-ship request log and direct cargo sales.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Sell cargo manually from the ship view&lt;/li&gt;&lt;li&gt;Debug option to focus ships on a single trade route&lt;/li&gt;&lt;li&gt;Per-ship API request log&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Avatar-style good icons&lt;/li&gt;&lt;li&gt;Ships wait when they can&apos;t afford fuel&lt;/li&gt;&lt;li&gt;Animated chart updates&lt;/li&gt;&lt;li&gt;Locations read from localStorage instead of player context&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Goto not switching back to trading&lt;/li&gt;&lt;li&gt;Stale ship data not cleaned up&lt;/li&gt;&lt;li&gt;Ship spawning after purchase&lt;/li&gt;&lt;li&gt;Trades not marked complete when cargo sold&lt;/li&gt;&lt;li&gt;Ships stuck after failed fuel purchases&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 09 May 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w18/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w18/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: Goto strategy, leaderboard, saved trade route data</title>
      <description>&lt;p&gt;Ships could now be sent anywhere on demand, and intel gained a leaderboard alongside saved trade data for analysis.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Leaderboard in the intel section&lt;/li&gt;&lt;li&gt;Saved trade route data with filterable tab&lt;/li&gt;&lt;li&gt;Goto strategy to send ships to a chosen location&lt;/li&gt;&lt;li&gt;Location picker dialog&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ship data cached in localStorage&lt;/li&gt;&lt;li&gt;Distinct colours for chart series&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Context assignment in the goto flow&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 02 May 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w17/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w17/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: Structures view, multi-hop trade routes, trade machine cleanup</title>
      <description>&lt;p&gt;A quieter week that fed pathfinding into trade route selection and simplified the trade machine.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Toggle debug mode without restarting&lt;/li&gt;&lt;li&gt;Available structures view&lt;/li&gt;&lt;li&gt;API error count display&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Flight handling fully delegated to travel machine&lt;/li&gt;&lt;li&gt;Locations kept in memory for performance&lt;/li&gt;&lt;li&gt;Better error logging in ship machines&lt;/li&gt;&lt;li&gt;Upgrading ships fly to a shipyard first&lt;/li&gt;&lt;li&gt;Improved markets display&lt;/li&gt;&lt;li&gt;Trade routes consider multi-hop paths&lt;/li&gt;&lt;li&gt;Max cargo per trade raised to 500&lt;/li&gt;&lt;li&gt;Central localStorage key module&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ships mid-route when the app restarts&lt;/li&gt;&lt;li&gt;Trade completion detection&lt;/li&gt;&lt;li&gt;Fuel state after creating flight plans&lt;/li&gt;&lt;li&gt;Null checks, routing and initialisation issues&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 25 Apr 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w16/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w16/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: Market price charts, A* pathfinding, warp jumps between systems</title>
      <description>&lt;p&gt;Navigation was the theme, with graph-based pathfinding and warp jumps letting ships route across systems, plus market charts for spotting price trends.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Warp jumps for inter-system travel&lt;/li&gt;&lt;li&gt;Probe target location shown in UI&lt;/li&gt;&lt;li&gt;A* pathfinding for multi-hop routes&lt;/li&gt;&lt;li&gt;Change strategy from the ship screen&lt;/li&gt;&lt;li&gt;Trade route ranking&lt;/li&gt;&lt;li&gt;Ships revert to trading after other tasks&lt;/li&gt;&lt;li&gt;Rate limit indicator&lt;/li&gt;&lt;li&gt;Market price history charts&lt;/li&gt;&lt;li&gt;Quick strategy change buttons&lt;/li&gt;&lt;li&gt;Intel users tab with player detail&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Pathfinding handles multiple systems, with extensive tests&lt;/li&gt;&lt;li&gt;Fuel calculations include warp costs&lt;/li&gt;&lt;li&gt;Ships halt cleanly when out of fuel&lt;/li&gt;&lt;li&gt;Better ship filtering and strategy view&lt;/li&gt;&lt;li&gt;Ship cards show icons and current strategy&lt;/li&gt;&lt;li&gt;Strategy selection uses a select instead of toggle&lt;/li&gt;&lt;li&gt;Credits stored in localStorage&lt;/li&gt;&lt;li&gt;&amp;quot;Workers&amp;quot; renamed to &amp;quot;Drones&amp;quot;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;A crash bug&lt;/li&gt;&lt;li&gt;Upgrade machine purchasing and location issues&lt;/li&gt;&lt;li&gt;Rate limit handling&lt;/li&gt;&lt;li&gt;Ships with no fuel&lt;/li&gt;&lt;li&gt;App crashing on unexpected API data when spawning ships&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 18 Apr 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w15/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w15/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: Auto-buy and auto-upgrade ships, rate limit retries, trade analytics</title>
      <description>&lt;p&gt;Fleet management got automated with configurable ship buying and upgrading, alongside a round of stability work on rate limits and trading edge cases.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Best and current trade route analytics&lt;/li&gt;&lt;li&gt;Icons for every tradeable good&lt;/li&gt;&lt;li&gt;Ship scrapping&lt;/li&gt;&lt;li&gt;Full upgrade flow that sells, scraps and rebuys ships&lt;/li&gt;&lt;li&gt;Ship links in the trades table&lt;/li&gt;&lt;li&gt;Auto-upgrade rules between ship types&lt;/li&gt;&lt;li&gt;Configurable auto-buy threshold and ship type&lt;/li&gt;&lt;li&gt;Retry with backoff on rate-limited requests&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Map and locations merged into one tabbed view&lt;/li&gt;&lt;li&gt;Upgrades run in a dedicated state machine&lt;/li&gt;&lt;li&gt;Ships, trades and automation components reorganised&lt;/li&gt;&lt;li&gt;Ships sell leftover cargo before new routes&lt;/li&gt;&lt;li&gt;Probes visit nearest locations first&lt;/li&gt;&lt;li&gt;Fleet cap raised to 70–80 ships&lt;/li&gt;&lt;li&gt;Machines wait after errors instead of spinning&lt;/li&gt;&lt;li&gt;Flight plans persisted across sessions&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ships wrongly selling their fuel&lt;/li&gt;&lt;li&gt;Map location names&lt;/li&gt;&lt;li&gt;Fuel needs miscalculated for journeys&lt;/li&gt;&lt;li&gt;Buy and sell edge cases&lt;/li&gt;&lt;li&gt;Cargo and ship info display issues&lt;/li&gt;&lt;li&gt;Routing redirects&lt;/li&gt;&lt;li&gt;Reset not clearing all database tables&lt;/li&gt;&lt;li&gt;Strategy switches mid-operation&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 11 Apr 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w14/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w14/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: Ship strategies, probe scouting, intel on other players, route optimiser</title>
      <description>&lt;p&gt;Ships gained configurable strategies, including a probe that scouts markets, while trading moved to a route optimiser and intel started tracking other players.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Best trade route chosen across all destinations&lt;/li&gt;&lt;li&gt;Runtime-toggleable debug logging for ship machines&lt;/li&gt;&lt;li&gt;Probe strategy scouting stale locations&lt;/li&gt;&lt;li&gt;Per-player activity in intel view&lt;/li&gt;&lt;li&gt;Probes status view&lt;/li&gt;&lt;li&gt;Automatic pruning of old trade records&lt;/li&gt;&lt;li&gt;Ship names assigned on purchase&lt;/li&gt;&lt;li&gt;Location scouting history&lt;/li&gt;&lt;li&gt;Switching ship strategy at runtime&lt;/li&gt;&lt;li&gt;Intel view of other players&apos; flight plans&lt;/li&gt;&lt;li&gt;Cost and profit columns in trades&lt;/li&gt;&lt;li&gt;Per-ship trade or halt strategies&lt;/li&gt;&lt;li&gt;Buy/sell spread in markets view&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Shared travel and ship init machines&lt;/li&gt;&lt;li&gt;Reusable travel-to-location machine&lt;/li&gt;&lt;li&gt;Indexed database tables and faster trade table&lt;/li&gt;&lt;li&gt;Responsive layout on small screens&lt;/li&gt;&lt;li&gt;Ship state renamed from idle to ready&lt;/li&gt;&lt;li&gt;Strategy UI split into toggle and per-ship controls&lt;/li&gt;&lt;li&gt;API responses cached with TTLs to avoid rate limits&lt;/li&gt;&lt;li&gt;Less flicker from delayed updates&lt;/li&gt;&lt;li&gt;Ship machines split per strategy&lt;/li&gt;&lt;li&gt;Ship purchase threshold set to 100,000 credits&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ships buying more fuel than needed&lt;/li&gt;&lt;li&gt;Probes when every location was recently scouted&lt;/li&gt;&lt;li&gt;Market price comparison picking poor routes&lt;/li&gt;&lt;li&gt;Ships trying to buy untradeable research goods&lt;/li&gt;&lt;li&gt;Failed ship purchases&lt;/li&gt;&lt;li&gt;Trades table on small screens&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 04 Apr 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w13/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w13/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: Multi-ship actors, IndexedDB trade history, dark mode, system map</title>
      <description>&lt;p&gt;Ships became independent actors so the fleet could grow on its own, and trades started being kept in IndexedDB behind new routed views, a map and dark mode.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Visual star system map with clickable locations&lt;/li&gt;&lt;li&gt;System selector for the map&lt;/li&gt;&lt;li&gt;Dark mode with persisted theme&lt;/li&gt;&lt;li&gt;Markets, available ships and settings views&lt;/li&gt;&lt;li&gt;Trade filtering by good, ship or location&lt;/li&gt;&lt;li&gt;IndexedDB persistence of trades and API errors&lt;/li&gt;&lt;li&gt;Routed views for ships, trades, markets and errors&lt;/li&gt;&lt;li&gt;Trades table with profit per trade&lt;/li&gt;&lt;li&gt;Toolbar with credits, net worth and ship count&lt;/li&gt;&lt;li&gt;Automatic purchase of extra ships&lt;/li&gt;&lt;li&gt;Net worth calculation with asset and debt breakdown&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Shared data table across list views&lt;/li&gt;&lt;li&gt;Removed unused Pixi.js map&lt;/li&gt;&lt;li&gt;Icon tooltips and default route&lt;/li&gt;&lt;li&gt;Buy and sell quantity limit raised to 1000&lt;/li&gt;&lt;li&gt;Fleet capped at 20 ships&lt;/li&gt;&lt;li&gt;Ships in error states highlighted&lt;/li&gt;&lt;li&gt;Failed purchases recover by refetching market data&lt;/li&gt;&lt;li&gt;Ships spawned as independent XState actors&lt;/li&gt;&lt;li&gt;UI polish across ship, cargo and flight plan views&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Volume shown with cubic metre symbol&lt;/li&gt;&lt;li&gt;Market lookups for ships in flight&lt;/li&gt;&lt;li&gt;Null entries in location cache&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 28 Mar 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w12/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w12/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: Move to XState, automated onboarding, ship trading loop</title>
      <description>&lt;p&gt;The week replaced Redux with XState state machines, then used them to automate onboarding and build a full buy, fly and sell trading loop.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Automated trading loop choosing cargo by profit&lt;/li&gt;&lt;li&gt;Flight plan progress indicator with time remaining&lt;/li&gt;&lt;li&gt;Locations view with market data&lt;/li&gt;&lt;li&gt;Cargo hold display&lt;/li&gt;&lt;li&gt;Ship machine that buys fuel automatically&lt;/li&gt;&lt;li&gt;Automatic startup loan and cheapest ship purchase&lt;/li&gt;&lt;li&gt;Formatted credits display&lt;/li&gt;&lt;li&gt;Player machine caching credentials in localStorage&lt;/li&gt;&lt;li&gt;Polling API machine with retry timer&lt;/li&gt;&lt;li&gt;New account creation with confirm dialog&lt;/li&gt;&lt;li&gt;Fetch user credits, ships and loans&lt;/li&gt;&lt;li&gt;Buying and selling cargo&lt;/li&gt;&lt;li&gt;Flight plans for travel between locations&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Market data cached to localStorage&lt;/li&gt;&lt;li&gt;Tests for ship machine and cargo selection&lt;/li&gt;&lt;li&gt;Player initialisation steps through loan, ship and market checks&lt;/li&gt;&lt;li&gt;Refresh button only shown when ready&lt;/li&gt;&lt;li&gt;State machines moved into a &lt;code&gt;machines&lt;/code&gt; folder&lt;/li&gt;&lt;li&gt;State management switched from Redux to XState&lt;/li&gt;&lt;li&gt;Richer location model&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;New player button after the XState move&lt;/li&gt;&lt;li&gt;Deprecated XState transient transitions&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 21 Mar 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w11/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w11/</guid>
      <category>spacetraders-v1</category>
    </item>
    <item>
      <title>spacetraders-v1: React client kickoff, Redux API middleware, loans and ships</title>
      <description>&lt;p&gt;The SpaceTraders web client got started, with Redux state, typed API calls and continuous deploys to Netlify.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Browser-based React client for the SpaceTraders API&lt;/li&gt;&lt;li&gt;Netlify deploys via GitHub Actions&lt;/li&gt;&lt;li&gt;Redux middleware for async API calls with tests&lt;/li&gt;&lt;li&gt;Create player with random name generator&lt;/li&gt;&lt;li&gt;Fetch and request loans, list owned ships&lt;/li&gt;&lt;li&gt;Credits and loans status display&lt;/li&gt;&lt;li&gt;GitHub fork ribbon&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 14 Mar 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/spacetraders-v1/2021-w10/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/spacetraders-v1/2021-w10/</guid>
      <category>spacetraders-v1</category>
    </item>
  </channel>
</rss>
