DocuFlow is a client-side document organizer and PDF compiler. It operates inside the browser, leveraging WebAssembly-based document compilation (pdf-lib) and rendering (react-pdf) to ensure speed, privacy, and full offline functionality.
- Shuffle & Reorganize: Drag-and-drop sortable page grid powered by
@dnd-kit/sortablewith support for group/bulk selection drags. - Rotate & Duplicate: Precision rotation (in 90° intervals) and page duplicate logic.
- Insert Blank Page Templates: Generate standard blank A4 pages, Lined paper, Grid paper, or Cornell note guides programmatically.
- Automatic Image Conversion: Converts standard image uploads (
.jpg,.jpeg,.png) to PDF wraps on-the-fly in browser memory. - Interactive Compilation Options:
- Watermarking: Overlay semi-transparent text diagonally across compiled document pages.
- Page Numbering: Render Page numbers ("Page X of Y") in margins (bottom center, bottom right, top right).
- Form Flattening: Lock fillable interactive form fields to static elements on merge.
- Security & Password Protection: Client-side encryption of export bytes using
@pdfsmaller/pdf-encrypt-lite.
- Session Workspace Persistence: Continuous, debounced auto-saving of loaded files and grid layouts to IndexedDB, recovering progress automatically on crashes or page refresh.
- Portable Projects: Export/Import portable
.docuflowworkspace save files to transfer your active project across machines.
- Framework: React 19 + Vite 8
- Language: TypeScript
- Styling: Premium Custom Vanilla CSS Variables (
backdrop-filter, 3D stacked paper shadows, smooth active scaling transitions) - PDF Core Engine:
pdf-lib+@pdfsmaller/pdf-encrypt-lite - PDF Viewer Engine:
react-pdf(based on PDF.js worker API) - Drag & Drop Context:
@dnd-kit/core+@dnd-kit/sortable
- Install dependencies:
npm install
- Start development server:
The application will run on http://localhost:3000.
npm run dev
- Compile production bundle:
Outputs HTML, CSS, and JS assets in the
npm run build
dist/directory.
- src/App.tsx: Handles central page and file states, drag-and-drop contexts, keyboard shortcut bindings, and IndexedDB auto-save hooks.
- src/index.css: Custom design system definitions, glassmorphism templates, animations, and typography tokens.
- src/services/pdfService.ts: Operations for template generation, image wrapping, watermarks, numbering overlays, flattening, and encryption.
- src/services/storageService.ts: Serializes loaded File buffers and layout metadata directly into browser IndexedDB.
- src/services/projectService.ts: Exports/Imports workspace states as portable
.docuflowfiles. - src/components/: Renders UI frames (Sidebar, Toolbar, Page grids, Custom modals, switches, and buttons).