Indie developer building small, focused tools β solo, end to end, from architecture to deploy.
Most of my work lives in private repositories (commercial products, client work), so this profile is where I show what I've built and how.
ScanEdit Pro β Browser-based and desktop (Tauri) OCR editor for scanned PDFs and images. Fully client-side OCR in English, Italian, Spanish and French, and editing that rebuilds the page background around every correction; documents never leave the device. The Mac app exports PDFs through a native Rust engine with mozjpeg compression. Scored 99/100 on Legit.Show's production-readiness benchmark: #1 in its category, top 1% of 13,854 services measured.
Tauri Rust fabric.js pdf.js Tesseract.js Cloudflare Pages
Ceramic artist portfolio β Designed and built end to end for a working artist: content-driven rendering, image-heavy layout, deploy pipeline via GitHub β Cloudflare Pages.
Crime Investigator AI β In progress β the most ambitious project I've taken on. A data archive aggregating solved and unsolved crime cases across Italy, with real-time analysis that flags missing evidence in an active investigation and proposes possible leads using mathematical and predictive trajectory modeling. Private repo, in active development.
TypeScript
Creative Writer Agent β AI agent supporting creative writers, built with Streamlit and deployed on Koyeb. Open source.
Python Streamlit LLM APIs
Medium Justified Text β Firefox extension that justifies text on Medium articles for better readability. Open source.
CSS Firefox extension
- Solo across several concurrent projects β I own the full stack, from UI to deploy
- Ship on GitHub β Cloudflare Pages, with an eye on production-readiness (security headers, CSP, privacy-first analytics, accessibility) not just "it works"
- Client-side-first where it matters: ScanEdit Pro processes everything locally, by design
Portfolio and contact via scaneditpro.com
A few projects are open source (linked above); most are private commercial or client work, but my contribution graph reflects them.