Shut The Box: A Classic Game Reimagined with Svelte and Gemini CLI
As a developer, I’m always on the lookout for new tools and frameworks to enhance my coding experience. Recently, I embarked on a journey to recreate the classic dice game "Shut The Box" as a web-based application. This project not only allowed me to dive deeper into Svelte 5 and Tailwind CSS but also introduced me to a revolutionary way of coding: vibe coding with the Gemini CLI.
August 12, 2025
The Game: Shut The Box
"Shut The Box" is a traditional pub game with simple yet engaging mechanics. The objective is to close all the numbered tiles on the board or finish with the lowest score. Players roll two dice and select numbers that sum up to the dice roll. The game ends when no valid moves are left, and the score is calculated based on the remaining open numbers.
For this project, I wanted to capture the charm of the original game while adding a modern, interactive twist. The result? A sleek, responsive web app built with Svelte 5, styled with Tailwind CSS, and powered by TypeScript.
Vibe Coding with Gemini CLI
One of the most exciting aspects of this project was using the Gemini CLI for vibe coding. If you’re unfamiliar with the term, vibe coding is a collaborative, conversational approach to development. With Gemini CLI, I could describe my ideas, ask for suggestions, and even request code snippets—all in real-time.
I started by creating the Svelte project using the command line as Gemini CLI seems to currently struggle with project setup. From there, I engaged in a back-and-forth dialogue with the AI, discussing features, game logic, and design elements. This interaction felt more like brainstorming with a fellow developer than traditional coding.
The UI of the game was designed without much input from me besides it being dark themed, responsive, and to have a modal and a confetti effect on a win condition. Gemini CLI handled the heavy lifting, allowing me to focus on the creative aspects of the game.
However, there were many challenges. Sometimes the AI would suggest changes that were completely wrong and introduced errors into the codebase. Either I would reject the suggestions or manually fix the issues it created myself.
As I continued to refine the game, I found myself relying on Gemini CLI less for coding. As the project scope grew, Gemini CLI struggled to handle the complexity of the codebase. It became frustrating to first discuss the changes I wanted to make, then wait for the AI to generate the code, and finally fix the errors it introduced or implement it myself.
Overall the experience was enlightening. It showcased the potential of AI in software development, but also highlighted the importance of human oversight and creativity in the coding process. I hope to see future iterations of Gemini CLI that can handle more complex projects without introducing errors and to use it more effectively in future projects.
Conclusion
This project was a perfect blend of nostalgia and innovation. Recreating "Shut The Box" not only deepened my understanding of Svelte and Tailwind CSS but also introduced me to the future of coding with Gemini CLI. Vibe coding is more than just a tool—it’s a mindset, and I can’t wait to see where it takes me next.