DocForge is a brutalist document automation studio that allows you to visually map spreadsheet data onto PDF templates and bulk-generate filled PDFs directly in your browser.
It feels like a developer IDE for document automation: fast, sharp, tool-like, highly editable, and completely offline-friendly.
- Brutalist Design: A stark, high-contrast, developer-focused aesthetic using solid borders and bold typography (Space Grotesk, Space Mono, Inter).
- Offline First: All files, variables, and mappings are stored securely in your browser using IndexedDB. No server required.
- Visual PDF Canvas: Upload any PDF and click directly on the canvas to place your variables precisely where they need to print.
- Rich Formatting: Customize the font size, font family (Helvetica, Times Roman, Courier), bold, and italic styles for every placed variable.
- Built-in Spreadsheet Editor: Upload Excel (
.xlsx) or CSV files and edit them directly within the app using a full-featured grid. - Bulk PDF Generation: Link your variables to your spreadsheet columns, select the rows you want, and instantly download a
.zipfile of all generated PDFs.
- Framework: Next.js (App Router)
- Styling: TailwindCSS
- State Management: Zustand +
idb-keyval(IndexedDB) - Icons: Lucide-React
- PDF Rendering & Generation:
pdfjs-dist(Live Preview) &pdf-lib(PDF Generation) - Spreadsheet Processing:
xlsx&@silevis/reactgrid - ZIP Creation:
jszip
-
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open http://localhost:3000 with your browser to see the app.
- Upload Files: Drag and drop a PDF template and an Excel/CSV file into the app, or use the buttons in the sidebar.
- Create Variables: Open the PDF. In the left sidebar under
<> Variables, type a name (likeCustomer Name) and hit ADD. - Place on PDF: Click the variable in the sidebar to make it active. Then, click anywhere on the PDF Canvas to place it exactly where you want the data to print. You can click on the placed variable to change its font settings.
- Link Data: In the bottom Fill Panel, select your uploaded Excel/CSV file from the dropdown. Map your variables to the correct spreadsheet columns.
- Generate: Check the boxes next to the spreadsheet rows you want to generate. Click ▶ GENERATE SELECTED to download a ZIP containing all your filled PDFs.