A powerful, feature-rich Notion clone built with Next.js, TypeScript, and modern web technologies. Experience the next generation of collaborative workspace tools with real-time editing, AI integration, and comprehensive database management.
- Block-based editing with drag & drop functionality
- Real-time collaboration with live cursors and instant updates
- Rich formatting including headings, lists, quotes, code blocks, and more
- Embedded content support for images, videos, files, and bookmarks
- Table creation with advanced formatting options
- Math expressions and diagram support (Mermaid)
- Powerful databases with custom properties and views
- Multiple view types: Table, Kanban, Calendar, Gallery, Timeline
- Advanced filtering and sorting capabilities
- Formulas and rollups for complex calculations
- Relations between databases for connected workflows
- Import/Export data in various formats
- Real-time editing with conflict resolution
- Live cursors showing collaborator presence
- Comments and mentions for team communication
- Advanced permissions system (Owner, Admin, Member, Guest)
- Version history and change tracking
- Workspace management for team organization
- AI-powered writing assistance and content generation
- Smart suggestions for formatting and structure
- Automated summarization of long documents
- Content enhancement with AI-driven improvements
- Language translation support
- Beautiful, responsive design that works on all devices
- Dark/Light mode with system preference detection
- Customizable workspace with themes and layouts
- Intuitive navigation with smart search and shortcuts
- Mobile-optimized interface for on-the-go productivity
- Enterprise-grade security with encryption
- Fast performance with optimized loading
- Offline support for uninterrupted work
- Regular backups and data protection
- SSO integration support
- Node.js 18+
- npm, yarn, or pnpm
- SQLite (included) or PostgreSQL/MySQL for production
-
Clone the repository
git clone https://github.com/your-username/hotion.git cd hotion -
Install dependencies
npm install # or yarn install # or pnpm install
-
Set up environment variables
cp .env.example .env
Edit
.envwith your configuration:# Database DATABASE_URL="file:./dev.db" # Authentication NEXTAUTH_SECRET="your-secret-key" NEXTAUTH_URL="http://localhost:3000" # Optional: OAuth providers GOOGLE_CLIENT_ID="your-google-client-id" GOOGLE_CLIENT_SECRET="your-google-client-secret" # Optional: AI features OPENAI_API_KEY="your-openai-api-key"
-
Set up the database
npx prisma generate npx prisma db push
-
Start the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to
http://localhost:3000to see your Hotion workspace!
hotion/
βββ src/
β βββ app/ # Next.js app directory
β β βββ (auth)/ # Authentication pages
β β βββ (dashboard)/ # Main app pages
β β βββ api/ # API routes
β β βββ globals.css # Global styles
β βββ components/ # Reusable components
β β βββ ui/ # Base UI components
β β βββ editor/ # Editor components
β β βββ database/ # Database components
β β βββ providers/ # Context providers
β βββ lib/ # Utility libraries
β βββ hooks/ # Custom React hooks
β βββ stores/ # State management
β βββ types/ # TypeScript definitions
βββ prisma/ # Database schema and migrations
βββ public/ # Static assets
βββ docs/ # Documentation
- Next.js 14 - React framework with app directory
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library
- Radix UI - Accessible component primitives
- TipTap - Extensible rich-text editor
- Y.js - Real-time collaboration engine
- Lowlight - Syntax highlighting
- Prisma - Database ORM
- NextAuth.js - Authentication
- SQLite/PostgreSQL - Database
- Socket.io - Real-time communication
- Zustand - Lightweight state management
- React Query - Server state management
- OpenAI API - AI-powered features
- EdgeStore - File upload and storage
- Click the "New Page" button in the sidebar
- Choose a template or start blank
- Add a title and start writing
- Use
/to open the block menu for different content types
- Create a new database from the sidebar
- Define your schema with custom properties
- Add records and organize your data
- Switch between different views (Table, Kanban, etc.)
- Share your workspace with team members
- Set appropriate permissions for each user
- Collaborate in real-time with live editing
- Use comments and mentions for communication
- Enable AI features in your environment variables
- Use the AI assistant for writing help
- Generate content with AI prompts
- Enhance your text with AI suggestions
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run type-check- Run TypeScript checksnpm run prisma:studio- Open Prisma Studio
# Generate Prisma client
npx prisma generate
# Push schema changes
npx prisma db push
# Reset database
npx prisma db reset
# Open Prisma Studio
npx prisma studioSee .env.example for all available environment variables.
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/session- Get current session
GET /api/pages- List pagesPOST /api/pages- Create pageGET /api/pages/[id]- Get pagePUT /api/pages/[id]- Update pageDELETE /api/pages/[id]- Delete page
GET /api/databases- List databasesPOST /api/databases- Create databaseGET /api/databases/[id]- Get databasePUT /api/databases/[id]- Update database
page:update- Page content changedcursor:move- User cursor moveduser:join- User joined workspaceuser:leave- User left workspace
- Push your code to GitHub
- Connect your repository to Vercel
- Configure environment variables
- Deploy automatically
# Build image
docker build -t hotion .
# Run container
docker run -p 3000:3000 hotion- Build the application:
npm run build - Set up your database
- Configure environment variables
- Start the server:
npm start
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- Use TypeScript for all new code
- Follow the existing code style
- Write meaningful commit messages
- Add documentation for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Notion for inspiration
- TipTap for the excellent editor
- Next.js team for the amazing framework
- Tailwind CSS for the utility-first approach
- All contributors and the open-source community
- π§ Email: support@hotion.dev
- π¬ Discord: Join our community
- π Issues: GitHub Issues
- π Docs: Full Documentation
Built with β€οΈ by the Hotion team