Tin Rabzelj
banner
rabzelj.com
Tin Rabzelj
@rabzelj.com
Building cool things.

Rust, TS/React, AI 🚀

🧠 https://rabzelj.com/
🧑‍💻 https://github.com/tinrab
X/Twitter: https://x.com/tinrab
File uploading to S3 (Minio locally). Uploads can be resumed on browser refresh. TanStack Start, AWS sdk, and some vibe-coded UIs.
#reactjs #webdev
July 6, 2025 at 3:03 AM
I'm building a TanStack Start SaaS boilerplate for myself. It includes better-auth, Stripe integration, shadcn and other components with a Storybook kitchen-sink, emails (react-email), local Docker dev environment, and other useful stuff.
#reactjs #typescript
June 23, 2025 at 1:57 AM
A small CLI tool to download and transcribe videos using yt-dlp and OpenAI's Whisper. It is runnable with `uvx`.
GitHub: github.com/tinrab/yt-tr....

I have a bunch of scrapers lying around and have thought about combining them into something useful. Maybe I'll get to that at some point.
June 17, 2025 at 4:38 PM
My mood.
June 8, 2025 at 9:21 AM
I've built a tool that lets you talk with databases using AI.
It works as a CLI tool or a MCP server on top of MySQL or Postgres. The OpenRouter & MCP integration is a bit unreliable, so it might not work as expected with some models.

GitHub: github.com/tinrab/airy
#rustlang
June 7, 2025 at 11:59 AM
I've been writing a small CLI AI agent thing in Rust, and I like how you can define tools via macros. I am tempted to write a crate that combines this with OpenRouter and only leaves you to define the tools.
#rustlang
June 4, 2025 at 10:50 AM
If you want to write zod-validated handlebars helpers in TypeScript, I have a package for that: github.com/tinrab/temel.... It works for both params and hashes, and it also includes some common helpers.
June 1, 2025 at 4:49 PM
Saving a PyTorch model to ONNX and running it. I got the basics down. Currently, I'm only bothering with CPU tensor ops, coz I haven't decided on the best way to approach GPU yet.
April 22, 2025 at 3:49 AM
The first CUDA kernel launched from Rust. Though, the API is probably far from finalized.
#rustlang
April 12, 2025 at 4:01 PM
You can build a C++ project with Rust and take advantage of its ecosystem: crates, tests and criterion benchmarks...
This is an example of testing and benchmarking a CUDA kernel.
March 22, 2025 at 3:21 PM
For fun, I've written an SVM (SVC, Support Vector Classifier) from scratch in Rust to classify spam SMS messages. Pre-processing text is simply: lowercase, split_whitespace, remove punctuation, and build bag-of-words.
5-fold CV: 98%, DS: "ucirvine/sms_spam"
March 11, 2025 at 9:13 AM
March 11, 2025 at 12:34 AM
New blog post: Building a Real-Time Bluesky Trending Hashtag System With Arroyo, NATS, and Rust.
rabzelj.com/blog/buildin...
#rustlang
February 20, 2025 at 5:08 PM
I had never written assembly before. Recently I played with it in Rust and came across this error. How is this even a thing? The Rust compiler is still able to surprise me.
#rustlang
February 13, 2025 at 9:26 PM
Bootstrapped a simple workflow engine in TypeScript with o3-mini reasoning model. Fully typed, of course. Good to see it works decently enough.
February 7, 2025 at 9:58 PM
I love minimalistic web design.
This is my updated personal site. Built with #TanStack Start, #Tailwind, my MDX plugin library, and KaTeX.
January 7, 2025 at 1:20 AM
Type-safe and zod-validated handlebars helpers in #TypeScript with `@temelj/handlebars`.
github.com/flinect/teme...
January 2, 2025 at 4:25 PM
Here's a JavaScript parser written in 3 lines of Rust. #rustlang
December 31, 2024 at 5:12 PM
I've made a package for working with MDX (or just Markdown). It's part of my own common/standard TypeScript library. It works with server-side rendering, including RSCs.
Currently I have plugins for generating heading ids, syntax highlighting (with the awesome Shiki library), and a command line.
November 27, 2024 at 7:49 AM
If you're stressed, burned out, and need to loosen up, consider building your own operating system. #rustlang
October 25, 2024 at 2:47 PM
Here is some extra generated code. The "_FIELD_NAME" names are not yet provided by `prost`.
October 22, 2024 at 4:00 PM
I don't work with the `prost` generated types throughout my codebase. I keep these types in a separate crate and handle them only in "adapters," which sit between `tonic` services and internal handlers. I make my own "Parsed*" types, then parse "proto" ones into them. Here is what it looks like.
October 22, 2024 at 4:00 PM