<?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: David Sellam</title>
    <description>The latest articles on DEV Community by David Sellam (@dvd90).</description>
    <link>https://dev.to/dvd90</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%2F233232%2Fdec64b36-90be-4d64-b749-50f9117b78be.jpeg</url>
      <title>DEV Community: David Sellam</title>
      <link>https://dev.to/dvd90</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dvd90"/>
    <language>en</language>
    <item>
      <title>When I was a kid I was obsessed with Tamagotchis.</title>
      <dc:creator>David Sellam</dc:creator>
      <pubDate>Sat, 18 Jul 2026 07:53:54 +0000</pubDate>
      <link>https://dev.to/dvd90/when-i-was-a-kid-i-was-obsessed-with-tamagotchis-40ld</link>
      <guid>https://dev.to/dvd90/when-i-was-a-kid-i-was-obsessed-with-tamagotchis-40ld</guid>
      <description>&lt;p&gt;Fed mine at 2am, panicked when it flatlined during class, the whole thing. Never grew out of it, apparently, I just built one for adults who write code instead of feed pixels.&lt;/p&gt;

&lt;p&gt;**Meet Gitgotchi: **a tiny creature that lives in your terminal, and whose health and mood are a direct readout of your repo's state. Failing tests make it sick. Stale branches make it lonely. A fresh commit feeds it. Climbing test coverage helps it evolve. No dashboards, no linter nagging you about best practices just a small pet giving you sad eyes because you haven't committed since Tuesday.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zero config:&lt;/strong&gt; &lt;code&gt;run npx gitgotchi&lt;/code&gt; in any git repo and you meet your creature in under 5 seconds, using nothing but git + grep. CI and coverage hookups are optional upgrades later.&lt;/p&gt;

&lt;p&gt;I'm building it fully in the open, TDD all the way every milestone starts with failing tests before I write a line of implementation. The "game logic" is 100% pure functions, no side effects, so the whole creature is deterministic and fully testable, which honestly feels like the most satisfying part of this so far.&lt;/p&gt;

&lt;p&gt;Still early days collectors, the mood engine, and the terminal UI are in progress. Next up is a shareable card so you can post your pet's stats (and its decline).&lt;br&gt;
If your inner ten-year-old also just wants their repo to have a face, this one's for you.&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.npmjs.com/package/gitgotchi" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;npmjs.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>tamagotchi</category>
      <category>git</category>
      <category>productivity</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Three years ago I wrote a backend boilerplate, pushed it to a private repo, and forgot it existed.</title>
      <dc:creator>David Sellam</dc:creator>
      <pubDate>Thu, 09 Jul 2026 21:45:28 +0000</pubDate>
      <link>https://dev.to/dvd90/three-years-ago-i-wrote-a-backend-boilerplate-pushed-it-to-a-private-repo-and-forgot-it-existed-330p</link>
      <guid>https://dev.to/dvd90/three-years-ago-i-wrote-a-backend-boilerplate-pushed-it-to-a-private-repo-and-forgot-it-existed-330p</guid>
      <description>&lt;p&gt;This week I needed a quick REST API. Instead of the usual heavyweight setup, I went spelunking through my old GitHub repos and there it was. 2021 me, Express, TypeScript, a decorator-based routing idea I was weirdly proud of.&lt;br&gt;
The problem: it was frozen in 2021. Node 14, Express 4, dependencies that hadn't been touched in years.&lt;/p&gt;

&lt;p&gt;So I sat down with Claude Code and rebuilt it properly:&lt;br&gt;
→ Node 22, Express 5, TypeScript 5, strict everything&lt;br&gt;
→ Vitest + supertest, CI on Node 20 &amp;amp; 22, multi-stage Docker&lt;br&gt;
→ MongoDB, Auth0 and Sentry as opt-in modules — set an env var and they turn on, leave it out and they never load&lt;br&gt;
→ Health checks, graceful shutdown, request correlation IDs&lt;br&gt;
→ Then packaged the whole thing as a CLI and shipped it to npm&lt;/p&gt;

&lt;p&gt;Meet 🏎️ Chassis — a lightweight, decorator-driven Express + TypeScript starter.&lt;br&gt;
One command, zero config to boot:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm create chassis my-api&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The pitch is simple: if you love NestJS's ergonomics but not its weight for a small service, this is the featherweight option. Nest-style controllers on plain Express ~10 small files you can actually read, not a framework you have to learn.&lt;/p&gt;

&lt;p&gt;It even ships with an AGENTS.md so your AI coding agent writes code that matches the conventions out of the box.&lt;br&gt;
MIT, free, and I'd genuinely love feedback (or a ⭐).&lt;/p&gt;

&lt;p&gt;&lt;a href="//github.com/dvd90/chassis"&gt;github.com/dvd90/chassis&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>express</category>
      <category>typescript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
