Convert documents into structured JSON using the AI provider of your choice.
It runs entirely in your browser. There is no backend: your files are parsed locally in the tab, and the extracted text goes straight from your browser to the AI provider using your own API key. Nothing is uploaded to makejson.online, because makejson.online has nowhere to upload it to.
- Bring your own key — OpenAI, Anthropic, Google Gemini, or OpenRouter
- OpenAI
gpt-4o-mini - Anthropic
claude-3-5-haiku-latest - Google
gemini-2.0-flash - OpenRouter (pick a model, e.g.
openai/gpt-4o-minioranthropic/claude-sonnet-4)
- OpenAI
- Wide file format support
- Documents: PDF, DOCX, TXT, CSV, XLSX
- Code: JS/TS, HTML, CSS, PHP, SQL, Python, JSON, XML, MD
- Archives: ZIP (every readable file inside is processed)
- Local processing
- PDF text via
pdf.js, DOCX viamammoth, spreadsheets viaSheetJS, archives viaJSZip - Large documents are chunked before being sent to the model
- macOS/editor cruft (
__MACOSX,.DS_Store) is filtered out of archives
- PDF text via
- Your API key lives in
sessionStorageand is cleared when you close the tab. - File contents never touch a server owned by this project.
- The only outbound request is the one your browser makes to your chosen AI provider.
That said: the extracted text is sent to that provider under your own account, so their terms and data policies apply. Don't feed it anything you wouldn't paste into their console yourself.
npm install
npm run dev # http://localhost:5173Build a production bundle:
npm run build # static files land in dist/
npm run previewdist/ is a plain static site — host it anywhere that serves files.
The build uses a relative base path and hash-based routing, so the same dist/
works whether it is served from a domain root or a subdirectory, with no server
rewrite rules required.
React 18, TypeScript, Vite, Tailwind CSS, shadcn/ui, wouter.
Version 2 removed the Express server, the Postgres/Drizzle setup and the SMTP
contact form that the original Replit build depended on. None of them were needed
for the tool to do its job, and all of them were things that could break. Design
tokens that used to be generated from theme.json by a Replit-only Vite plugin are
now checked into client/src/index.css.
Issues and pull requests welcome at github.com/kr3t3n/makejson.
MIT — see LICENSE.
Like makejson.online? Buy me a coffee ☕
Created by Georgi · part of aithings.online
