Collaborative Document Editor - SvelteKit Edition
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.
š Project Overview
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.
⨠Key Features
- š 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
š ļø Tech Stack
- 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
š Getting Started
Prerequisites
Make sure you have the following installed on your system:
- Node.js (v18 or higher)
- npm or yarn package manager
- Git
Installation
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.local
file 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:5173
to see the application running.
Build for Production
# Build the application
npm run build
# Preview the production build
npm run preview
šÆ Usage
Basic Usage
- 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
š License
This project is licensed under the MIT License - see the LICENSE file for details.
š Acknowledgments
- 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 - sytanta@yahoo.com
Project Link: https://github.com/sytanta/sveltekit-google-docs.git
ā Don't forget to give the project a star if you found it helpful!