Transform your ideas into professional eBooks in minutes with AI-powered assistance.
Imprintly is a full-stack MERN application that revolutionizes the eBook creation process. With intelligent AI assistance, beautiful design tools, and seamless export options, bringing your stories to life has never been easier.
- AI-Powered Content Generation: Generate book outlines and chapter content using Google's Gemini AI
- Rich Text Editor: Markdown-based editor with real-time preview and syntax highlighting
- Drag & Drop Organization: Reorder chapters effortlessly with intuitive drag-and-drop interface
- Custom Cover Images: Upload and manage beautiful book covers (JPEG, PNG, GIF, WebP)
- Chapter Management: Organize chapters with titles, descriptions, and rich content
- Responsive Interface: Beautiful UI that works seamlessly across all devices
- PDF Export: Download your eBook as a professionally formatted PDF
- DOCX Export: Export to Microsoft Word format for further editing
- Instant Downloads: One-click export with proper formatting and styling
- User Authentication: JWT-based secure authentication system
- Personal Library: Manage multiple books in your private dashboard
- Profile Management: Customize your author profile and preferences
- Fast Loading: Optimized build with Vite and modern React
- Efficient API: RESTful API with proper error handling and validation
- Scalable Architecture: MongoDB for reliable data persistence
- React 19.2 - Latest React with concurrent features
- React Router 7.9 - Client-side routing
- Tailwind CSS 4.1 - Utility-first CSS framework
- Lucide React - Beautiful icon library
- React Markdown Editor - Rich markdown editing experience
- DnD Kit - Smooth drag-and-drop interactions
- React Hot Toast - Elegant notifications
- Axios - HTTP client with interceptors
- Node.js & Express - Server runtime and framework
- MongoDB & Mongoose - NoSQL database with ODM
- JWT Authentication - Secure token-based auth
- Multer - File upload handling
- BCrypt - Password hashing
- Google Gemini AI - AI content generation
- Docx & PDFKit - Document generation libraries
- pnpm - Fast, disk space efficient package manager
- Render - Cloud hosting platform
- Git & GitHub - Version control
Beautiful, modern landing page with gradient designs and smooth animations
Manage all your books in one place with an intuitive card-based layout
Rich markdown editor with live preview and AI-powered content generation
Generate book outlines and chapter content with AI assistance
- Node.js (v18 or higher)
- MongoDB (local or Atlas)
- pnpm (v9 or higher)
- Google Gemini API key
- Clone the repository
git clone https://github.com/KeepSerene/imprintly-ai-e-book-creator-mern.git
cd imprintly-ai-e-book-creator-mern- Install dependencies
# Install backend dependencies
cd backend
pnpm install
# Install frontend dependencies
cd ../frontend
pnpm install- Set up environment variables
Backend (.env in /backend):
NODE_ENV=development
PORT=3000
DB_URI=your_mongodb_connection_string
JWT_SECRET_KEY=your_super_secret_jwt_key
GEMINI_API_KEY=your_gemini_api_key
CLIENT_URL=http://localhost:5173Frontend (.env in /frontend):
VITE_API_BASE_URL=http://localhost:3000- Run the application
# Terminal 1 - Run backend
cd backend
pnpm run dev
# Terminal 2 - Run frontend
cd frontend
pnpm run dev- Open your browser
Navigate to
http://localhost:5173
imprintly/
βββ backend/
β βββ src/
β β βββ configs/ # Configuration files
β β βββ controllers/ # Route controllers
β β βββ middlewares/ # Custom middlewares
β β βββ models/ # Mongoose models
β β βββ routes/ # API routes
β β βββ utils/ # Utility functions
β β βββ server.js # Express app entry
β βββ package.json
βββ frontend/
β βββ public/ # Static assets
β βββ src/
β β βββ components/ # React components
β β βββ contexts/ # React contexts
β β βββ pages/ # Page components
β β βββ routes/ # Routing config
β β βββ utils/ # Utilities
β β βββ main.jsx # App entry point
β βββ package.json
βββ package.json # Root package file
POST /api/auth/register- Register new userPOST /api/auth/login- User login
GET /api/profile- Get user profilePUT /api/profile- Update user profilePUT /api/profile/avatar- Update user avatarDELETE /api/profile/avatar- Delete user avatar
GET /api/books- Get all user booksPOST /api/books- Create new bookGET /api/books/:bookId- Get specific bookPUT /api/books/:bookId- Update book contentPUT /api/books/:bookId/cover- Update book coverDELETE /api/books/:bookId- Delete book
POST /api/ai/generate-book-outline- Generate book outlinePOST /api/ai/generate-chapter-content- Generate chapter content
GET /api/exports/:bookId/pdf- Export as PDFGET /api/exports/:bookId/docx- Export as DOCX
This project is configured for deployment on Render.com. The build process automatically:
- Installs all dependencies using pnpm
- Builds the React frontend
- Serves the frontend from the Express backend in production
- Handles all routing through React Router
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Dhrubajyoti Bhattacharjee (@KeepSerene)
- Portfolio: math-to-dev.vercel.app
- GitHub: @KeepSerene
- LinkedIn: Dhrubajyoti Bhattacharjee
- Twitter: @UsualLearner
- Google Gemini AI for intelligent content generation
- Lucide React for beautiful icons
- The React and Node.js communities
- All contributors and users of Imprintly
This is a portfolio project demonstrating full-stack MERN development skills with modern best practices. The application is fully functional and deployed on Render's free tier.
Key Highlights:
- Clean, maintainable code architecture
- Secure authentication and authorization
- AI integration for enhanced user experience
- Responsive design for all screen sizes
- Production-ready deployment configuration
Made with π by @KeepSerene
β Star this repo if you found it helpful!
Live Demo β’ Report Bug β’ Request Feature