Scan a barcode, get a searchable library.
ShilosSilo is an installable progressive web app for cataloguing personal media — books, CDs, board games. Scan a barcode with your phone's camera, and the app auto-populates a searchable home library with cover art, metadata, and offline access. It runs entirely on the Cloudflare free tier — $0 per month, forever.
illustrative product mockup · scanner + library views
A $0 operating budget forces good architecture.
Most consumer PWAs leak money the moment they leave the prototype. By committing to the Cloudflare free tier for the lifetime of the product — D1 for relational data, R2 for cover-art blobs, Workers for the API, Pages for the SvelteKit build — every architectural decision was forced through a tight efficiency filter.
The result: offline-first sync, browser-side image compression before R2 upload, no client-side database calls, no paid metadata API tiers, and a PWA that's snappy on a five-year-old phone.
The rules that keep it free.
No paid API tiers
All metadata lookups (covers, ISBNs, board-game data) use free public APIs with graceful degradation when rate-limited.
Compress before storing
Every uploaded image passes through browser-image-compression before reaching R2. No 4 MB PNGs from a phone camera.
No client-side DB calls
All D1 mutations flow through SvelteKit form actions or `+server.ts` routes. Drizzle ORM enforces the type boundary.
Offline-first by default
localForage caches the library locally; the service worker keeps the app installable and usable without network.
Edge-native by design.
- SvelteKit
- TypeScript
- Tailwind
- shadcn-svelte UI
- PWA manifest
- Cloudflare Pages
- Cloudflare Workers
- D1 (edge SQLite)
- R2 object store
- Drizzle ORM
- html5-qrcode
- browser-image-compression
- localForage
- Service Worker
- Camera API
Have a consumer inventory idea that needs to stay free?
The ShilosSilo framework is the basis for any barcode-driven, edge-hosted, offline-first PWA. Bring the vertical, we'll bring the plumbing.
Start the conversation →