DEV Community

ItzMassel
ItzMassel

Posted on

How I'm building an Open Source Project at 13

Homepage showing the Chessperiment user interface

Nine months ago I started building Chessperiment, a chess platform where every rule, piece and board can be customized. Today I'm open-sourcing it. Here's how an eight-year-old Scratch programmer somehow ended up here.

From Scratch to Python (and a Brief Hiatus)

It all started when I was 8 and started coding in Scratch. I bought a book on it and quickly learned it, but it just... wasn't enough. So, a month or so later, I switched to Python. I remember reading books on it in the schoolyard while my friends were running around laughing, but I didn't care. Every afternoon, every evening, I was sitting on my laptop coding.

Then, in 6th grade, I stopped. Python just wasn't enough for me, I wanted to get into SQL but it was way too boring. So I stopped coding completely, went into gaming, and later into novel writing.

Discovering Web Dev and Chessperiment

Until 8th grade, when I got into Web Development, which was clearly more exciting. I was quickly learning HTML, CSS, JavaScript. I was also starting to buy AI tools to do much of the work for me—sometimes definitely too much of the work.

At a sleepover with my friend, we got the idea of Chessperiment: An editor for chess variants without limitations. Where nothing is hardcoded and everything is adjustable.

Example of a custom chess variant where capturing a piece triggers a special effect

⬆️ Take this example. This piece will, on capture, not die, but instead, the attacker will jump back to where it came from, the piece will explode, have a cooldown of two moves, and tell the user to check out Chessperiment.

The Pitfalls of "Vibecoding"

I quickly started building the foundation, but I had a huge problem: I was just vibecoding way too much. This was nine months ago, where AI models weren't that good (yeah, there's actually a huge difference). So my code was completely messed up. Every new update broke the last.

I still released it. Why? Idk, I think it even was an accident. I just ignored the bugs because I had way too many ideas and not enough time to fix all the bugs. It was so frustrating seeing the AI struggling to fix one bug while creating 10 new ones. It got so out of hand that I eventually just stopped caring.

Bringing It Back to Life

It sat around on the internet for a few months, just collecting dust and a lot of unhappy users, until now! I'm open-sourcing the project and fixing a majority of the issues. We now only have a few left, and it's finally playable again. I'm also introducing proper source control.

I forgot to mention the tech stack: Next.js for the frontend, Express + Socket.io for the backend. If you're interested in trying the game out, providing new ideas, fixing bugs, or contributing in any way, just join the Discord, star us on GitHub, and start contributing! I always have a few issues marked as "good first issue".

Links

Chessperiment

An opensource web-based custom chess variant sandbox platform. Create custom boards, design unique pieces with a visual Blockly-based logic editor, define custom rules, and play online against friends or Stockfish AI.

Contributing

Feel free to contribute, you can take a look at the issues for inspiration. You should also join the Discord!

Features

  • Board Editor — Design custom boards with configurable dimensions, square or hex topologies, and active/inactive squares.
  • Piece Editor — Create custom pieces with a Scratch-like visual programming editor (Blockly). Define triggers (on-move, on-capture, on-threat, on-turn-start) and actions (kill, transform, explode, win, prevent, etc.).
  • Custom Game Engine — Supports standard chess, custom movement rules, hex grids, piece state variables (cooldown, charge, mode), multi-cell pieces, square logic, and a full effect system.
  • Online Multiplayer — Real-time gameplay via Socket.IO with room-based matchmaking, chat, and spectator support.
  • AI

Chessperiment

Check out the Chessperiment community on Discord - hang out with 3 other members and enjoy free voice and text chat.

favicon discord.com

How do you balance using AI coding assistants without letting your codebase turn into spaghetti? Let me know in the comments!

PS: This post is NOT AI-generated (I'm kinda proud of myself for writing such a long article without using AI. I had it look over the text tho.)

Top comments (0)