Building tools to understand how they work. If they're useful to others, even better.
Lilycat and Zimba started as side projects to figure out how things work. Built them out of curiosity, kept using them because they're useful.
Lilycat is minimal CSS that gets out of the way. Zimba is TypeScript utilities for common UI patterns - draggable elements, mouse followers, dropdowns. Nothing fancy, just tools that work.
Check them out on JSR:
My personal site and playground for testing Lilycat and Zimba in real use. Go serves the static files—TypeScript and CSS do the work on the frontend.
# Clone the repo
git clone https://github.com/LUHMLLO/luhmllo.git
cd luhmllo
# Build the frontend
cd kit
deno run build.ts # or: node build.ts / bun build.ts
cd ..
# Run the Go server
go run main.goThe server will start at http://localhost:8080.
- Server: Go (fast HTTP server for static files)
- Build: TypeScript build scripts in
/kit - Frontend: TypeScript + Lilycat CSS + Zimba utilities
- Runtime: Deno/Node/Bun for builds, Go for serving
Less is more. Vanilla solutions over dependencies. Simple code over clever code. If a file hits 500+ lines, it's time to refactor.
Go keeps the server simple and fast. TypeScript and CSS handle everything else without heavy frameworks.
Found a bug? Have an idea? Open an issue. PRs welcome if they align with the keep-it-simple philosophy.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
This project is licensed under the MIT License - see the LICENSE file for details.