I'm a software developer with ~8 years of experience.
me and lunaI'm a core contributor to htmx.
htmx 4 landing pageI brought the new website, the new <hx-partial> tag, and better real-time (WS/SSE) integration.
hyper (try it out)
I built a custom Python + HTML file format, powered by Rust.
Hyper ExampleIt enables server-side type-safe components with a modern DX, and includes IDE tooling.
I've worked on ML/LLM tools for a drug discovery team in New Mexico, USA, and co-authored a paper with Prof. Tudor Oprea.
imageGnomeSys (try it out)
I built an LLM platform to augment researchers in drug hunting.
GnomeSys Landing Page GnomeSys Knowledge GraphConnects LLMs to six biomedical databases with a cross-session knowledge graph.
intreabalegea.ro (try it out)
I'm building an open-source public dataset of Romanian laws, and an LLM platform that uses it as a foundation.
image imageI do this because Romanian law is notoriously complex, and publicly available data is unstructured & noisy.
It is freely available for Romanian citizens.
WASM Fantasia (try it out / source code)
I'm working on a multiplayer roguelite game running in the browser (using WASM).
wasm-fantasiaIt uses SpacetimeDB for the (authoritative) server-side & Bevy for the client-side.
It's currently an early prototype.
Hyperspace (try it out / source code)
I built another multiplayer game (?) as an experiment trying to find the limits of real-time hypermedia (using htmx π).
hyperspaceIt uses a patched version of SpacetimeDB that enables streaming HTML directly from the database.
Every user action is synced to the DB & streamed to connected users. The entire "stack" is SpacetimeDB + a .jinja2 template.
It might feel laggy until I add client-side prediction.
Roast Roulette (try it out / source code)
I also built YET ANOTHER multiplayer party game (using htmx π) where you can upload photos and get roasted by an LLM.
Roast Roulette landing page Roast Roulette Jokedrefs (try it out)
I also built a small uvx tool to cross-reference check Python docstrings
When read out loud, this sounds nerdier than I had imagined...
I just wanted to be able to put [Class](path.to.Class) in a Python docstring and know it won't drift out of sync when I rename Class.
I love wasting time on my homelab. I keep my own cloud and self-host most of my projects.
homelabIt saved me money, and made me both love & hate NixOS.
I will be giving a talk at Big Sky Dev Con 2026 called Real-Time Hypermedia (the htmx way).
Big Sky Dev Con 2026Stay tuned π
I presented (& played) Roast Roulette with the audience at DjangoCon 2025.
DjangoCon 2025My Pi died, so I had 70 people connect directly to my MacBook (lol).
I presented a workshop on connecting LLMs to web apps at DjangoCon 2024.
DjangoCon 2024 WorkshopCheck it out, if you're interested.
- Repository: github.com/scriptogre/functional-chatbots
- Video: YouTube
I presented a brief lightning talk about prototyping with ChatGPT & Streamlit at PyCON SK 2024.
PyCON SK 2024 LightningI'm a christian, a husband, and (soon) a father.
I'm also Luna's father πΆ.
carson-tweet board-of-directorsI'm passionate about what I do, and I put my heart into it.
This is where I spend most of my hours:
Workstationπ§ contact@christiantanul.com
Feel free to reach out.