Generate professional PDFs from your CRM data in one click.
Filldoc bridges the gap between your CRM (HubSpot, Pipedrive) and your documents. Upload DOCX templates, map variables to your CRM fields, and generate perfect contracts, invoices, and quotes instantly.
- 🔌 CRM Integration: Connect HubSpot (Pipedrive coming soon) to access your contacts, companies, and deals.
- 📄 DOCX Templates: Use standard Word documents as templates. No complex drag-and-drop editor to learn.
- 🎯 Smart Mapping: Automatically detects
{{variables}}in your templates and lets you map them to CRM fields. - 🚀 One-Click Generation: Generate high-fidelity PDFs that respect your template's layout, fonts, and styling.
- 🔒 Secure & Private: Self-hostable, open-source, and privacy-focused.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Database: PostgreSQL + Drizzle ORM
- Auth: Better Auth (with Organization plugin)
- Queue: BullMQ + Redis
- PDF Engine: Gotenberg + docx-templates
- Storage: S3-compatible (Cloudflare R2)
- UI: Tailwind CSS + shadcn/ui
- Node.js 24+
- Docker & Docker Compose
- A HubSpot Developer account (for OAuth)
- Cloudflare R2 bucket (or any S3 compatible storage)
- Clone the repository
git clone git@github.com:thomasorgeval/filldoc.git
cd filldoc- Setup environment variables
cp .env.example .envEdit .env with your configuration:
DATABASE_URL: PostgreSQL connection stringREDIS_URL: Redis connection stringHUBSPOT_CLIENT_ID&HUBSPOT_CLIENT_SECRET: Your HubSpot App credentialsR2_*: Cloudflare R2 credentials
- Start services (DB, Redis, Gotenberg)
docker compose up -d- Install dependencies
pnpm install- Initialize database
pnpm db:migrate- Start development server
pnpm devVisit http://localhost:3000 to start using Filldoc.
Filldoc is designed to be deployed using Docker.
docker build -t filldoc .See docker-compose.yml for a complete production setup example.
MIT License. See LICENSE for details.
Built with ❤️ by Thomas Orgeval. Powered by Gotenberg and docx-templates.