A modern Google Docs clone with collaborative document editor built with SvelteKit (Svelte 5), featuring real-time collaboration, rich text editing, and comprehensive document management capabilities.
This project is a SvelteKit (Svelte 5) remake of the original collaborative document editor from this YouTube tutorial. While maintaining all the core functionalities of the original project, this version leverages SvelteKit with TypeScript.
- 📝 Rich Text Editor: Powered by TipTap with comprehensive formatting tools
- 🤝 Real-time Collaboration & Database: Live collaborative editing with Liveblocks
- 💭 Comments and Mentions: Interactive commenting system with user mentions
- 🔔 Notifications System: Real-time notifications
- 📑 Document Templates: Pre-built templates for quick document creation
- ↩️ Undo/Redo History: Full editing history with undo/redo capabilities
- 📊 Table Support: Table editing and formatting
- 🖼️ Image Uploads: Seamless image integration in documents
- 📏 Margin Controls: Customizable document margins
- ⬇️ Export Options: Export documents as PDF, HTML, TXT, or JSON
- 🏢 Organization Workspaces
- ✉️ Organization Invites: Invite team members to join organizations
- 🔒 Authentication: Secure authentication powered by Clerk
- 📱 Responsive Design: Optimized for all device sizes
- 🎯 Cursor Tracking: Real-time cursor tracking for collaborators
- 🎨 Text Formatting Tools: Comprehensive text styling options
- 📝 Lists and Checklists: Support for 2 list types and interactive checklists
- 🔗 Link Embedding
- Frontend Framework: SvelteKit (Svelte 5) with TypeScript
- Styling: Tailwind CSS + Shadcn-Svelte UI Components
- Database & Backend: Convex (real-time database)
- Real-time Collaboration: Liveblocks
- Rich Text Editor: TipTap Editor
- Authentication: Clerk
- Deployment: Vercel
Make sure you have the following installed on your system:
- Node.js (v18 or higher)
- npm or yarn package manager
- Git
-
Clone the repository
git clone https://github.com/sytanta/sveltekit-google-docs.git cd sveltekit-google-docs -
Install dependencies
npm install # or yarn install -
Environment Setup
Create a
.env.localfile in the root directory and add your environment variables:# Clerk Authentication PUBLIC_CLERK_PUBLISHABLE_KEY="your_clerk_publishable_key" CLERK_SECRET_KEY="your_clerk_secret_key" # Liveblocks (Real-time Collaboration) LIVEBLOCKS_SECRET_KEY="your_liveblocks_secret_key"
-
Convex Setup
Initialize and deploy your Convex backend:
npx convex dev
-
Run the development server
npm run dev # or yarn dev -
Open your browser
Navigate to
http://localhost:5173to see the application running.
# Build the application
npm run build
# Preview the production build
npm run preview- Authentication: Sign up or log in using Clerk authentication
- Create Document: Start a new document from templates or blank
- Rich Text Editing: Use the TipTap editor with comprehensive formatting tools
- Real-time Collaboration: Invite collaborators to edit documents simultaneously
- Real-time Push Notification: Inform collaborators when a new comment is added or a user is mentioned
- Comments & Mentions: Add comments and mention team members
- Organization Management: Create organization and invite team members
- Export Documents: Export your work in multiple formats (PDF, HTML, TXT, JSON)
- Document search
This project is licensed under the MIT License - see the LICENSE file for details.
- Original project inspiration from YouTube Tutorial
- SvelteKit for the amazing framework
- Convex for the real-time database and backend infrastructure
- Liveblocks for real-time collaboration capabilities
- TipTap for the excellent rich text editor
- Clerk for seamless authentication
- Shadcn-Svelte for beautiful UI components
- The open-source community for various libraries and tools used in this project
- README content originally generated by claude.ai
Ta Sy Tan - [email protected]
Project Link: https://github.com/sytanta/sveltekit-google-docs.git
⭐ Don't forget to give the project a star if you found it helpful!