for fun->
A Tauri desktop database client I am building around Rust, React, and TypeScript. The main repo keeps the app, shared crates, extension SDK work, sample database tooling, and release automation together.
- Desktop UX stays in one repo: query editor, result grid, BI panels, ERD layout, and connection flows.
- Generated Rust-to-TypeScript bindings keep the Tauri boundary checked instead of hand-waved.
- The docs site is a separate mdBook so architecture, privacy, support, and database coverage notes are easy to browse.
RustTauriReactTypeScriptViteSQL
for fun->
A little social-discovery prototype I built to play with multilingual embeddings and vector search. It tries to surface both nearby posts and 'bridge' posts, so the feed is not just a wall of near-duplicates.
- Postgres holds the real data; Qdrant is a rebuildable search index.
- ML inference lives in a small Python service, away from the API and schema.
- Bridge scoring + MMR keeps the timeline a bit more varied.
ReactPostgreSQLQdrantPythonRedis
for fun->
A small Outlook add-in that double-checks recipients, attachments, and the subject and body before you hit send — so you do not fire off the wrong email to the wrong person.
- Core review rules stay independent from Office, the DOM, and the clock.
- Bilingual UI, tests, and tagged releases.
- Handles scheduled-send quirks out loud instead of hiding them.
TypeScriptOffice.jsBunViteVitest
for fun->
A Chrome extension prototype that overlays YouTube live chat niconico-style (danmaku). It scores each comment locally in JavaScript, so useful messages drift by slowly while emoji floods and spam zip past.
- Local scoring only — no remote code, no WASM.
- Extracts chat from every frame and renders over the player on a canvas.
- Just a fun experiment in keeping the good comments readable.
JavaScriptChrome MV3Canvasdanmaku
for fun->
A fast desktop text editor for very large files. It pairs a Rust core with a local web UI and optional native window so huge text files can open, search, and edit without pretending they are small.
- Memory-mapped and sparsely indexed internals keep large-file scans practical.
- Runs as a CLI/local web editor, with a native desktop window available for app-style use.
- Release builds target macOS, Windows, and Linux, with docs and install scripts alongside the source.
RustAxumTypeScriptWryWebViewCLI
for fun->
An opinionated formatter and syntax toolchain for Snowflake SQL and Databricks SQL. It is built in Rust and aims for gofmt-style low-config formatting without changing meaningful SQL tokens or comments.
- The formatter is designed to be idempotent and lossless for meaningful tokens and comments.
- Ships as a CLI, language-server pieces, Tree-sitter grammar, and editor/browser extension packages.
- Includes a Snowsight Chrome extension path powered by the formatter compiled to WebAssembly.
RustSQLrowanTree-sitterWASMLSP
for fun->
A single-screen browser game written entirely in Elm: fix every defect in a deliberately user-hostile form and catch the fleeing "Accept" button within 60 seconds — a playable parody of dark-pattern forms.
ElmNixHTMLCSS