Projects

A collection of things I've built over the years.
sqlcx
sqlcxSQL-first. Every language. Zero runtime. Write SQL once, generate type-safe code for TypeScript, Python, Go, and Rust.

sqlcx

sqlcx Image

Description

sqlcx reads your SQL schema and annotated queries and generates fully typed client code for TypeScript, Python, Go, and Rust — with zero runtime shipped to production. It takes the sqlc model (SQL-first, no ORM, no engine) and extends it across every language I reach for.

Why I built it

Prisma and Drizzle ship sizable runtimes to the client. sqlc solves the zero-runtime problem beautifully, but only for Go. I wanted the same approach — SQL as the source of truth, generated types as the output — available for any stack I build in. sqlcx ships 10 drivers across TypeScript, Python, Go, and Rust with validation integrations for TypeBox, Zod, Pydantic, and Serde.

Highlights

  • 0 KB runtime — the generated code depends only on your driver of choice
  • Four target languages from one SQL source (TypeScript, Python, Go, Rust)
  • 10 drivers out of the box with opt-in validation via TypeBox, Zod, Pydantic, and Serde
  • Published on npm and crates.io as sqlcx-orm

Technologies Used

RustTypeScriptPythonGoSQLCLICode Generation
Vidful
VidfulA fully native video editor built from the ground up with a Rust core, Svelte UI, and WGSL shaders for GPU-accelerated rendering.

Vidful

Description

Vidful is a desktop video editor I'm building from scratch with a focus on being completely native — no Electron, no web rendering layer. The core engine is written in Rust for performance and memory safety, the UI uses Svelte for a lightweight reactive interface, and video frame processing runs on the GPU via WGSL shaders.

Highlights

  • Native Rust core engine for video decoding and timeline operations
  • GPU-accelerated rendering pipeline using WGSL compute and fragment shaders
  • Svelte-based reactive UI with TypeScript for the editor surface
  • Go-based supporting services for parts of the pipeline
  • AI agent for a first-pass cut from raw clips

Technologies Used

RustSvelteGoWGSLTypeScriptVideo EditingGPU
Chiki Puzzle
Chiki PuzzleSolo puzzle game for SoloDevelopment Jam #6. Finished 4th overall.

Chiki Puzzle

Chiki Puzzle Image

Description

Solo entry for SoloDevelopment Jam #6. Built one weekend at night.

Placement

  • 4th overall, score 4.034
  • #2 Creativity, 4.227
  • #4 Polish, 3.955
  • #4 Theme Interpretation, 3.864
  • #4 Gameplay, 4.091

Technologies Used

Game DevSoloPuzzleitch.io
Particle System
Particle SystemTo learn Rust, I cooked in Rust

Particle System

Description

Sometimes the best way to learn isn't through tutorials. It's by jumping into something you're passionate about and figuring it out as you go.

I didn't have the motivation to learn Rust the traditional way. Didn't know structs, ownership rules, or any of the "proper" stuff. So I did what I always do: learn by doing. I picked a project I was genuinely excited about. A simple particle system, and started building.

Coming from a game development background, particle systems were something I'd used countless times. I knew how they should behave, how they should look. Building one from scratch in Rust meant I could focus on learning the language while working on something familiar.

And it worked. As I built it, Rust concepts clicked— ownership, borrowing, lifetimes—all made sense in the context of actual code. Plus, it was a great way to refresh my game dev knowledge while picking up a new language.

The particle system emits and animates particles just like you'd see in a game engine. Proof that passion projects are the best teachers.

Technologies Used

Rust
ArtBox
ArtBoxA showcase of curated artwork

ArtBox

ArtBox Image

Description

You know those moments when you're staring at a blank canvas (or code editor) and your creative brain just... won't? That's what ArtBox is for.

It's a curated gallery of stunning artwork I handpicked from Pixabay. It's full of vibrant colors, mesmerizing compositions, the kind of visual candy that makes you go "WOW." When you're not in the mood to create but need that spark of inspiration, this is your go-to.

This was one of my first real web projects diving into React and JavaScript. I wanted to learn by building something beautiful, so I went all-in on animations with Framer Motion powered smooth transitions, elegant reveals, throughout the whole application. Every piece flows seamlessly as you browse.

Perfect for color palette inspiration, composition ideas, or just taking a mental breather with something visually stunning. Sometimes you don't need to be productive, you just need to feed your eyes.

Deployed on Cloudflare Pages because speed matters when beauty is the product.

Technologies Used

ReactJavaScriptCSS3Framer MotionCloudflare Pages
Learnysvia
LearnysviaBridging the gap between teaching and understanding

Learnysvia

Learnysvia Image

Description

Ever been in a class where the teacher asks "Did everyone get it?" and you just hear silence? That's the problem Learnysvia solves.

It's a real-time classroom polling tool that lets teachers check comprehension instantly, no more waiting until test day to discover gaps. Teachers create rooms in seconds, students join with a single link (no accounts needed!), and results stream in live.

What makes this special is the complete anonymity for students, they can answer honestly without fear of judgment. I built this because I saw firsthand how traditional teaching misses real-time feedback.

The tech stack? React + TypeScript for the frontend, Elysia.js backend with Bun runtime for blazing speed, Turso (distributed SQLite) for data, WebSockets for real-time magic, and DaisyUI for that clean interface.

The whole setup takes under 2 minutes—teachers can focus on teaching, not tech. Built for teachers, by someone who understands the classroom struggle.

Technologies Used

ReactTypeScriptTailwind CSSDaisy UIElysiaBunTursoWebSocketsReal-time pollingEducation

Links