<?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: RishiKesh Das</title>
    <description>The latest articles on DEV Community by RishiKesh Das (@rishikesh_das_99ebbc89b70).</description>
    <link>https://dev.to/rishikesh_das_99ebbc89b70</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%2F3512817%2Feb7a6053-df4a-418b-8176-7e8ca0005ca9.jpg</url>
      <title>DEV Community: RishiKesh Das</title>
      <link>https://dev.to/rishikesh_das_99ebbc89b70</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rishikesh_das_99ebbc89b70"/>
    <language>en</language>
    <item>
      <title>I Replaced the Database With a JSON File to Build the Platform That Will Judge Me</title>
      <dc:creator>RishiKesh Das</dc:creator>
      <pubDate>Wed, 30 Sep 2026 18:15:37 +0000</pubDate>
      <link>https://dev.to/rishikesh_das_99ebbc89b70/i-replaced-the-database-with-a-json-file-to-build-the-platform-that-will-judge-me-3i03</link>
      <guid>https://dev.to/rishikesh_das_99ebbc89b70/i-replaced-the-database-with-a-json-file-to-build-the-platform-that-will-judge-me-3i03</guid>
      <description>&lt;p&gt;Most hackathons ask you to build a demo. DOGFOOD 2026 asked me to build the thing that would score me.&lt;/p&gt;

&lt;p&gt;Hackathon Raptors has run 35 hackathons across 85+ countries. This time they gave every team the same spec and one job: build the submission-and-judging platform they would actually run. No tracks. 72 hours. The winner gets forked and used for real events.&lt;/p&gt;

&lt;p&gt;I entered with JudgeForge ("Hack The Dog"). Here's what I think DOGFOOD really measures, and the decisions I made because of it.&lt;/p&gt;

&lt;p&gt;The real question isn't "what can you build?"&lt;/p&gt;

&lt;p&gt;When every team builds the same product from the same spec, features stop being the differentiator. Everyone ships events, teams, submissions and scoring. What's left is judgment:&lt;/p&gt;

&lt;p&gt;Could an organizer run this tomorrow? If it doesn't start on a laptop with one command, nothing else matters.&lt;br&gt;
Do you claim only what you can prove? The spec is a ladder of tiers (T1-T4) checked by an acceptance harness.&lt;br&gt;
Did you cut scope on purpose? The organizers' own intro warns that trying to build everything is the quickest route to something mediocre.&lt;/p&gt;

&lt;p&gt;So I stopped asking "what else can I add?" and started asking "what would I be comfortable maintaining?"&lt;/p&gt;

&lt;p&gt;Decision #1: no database&lt;/p&gt;

&lt;p&gt;JudgeForge is a Spring Boot backend and a React/Vite frontend served by Nginx. Persistence is plain JSON files.&lt;/p&gt;

&lt;p&gt;That isn't laziness, it's an adoption argument. A platform that needs a database running, migrated and seeded has three ways to fail before the first login. A JSON file has one.&lt;/p&gt;

&lt;p&gt;What I gained   What I paid&lt;br&gt;
Zero setup: docker compose up and it's live No concurrency guarantees at scale&lt;br&gt;
State I can open, read and diff in a text editor    No ad-hoc queries&lt;br&gt;
Nothing to migrate between versions A ceiling on event size&lt;/p&gt;

&lt;p&gt;I made the trade knowingly. A hackathon-sized event sits well below that ceiling, and the storage layer is the first thing I'd put behind an interface the day a real event outgrows it.&lt;/p&gt;

&lt;p&gt;Decision #2: claim honestly&lt;/p&gt;

&lt;p&gt;My .dogfood.toml claims T1 through T4. The acceptance script verifies T1 and T2, and all 7 checks pass. T3 and T4 aren't covered by that script, so I verified them by hand and documented exactly how.&lt;/p&gt;

&lt;p&gt;I'd rather show my work than let a green checkmark imply something it doesn't. A judging platform is a trust product. If I'm vague about what my own project proves, why would anyone trust the scores it produces?&lt;/p&gt;

&lt;p&gt;What's in the box&lt;/p&gt;

&lt;p&gt;Organizers create events. Participants form teams. The whole stack, backend, frontend and Nginx, comes up with Docker Compose on localhost:8080, under an MIT license.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hardest problem wasn't a feature. It was proof.
&lt;/h2&gt;

&lt;p&gt;The hardest part of this build wasn't adding another feature. It was proving the platform behaved the way the hackathon required.&lt;/p&gt;

&lt;p&gt;I started with a mistake: I read "offline" too literally. I spent time worrying that the very first &lt;code&gt;docker compose up&lt;/code&gt; had to work with no network at all. Then I checked the organizer clarification, and the real requirement was different: &lt;strong&gt;the application must run without external services once the Docker images are prepared.&lt;/strong&gt; That's the requirement that matters for a self-hosted platform, so that's the one I tested:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Make a completely fresh clone.&lt;/li&gt;
&lt;li&gt;Build the containers from scratch.&lt;/li&gt;
&lt;li&gt;Bring the stack up, then shut it down.&lt;/li&gt;
&lt;li&gt;Disable the network.&lt;/li&gt;
&lt;li&gt;Restart with &lt;code&gt;docker compose up -d --no-build&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The clean-clone run also exposed something I hadn't considered. My Compose file used fixed &lt;code&gt;container_name&lt;/code&gt; values, and on the same machine a fresh clone collided with the containers already there. No amount of feature work would have caught that.&lt;/p&gt;

&lt;p&gt;It taught me that "works on my machine" isn't enough for a self-hosted submission. &lt;strong&gt;The deployment path itself has to be tested from a clean environment.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try it-&lt;br&gt;
bash&lt;br&gt;
git clone &lt;a href="https://github.com/rishikeshdas887/judgeforge-dogfood-2026" rel="noopener noreferrer"&gt;https://github.com/rishikeshdas887/judgeforge-dogfood-2026&lt;/a&gt;&lt;br&gt;
cd judgeforge-dogfood-2026&lt;br&gt;
docker compose up&lt;/p&gt;

&lt;h1&gt;
  
  
  open &lt;a href="http://localhost:8080" rel="noopener noreferrer"&gt;http://localhost:8080&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/rishikeshdas887/judgeforge-dogfood-2026" rel="noopener noreferrer"&gt;https://github.com/rishikeshdas887/judgeforge-dogfood-2026&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo video: &lt;a href="https://www.youtube.com/watch?v=vJxb4QcTrbo" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=vJxb4QcTrbo&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw6wi65bl09j8egjuccja.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw6wi65bl09j8egjuccja.jpeg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The takeaway -&lt;/p&gt;

&lt;p&gt;Dogfooding means eating what you cook. JudgeForge is small on purpose, and every claim in its README is one I can back up. That's the platform I'd want judging me.&lt;/p&gt;

&lt;p&gt;Built for DOGFOOD 2026 by Hackathon Raptors. #Dogfood2026&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>springboot</category>
      <category>react</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
