Docify redefines how you interact with documents. Instead of passively reading or searching for keywords, Docify allows you to upload a PDF, select an AI voice persona, and engage in a live, real-time voice conversation with your document. It's like having the author sitting right next to you, ready to answer questions, summarize chapters, and explain complex concepts in plain language.
Whether you're a student digesting dense academic papers, a professional reviewing long contracts, or simply someone looking to learn faster, Docify bridges the gap between static text and interactive knowledge.
- Conversational AI Interface: Talk to your documents using natural speech.
- Intelligent Segmentation: Automatically parses and segments long PDFs to provide accurate, context-aware answers.
- Customizable Voices: Choose from a curated selection of premium ElevenLabs voice personas (e.g., authoritative, casual, soft).
- Beautiful Design System: A meticulously crafted user interface powered by Catppuccin color palettes and smooth animations.
- Seamless Authentication: Secure login using Email/Password or Google OAuth, powered by Better-Auth.
- Privacy-First Storage: Securely stores your documents and cover images using private blob storage.
Docify is built for speed, type safety, and scalability.
| Category | Technology | Purpose |
|---|---|---|
| Core | Bun & Next.js 16 (App Router) | Blazing fast execution, React Server Components, and optimized routing |
| Language | TypeScript | End-to-end type safety |
| Styling | Tailwind CSS v4 & shadcn/ui | Utility-first styling with unstyled, accessible component primitives |
| Database | PostgreSQL & Drizzle ORM | Relational data integrity with a lightweight, type-safe ORM |
| Auth | Better-Auth | Self-hosted authentication with Drizzle integration |
| Voice / AI | VAPI & ElevenLabs | Turn-taking, endpointing, and hyper-realistic TTS |
| Processing | pdfjs-dist & react-pdf |
Robust client and server-side PDF parsing and rendering |
- Route Groups: Clean separation of concerns using Next.js route groups (
(landing),(auth),(main)) for distinct layout management. - Blob Storage Integration: Efficient handling of file uploads and cleanup, utilizing secure endpoints.
- Database Schema:
user/session/accountfor authentication.documenttracking metadata, blob keys, and voices.document_segmentstoring chunked PDF data for accurate RAG (Retrieval-Augmented Generation).
- Design System: Integrates the Catppuccin aesthetic (Latte for Light mode, Mocha for Dark mode) tightly into Tailwind variables within
globals.css.
Follow these instructions to run the project locally.
- Bun installed on your machine.
- A PostgreSQL database instance.
- API Keys for Google OAuth, VAPI, and ElevenLabs (optional but recommended for full functionality).
git clone https://github.com/yourusername/docify.git
cd docify
bun installConfigure your DATABASE_URL in .env.local and run the Drizzle migrations:
bun db:generate # Generate migrations from schema
bun db:migrate # Run migrations against the database
bun db:push # Push schema directly (dev environment only)
bun db:studio # Open Drizzle Studio for visual DB managementCreate a .env.local file in the root directory and add the following keys:
DATABASE_URL=your_postgres_connection_string
GOOGLE_CLIENT_ID=your_google_oauth_client_id
GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret
NEXT_PUBLIC_ASSISTANT_ID=your_vapi_assistant_idbun devOpen http://localhost:3000 with your browser to see the application.
