βββ β ββ ββ βββ ββββ βββββ βββββββ ββββββ βββ ββ
ββββ ββ ββββ βββββ βββββββ βββ ββββ βββββ βββββ ββ
ββββ βββ ββββββββββ βββ ββββ βββ ββββββ βββ βββ
ββββ βββ βββββββ ββ βββ βββ ββββ ββββ β βββ βββ
ββββββββββββββββ ββββ ββββββ ββββ βββ βββββββ βββββββ ββββ
β βββ βββββ β β β ββ βββ ββ β β βββ βββ β ββ ββ β β ββ
β β β βββββ β β β ββ βββ β β ββ β β β β β β β ββ
β β βββ β β β ββ β β β β β β β β ββ
β β β β β β β β β β β
β β β
Crustacean Station
2025-11-01
Crustacean Station is a small collection of developer tools built to explore Leptos, a reactive Rust framework targeting WASM. I wanted a weekend-sized project that let me try out Leptos in a practical way; and along the journey I even contributed a documentation fix to the project.
Technologies:
- Leptos
- Tailwind CSS
It features:
- Dark/light mode switch: Uses Tailwindβs color variables and
localStorageto persist the userβs preference. - JSON formatter: Formats and validates a JSON blob using
serde. - UUID generator: Generates
nUUID v4 values, with an option to control casing. - Copy-to-clipboard component: A reusable button for copying outputs.
What I learned:
- Leptos is delightful. It feels familiar to React (which I use often) but brings some Rust-specific advantages.
- Pulling in
serdeanduuidsignificantly increased the WASM bundle size.- I tried bundle splitting, but GitHub Pages didnβt play well with the setup.
- In the future, Iβd likely roll my own lightweight implementations instead of relying on larger crates for a small tool.
- SPA routing on GitHub Pages requires a
404.htmlredirecting toindex.html. After discovering this, I contributed a pull request to improve the official Leptos documentation.
Links:
The code is available on GitHub gh