PokeBin

JUL-06-2025

@000

GitHub Discord Twitter


image

PokeBin is a passion project of mine that I first started back in March of 2024. Originally, I just wanted to make some open-source contributions to the "de-facto" tool for sharing teams, PokePaste. However, after having a look at the codebase, the project seemed unmaintained, and as an exercise I wanted to make my own version. It is somewhat opinionated, but it has a lot more feature than PokePaste.

Some of the additional features include:

Technical Details

The first version of PokeBin was written in Rust with a Svelte frontend. At the time, Rust was my current programming fascination and I wanted to build a performant web app with the language. Eventually, I moved from Svelte to SolidJS to get some better performance out of the frontend.

Over time, the Rust codebase became a bit unwieldy and compile times were becomming frustrating. At this point I had become really interested in the Zig programming language, and I decided to (for better or worse) do a complete rewrite of the backend in Zig. This allowed me to experiment with a Redis DB instead of PostgreSQL (which I later swapped back), as well as work with WASM for the first time. I think on the whole, the Zig codebase is much more readable and maintainable than the Rust code and I'm happy with the result!

Planned features

While there is no concrete roadmap for PokeBin, I do plan to support new generations of Pokemon in the future. Feature requests are always welcome! Feel free to post on GitHub or send me a DM on Twitter.