<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hobby Builder</title>
    <description>The latest articles on DEV Community by Hobby Builder (@hobbybuilder).</description>
    <link>https://dev.to/hobbybuilder</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4231056%2F4084bf54-b746-4028-a009-b6a16226d595.jpg</url>
      <title>DEV Community: Hobby Builder</title>
      <link>https://dev.to/hobbybuilder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hobbybuilder"/>
    <language>en</language>
    <item>
      <title>Making a push-your-luck browser game with no server</title>
      <dc:creator>Hobby Builder</dc:creator>
      <pubDate>Sat, 07 Nov 2026 00:56:24 +0000</pubDate>
      <link>https://dev.to/hobbybuilder/making-a-push-your-luck-browser-game-with-no-server-1bi2</link>
      <guid>https://dev.to/hobbybuilder/making-a-push-your-luck-browser-game-with-no-server-1bi2</guid>
      <description>&lt;p&gt;&lt;a href="https://salvage.run" rel="noopener noreferrer"&gt;https://salvage.run&lt;/a&gt; is a short salvage run: go deeper for a bigger take, or bank what you have before the run goes bad.&lt;/p&gt;

&lt;p&gt;The rules I set myself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No server and no database. Everything runs in the browser.&lt;/li&gt;
&lt;li&gt;No art files. The city, the camp and the music are generated in code.&lt;/li&gt;
&lt;li&gt;One link replays the exact same map on any device, so you can challenge a friend.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hardest part was the odds. I tuned payouts over 4,000 seeded maps until "one more step" felt tempting but not free.&lt;/p&gt;

&lt;p&gt;There's a daily run with the same map for everyone, and a camp you build up with what you bank.&lt;/p&gt;

&lt;p&gt;Is the bank-or-press-on call clear on your first run?&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>javascript</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Turning Chicago 311 open data into a ward leaderboard</title>
      <dc:creator>Hobby Builder</dc:creator>
      <pubDate>Sat, 07 Nov 2026 00:46:45 +0000</pubDate>
      <link>https://dev.to/hobbybuilder/turning-chicago-311-open-data-into-a-ward-leaderboard-4l5l</link>
      <guid>https://dev.to/hobbybuilder/turning-chicago-311-open-data-into-a-ward-leaderboard-4l5l</guid>
      <description>&lt;p&gt;Chicago publishes its 311 service requests as open data. I wanted one plain answer from it: how long does each ward wait for a repair?&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://chiwardboard.com" rel="noopener noreferrer"&gt;https://chiwardboard.com&lt;/a&gt;. It groups 311 requests by ward and type and shows typical wait times side by side.&lt;/p&gt;

&lt;p&gt;The spread surprised me. When I checked this week, a pothole took about 2 days in one ward and almost 39 in another.&lt;/p&gt;

&lt;p&gt;It stays nonpartisan on purpose: just the numbers, by ward.&lt;/p&gt;

&lt;p&gt;If you've built on a city open data portal, what tripped you up?&lt;/p&gt;

</description>
      <category>opendata</category>
      <category>chicago</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I built 8 small, weird websites on the side</title>
      <dc:creator>Hobby Builder</dc:creator>
      <pubDate>Sat, 07 Nov 2026 00:44:33 +0000</pubDate>
      <link>https://dev.to/hobbybuilder/i-built-8-small-weird-websites-on-the-side-21e4</link>
      <guid>https://dev.to/hobbybuilder/i-built-8-small-weird-websites-on-the-side-21e4</guid>
      <description>&lt;p&gt;I don't have one big app. I have a shelf of small ones, each built around one idea, all React and Vite on Vercel.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://salvage.run" rel="noopener noreferrer"&gt;https://salvage.run&lt;/a&gt; : a push-your-luck salvage game in the browser&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://culdesac.site" rel="noopener noreferrer"&gt;https://culdesac.site&lt;/a&gt; : a catalog of odd corners of the web&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lolchat.rip" rel="noopener noreferrer"&gt;https://lolchat.rip&lt;/a&gt; : retro chat rooms&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://56k.rip" rel="noopener noreferrer"&gt;https://56k.rip&lt;/a&gt; and &lt;a href="https://dialup.rip" rel="noopener noreferrer"&gt;https://dialup.rip&lt;/a&gt; : dial-up era nostalgia&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://iching.site" rel="noopener noreferrer"&gt;https://iching.site&lt;/a&gt; : an I Ching oracle&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chiwardboard.com" rel="noopener noreferrer"&gt;https://chiwardboard.com&lt;/a&gt; : Chicago 311 repair times by ward, from city open data&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://resumererun.app" rel="noopener noreferrer"&gt;https://resumererun.app&lt;/a&gt; : a resume tune-up tool&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What I've learned so far: small and specific beats big and vague. The nostalgia sites pull the most visitors, and culdesac.site sends people on to the rest.&lt;/p&gt;

&lt;p&gt;Which one should I write up first?&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>sideprojects</category>
      <category>react</category>
    </item>
  </channel>
</rss>
