A powerful and modern Notion clone built with cutting-edge technologies.
This project is a feature-rich Notion clone that demonstrates the implementation of modern web technologies. Built on Next.js 14, it seamlessly integrates real-time collaboration, secure authentication, and a responsive user interface. The application leverages Clerk for authentication and Convex as a robust real-time backend, while utilizing Shadcn components and Tailwind CSS for an elegant and responsive design.
- Full-featured Notion-style editor
- Real-time database synchronization
- Infinite nested documents
- Secure authentication system
- Light and dark mode support
- Integration of new functionalities - New features have been added to enhance the user experience.
- File upload, replacement, and deletion
- Soft delete with trash bin functionality
- Document recovery system
- Real-time document icon updates
- Cover images for documents
- Document management improvements - New options for file retrieval and management have been implemented.
- Fully collapsible sidebar
- Responsive mobile design
- Web publishing capabilities
- Custom landing page
- Modern and clean UI
- User interface upgrade - Adjustments have been made to improve usability and aesthetics.
- Next.js 14 - React framework for production
- TypeScript - Static type checking
- Tailwind CSS - Utility-first CSS framework
- Shadcn - Customizable UI components
- Blocknote - A powerful and flexible framework for building modern web applications.
- Convex - Real-time backend infrastructure
- Clerk - Authentication and user management
- Edge Runtime - Enhanced performance and scalability
- Node.js (version 18.x.x or higher)
- npm or yarn package manager
- Git
- Clone the repository
git clone https://github.com/yourusername/notion-clone.git
cd notion-clone
- Install dependencies
npm install
# or
yarn install
- Environment Setup
- Copy
.env.example
to.env.local
- Configure the following environment variables:
- Copy
CONVEX_DEPLOYMENT=
NEXT_PUBLIC_CONVEX_URL=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
EDGE_STORE_ACCESS_KEY=
EDGE_STORE_SECRET_KEY=
NEXT_PUBLIC_EDGE_STORE_ACCESS_KEY=
NEXT_PUBLIC_EDGE_STORE_SECRET_KEY=
- Start the development servers
# Start Convex backend
npx convex dev
# In a new terminal, start Next.js
npm run dev
# or
yarn dev
- Deploy Proyect to Vercel
npm run build && npx convex deploy
# Copied and Paste env variables
notion-clone/
├── app/ # Next.js app directory
│ ├─(main)/ # Main application routes
│ └── (marketing)/ # Marketing pages
├── components/ # Reusable UI components
├── convex/ # Backend models and functions
├── hooks/ # Custom React hooks
├── lib/ # Utility functions
└── public/ # Static assets
-
Backend (Convex)
- Add new models in
convex/schema.ts
- Create new functions in
convex/
directory
- Add new models in
-
Frontend
- Create components in
components/
- Add new routes in
app/(main)/(routes)/
- Implement hooks in
hooks/
- Create components in
- Follow TypeScript strict mode guidelines
- Use Tailwind CSS for styling
- Implement responsive design patterns
- Write clean, documented code
- Follow the established project structure
- Build the application
npm run build
# or
yarn build
- Deploy to your preferred platform
- Vercel (recommended)
- Netlify
- Custom server
- Configure environment variables
- Set up Convex production deployment
- Configure Clerk authentication
- Set up proper domain and SSL
- Test all features in production
We welcome contributions! Please follow these steps:
- Fork the repository
- 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 MIT License - see the LICENSE file for details.
- Create an issue for bug reports or feature requests
- Star the repository if you find it useful
- Follow for updates
Made with ❤️ by DeusloVuilt