English ยท ไธญๆ
A real-time collaborative document editing platform built with Next.js, Convex, and Tiptap. Features include real-time collaboration, rich text editing, and document templates.
- ๐ Built on Next.js 15 App Router architecture
- ๐พ Real-time data synchronization with Convex
- ๐ Complete authentication with Clerk
- โก๏ธ Real-time collaboration for seamless multi-user editing
- ๐ฑ Responsive design for multi-device access
- ๐จ Modern UI design
- ๐ Comprehensive development toolchain support
Login interface and project dashboard - Secure authentication and document management
Organization creation and management - Team collaboration made easy
Feature-rich text editor - Comprehensive formatting and editing tools
Real-time collaboration - Live editing, presence awareness, and inline commenting
- ๐ Real-time collaborative editing
- ๐ Rich text editing capabilities
- ๐ฅ Organization-level permission management
- ๐ Document template system
- ๐ฌ Inline commenting functionality
- ๐จ Rich formatting options
- ๐ฑ Responsive design
- ๐ Document search functionality
- ๐ Folder organization
- ๐ Secure access control
- Framework: Next.js 14 (App Router)
- Editor: Tiptap
- State Management: Zustand
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Icons: Lucide Icons
- Database: Convex
- Authentication: Clerk
- Real-time Collaboration: Liveblocks
- File Storage: Convex Storage
- Node.js 18.0.0 or higher
- pnpm 9.0.0 or higher
- Git
# Clone repository
git clone https://github.com/core-admin/docs-tutorial.git
# Navigate to project directory
cd docs-tutorial
# Install dependencies
pnpm install
# Set up environment variables
cp .env.example .env.local
# Start development server
pnpm dev
src/
โโโ app/ # Next.js application routes and pages
โโโ components/ # Reusable components
โ โโโ ui/ # shadcn/ui components
โ โโโ custom/ # Custom business components
โโโ hooks/ # Custom React hooks
โโโ extensions/ # Tiptap editor extensions
โโโ lib/ # Utility functions
โโโ constants/ # Constants and configurations
โโโ store/ # Global state management
โโโ styles/ # Global styles
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY= # Clerk public key
CLERK_SECRET_KEY= # Clerk secret key
# Convex
NEXT_PUBLIC_CONVEX_URL= # Convex deployment URL
CONVEX_DEPLOYMENT= # Convex deployment ID
CONVEX_DEPLOY_KEY= # Convex deploy key (only needed for deployment)
# Liveblocks
NEXT_PUBLIC_LIVEBLOCKS_PUBLIC_KEY= # Liveblocks public key
LIVEBLOCKS_SECRET_KEY= # Liveblocks secret key (only needed for deployment)
- Real-time collaboration system based on Liveblocks
- Support for simultaneous multi-user editing
- Real-time cursor and selection display
- User online status synchronization
- Automatic conflict resolution
- Rich text editor based on Tiptap
- Multiple text formatting options
- Support for complex elements like images and tables
- Keyboard shortcut support
- Markdown syntax support
- Folder structure organization
- Document search functionality
- Document template system
- Document version history
- Document import/export
- Organization-based access control
- Document-level permission settings
- Public sharing support
- Access tracking
# Start development server
pnpm dev
# Start database
pnpm convex:dev
# Run ESLint
pnpm lint
# Build project
pnpm build
# Preview build locally
pnpm start
- Ensure all environment variables are properly configured
- Build the project
- Deploy to a Node.js-compatible platform (Vercel recommended)
For detailed deployment instructions, refer to the Deployment Documentation
- Automatic image optimization
- Route preloading
- Component lazy loading
- Static asset caching
- API response caching
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit changes (
git commit -m 'Add some AmazingFeature'
) - Push to branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
For more details, please refer to the Contributing Guidelines
If you discover any issues or have suggestions for improvements:
This project is open-sourced under the MIT License - see LICENSE for details
Thanks to the following projects:
If you find this project helpful, please consider giving it a star โญ๏ธ