At your desk for New Years? Crack open a beer and a terminal. Run this app, and wait for the fireworks!
Pythonistas, run the following (requires uv):
uvx ny2026@latest
JS fans, run the following:
npx @manzt/uv tool run ny2026
You can also press SPACE if you are impatient for the fireworks to start...
This project was built with Toad and Claude Code.
It was an excercise in "vibe coding". Something I hadn't done a great deal of.
Could I have done this "by hand"? Yeah, probably. I am an ex game developer and I work with terminals. Claude Code implemented what I asked fairly consistantly, but I did have to be very precise to get good results. The prompts were quite granular—I asked for things like "make a partical effect where each particle has a Z dimension and a moves outwords in a random direction". It wasn't as simple as "make a cool fireworks effect in the terminal".
Claude did create bugs that it couldn't fix, which I had to use my fleshy mammalian brain to resolve. There was an issue where the braille lines would wrap and break the visuals which it just couldn't grasp. It also really struggled with the audio. There were many rounds of "I see the problem! Let me fix it." before it got a solution.
There was also a last minute bug reported by another mamallian brain. It was using UTC for the countdown, which would have made it wrong for anyhone outside the UK.
Of course I should have checked, but I kind of feel that a human would be less likely to make that mistake. If you actually had to type UTC in the code, that should have triggered the realization that it would break for other timezones.
There was another implementation issue that I noticed, as a mammal familiar with these things. The timer was rounding down. This meant that the count-down would go from "00:00:01" to "00:00:00" and stay there for a second before displaying "2026", rather than straight from "00:00:01" to "2026". The fix was to round up. So that for the last second before 2026 it displays "00:00:01".
Overall, the code is not bad. Not good, but not terrible. There are some lines which I don't think are even neccesary. Reminants of failed experiments perhaps. I suspect Claude could easily tidy those up, but you do need to know to ask.
Considering there isn't a large corpus of firework simulations with braille characters in the terminal (I assume), I think Claude did OK here.
Anyhow. These videos represent a snapshot of the process.