This is a submission for the "Hacktoberfest Weekend Challenge: Build for a Friend" (https://dev.to/challenges/hacktoberfest-weekend-2026-10-01)
What I Built
BrainShot is a simple document digitization app built around a problem that almost everyone has:
You take a photo of an important receipt, invoice, warranty, letter, or form — and then it disappears into your camera roll.
BrainShot turns that photo into a clean, structured digital copy.
The workflow is:
Snap → Extract → Organize → Save → Find later
You can:
- 📸 Take a document photo or upload one
- 🧠 Detect the document type
- ✨ Extract important information into structured fields
- 📄 Create a clean digital representation
- 🖼️ Keep the original document image
- 🔎 Search saved documents
- 📥 Export a document as PDF
- 🗑️ Delete documents when they're no longer needed
The goal wasn't to build another complicated enterprise document-management platform.
I wanted to build something a friend could actually open and immediately understand.
Demo
Live Demo:
https://brainshot-9bpr02hii-seedfun-s-projects.vercel.app/
The app is designed mobile-first, so the core experience works naturally with a phone camera.
Code
GitHub:
https://github.com/jiren12222/brainshot
BrainShot is built with:
- React
- Vite
- JavaScript
- Lucide React
- jsPDF
- Browser LocalStorage
- Mobile camera/upload APIs
How I Built It
BrainShot is designed around a modular AI extraction layer.
The intended architecture is for the document image to be passed to an open-source vision-language model, which can understand the document and return structured information.
For this hackathon submission, I created an AI Simulation Mode so the complete document-digitization experience could be demonstrated without requiring an external AI provider or sending personal documents to a third-party service.
This keeps the prototype simple while making the AI layer replaceable.
The extraction layer can later be connected to an open-weight vision-language model running locally or through a self-hosted inference server without rebuilding the BrainShot interface.
The important architecture is:
Document image → AI extraction layer → structured document → local library
That separation means the UI doesn't need to be tied to one model or provider.
Privacy by Design
Documents can contain sensitive information.
That's why the current prototype keeps document data in the browser using LocalStorage and doesn't require an account.
There is no:
- account system
- cloud document database
- payment system
- complicated permissions
- external document storage
The current simulation mode also means the uploaded document doesn't need to leave the device for the demo extraction flow.
The long-term goal is to make the AI layer local-first, allowing users to run an open-source model themselves.
Why Does Open Innovation Matter?
Document understanding shouldn't have to depend on a single closed AI provider.
An open-source approach gives BrainShot the possibility to:
- run models locally
- self-host inference
- choose between different open-weight models
- reduce dependence on a single provider
- keep sensitive documents under the user's control
- experiment with fine-tuned document models
- change the AI model without rebuilding the application
For a document application, that flexibility matters because the documents themselves can contain private information.
Open models make it possible to move toward a future where the AI that understands your documents can run on infrastructure you control.
Why I Built It
A camera roll is great for storing memories.
It isn't great for finding:
«"That invoice I photographed three months ago."»
BrainShot is a small attempt to solve that gap.
Instead of keeping important documents as random images, BrainShot turns them into structured information that can actually be searched and used.
The idea is intentionally simple:
Make the documents already sitting on your phone useful again.
My Agent Session
Optional — omitted for this submission.
Prize Categories
- DEV Community Hacktoberfest Weekend Challenge: Build for a Friend
What's Next
The next version of BrainShot would replace the simulation layer with a real open-source vision-language model.
That would enable more advanced extraction such as:
- better OCR
- tables and line items
- handwriting recognition
- document relationships
- smarter document classification
- local/private inference
- model selection depending on document type
But the core idea would stay the same:
Snap it. Digitize it. Find it later.
Thanks for checking out BrainShot!
Top comments (1)
Separating the extraction layer from the library makes the simulation boundary easier to explain. I'd carry that distinction into each saved document and exported PDF too: "sample fields, not extracted from this image" should survive Save and Find later, rather than only appear during upload. A useful fixture is two visibly different receipts producing simulated fields, followed by a reload and export. Can someone tell which values came from a real extraction, a simulation or their own correction without remembering the original session?