Projects
A collection of things I've built — solo, from scratch, and shipped to production. Build times are real.
Featured
Sieve
LatestSort anything, automatically.
Free, open source cross-platform app that uses AI to classify and organise image collections.
FlutterDartNext.jsCloudflare PagesFactorSphere
LiveBringing transparency to academic journal rankings through community-driven data.
Open-source academic journal ranking platform with transparent methodology.
Next.jsTypeScriptCloudflare Workersshadcn/uiAiPDF Summarizer
LiveUpload any PDF. Get a summary. Works even on scanned documents.
Upload any PDF — text or scanned — and get an AI-generated summary.
ReactCloudflare Workers AIPDF.jsOCR.spaceOther Projects
ScanWeb
LiveA web-based vulnerability scanner with AI-assisted reporting.
Next.jsTypeScriptSupabaseshadcn/uiSecureNotes
LiveA secure, Markdown-first note-taking app with cloud storage.
Next.jsTypeScriptSupabaseshadcn/uiDreambit
LiveA full-stack e-commerce site built from scratch.
HTML/CSS/JSNode.jsExpressMySQLMusik
A Flutter music player. My first mobile app.
FlutterDartjust_audioSQLiteShtick
Scripts that make running local AI models less annoying.
ShellPythonBashlabi-old
DeprecatedThe experiment that became Sieve.
Next.jsTypeScriptCloudflare R2SupabaseHow long things take
| Project | What it is | Built in |
|---|---|---|
| FactorSphere | Academic journal ranking platform | ~1 month |
| Dreambit | Full-stack e-commerce from scratch | 3 weeks |
| Sieve | Cross-platform AI image sorter + lander + docs | 3 days |
| labi-old | Data collection platform (R2 + auth) | 1 week |
| Musik | First mobile app (Flutter) | 1 week |
| ScanWeb | Vulnerability scanner + auth + AI reports | 1 day |
| SecureNotes | Notes app with auth, storage, Markdown | 1 day |
| AiPDF Summarizer | PDF + OCR + edge AI summariser | 1 day |
| Shtick | Local AI model scripts | 1 day |
