Skip to content

SouptikTaran/FlowDocs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

FlowDocs πŸ“

FlowDocs Logo

Real-time Collaborative Document Editor

A modern, feature-rich collaborative document editing platform built with Next.js, Liveblocks, and AI assistance.

License: MIT Next.js TypeScript Liveblocks Contributions Welcome

Live Demo β€’ Documentation β€’ Report Bug β€’ Request Feature


πŸš€ Features

✨ Core Features

  • Real-time Collaboration: Multiple users can edit documents simultaneously with live cursors and presence indicators
  • Rich Text Editor: Powered by Lexical with advanced formatting options (bold, italic, headings, lists, etc.)
  • AI Writing Assistant: Integrated Gemini AI for content suggestions, writing help, and document enhancement
  • Live Comments: Real-time commenting system with threaded discussions
  • User Management: Role-based access control (viewer, editor) with sharing permissions
  • Document Sharing: Share documents via email with customizable access levels

πŸ”§ Technical Features

  • Authentication: Secure user authentication with Clerk
  • Real-time Sync: Powered by Liveblocks for seamless collaboration
  • Responsive Design: Mobile-first approach with Tailwind CSS
  • Dark/Light Theme: Elegant themes optimized for productivity
  • Email Notifications: Automated sharing and collaboration notifications
  • Type Safety: Full TypeScript implementation
  • Modern UI: Radix UI components with custom styling

πŸ“± User Experience

  • Intuitive Interface: Clean, modern design focused on productivity
  • Active Collaborators: See who's online and where they're working
  • Document Dashboard: Organized view of all your documents
  • Quick Actions: Fast document creation, sharing, and management
  • Notifications: Stay updated on document changes and collaborations

πŸ—οΈ Architecture

alt text


πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js 14 - React framework with App Router
  • Language: TypeScript - Type-safe JavaScript
  • Styling: Tailwind CSS - Utility-first CSS framework
  • UI Components: Radix UI - Unstyled, accessible components
  • Editor: Lexical - Extensible text editor framework

Backend & Real-time

  • Real-time Collaboration: Liveblocks - Real-time collaboration infrastructure
  • Authentication: Clerk - Complete authentication solution
  • AI Integration: Google Gemini AI - Advanced language model
  • Email Service: MailerSend - Transactional email API

Development Tools

  • Package Manager: npm
  • Linting: ESLint with Next.js config
  • Code Formatting: Built-in Next.js standards
  • Type Checking: TypeScript compiler

🚦 Getting Started

Prerequisites

Before running FlowDocs, ensure you have:

  • Node.js (v18 or higher)
  • npm or yarn package manager
  • Git for version control

Required API Keys

You'll need to obtain the following API keys:

  1. Liveblocks: Get API key
  2. Clerk: Get API key
  3. Google Gemini AI: Get API key
  4. MailerSend: Get API key

Installation

  1. Clone the repository

    git clone https://github.com/SouptikTaran/FlowDocs.git
    cd FlowDocs
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env.local file in the root directory:

    # Clerk Authentication
    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
    CLERK_SECRET_KEY=your_clerk_secret_key
    NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
    NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
    
    # Liveblocks
    NEXT_PUBLIC_LIVEBLOCKS_PUBLIC_KEY=your_liveblocks_public_key
    LIVEBLOCKS_SECRET_KEY=your_liveblocks_secret_key
    
    # Google Gemini AI
    NEXT_PUBLIC_GEMINI_API_KEY=your_gemini_api_key
    
    # MailerSend
    MAILERSEND_API_KEY=your_mailersend_api_key
    
    # Sentry (Optional)
    SENTRY_DSN=your_sentry_dsn
  4. Run the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:3000 to see FlowDocs in action!


πŸ“– Usage

Creating Documents

  1. Sign up or sign in to your account
  2. Click the "Add Document" button on your dashboard
  3. Start writing with the rich text editor
  4. Your changes are automatically saved

Collaborating

  1. Click the "Share" button in any document
  2. Enter collaborator email addresses
  3. Set their permission level (viewer or editor)
  4. Collaborators will receive an email invitation

Using AI Assistant

  1. Click the AI assistant icon in the editor
  2. Ask questions or request writing help
  3. Insert AI-generated content directly into your document

Managing Access

  • Editors: Can modify document content and manage sharing
  • Viewers: Can read documents and add comments
  • Owners: Have full control over the document

🀝 Contributing

We welcome contributions from the community! Here's how you can help make FlowDocs better:

Ways to Contribute

  • πŸ› Bug Reports: Found a bug? Open an issue
  • πŸ’‘ Feature Requests: Have an idea? Request a feature
  • πŸ“ Documentation: Help improve our docs
  • πŸ”§ Code Contributions: Submit pull requests

Development Setup

  1. Fork the repository
  2. Clone your fork locally
  3. Create a new branch for your feature
  4. Make your changes
  5. Test your changes thoroughly
  6. Submit a pull request

Contribution Guidelines

  • Follow the existing code style and conventions
  • Write clear, descriptive commit messages
  • Add tests for new features
  • Update documentation as needed
  • Ensure all tests pass before submitting

For detailed contribution guidelines, see CONTRIBUTING.md.


πŸ“ Project Structure

flowdocs/
β”œβ”€β”€ app/                    # Next.js App Router pages
β”‚   β”œβ”€β”€ (auth)/            # Authentication routes
β”‚   β”œβ”€β”€ (root)/            # Main application routes
β”‚   └── api/               # API endpoints
β”œβ”€β”€ components/            # React components
β”‚   β”œβ”€β”€ editor/            # Editor-specific components
β”‚   β”œβ”€β”€ ui/                # Reusable UI components
β”‚   └── hooks/             # Custom React hooks
β”œβ”€β”€ lib/                   # Utility libraries
β”‚   └── actions/           # Server actions
β”œβ”€β”€ public/                # Static assets
β”‚   └── assets/            # Images and icons
β”œβ”€β”€ styles/                # Global styles and themes
β”œβ”€β”€ types/                 # TypeScript type definitions
└── config files           # Configuration files

πŸ§ͺ Testing

Running Tests

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run tests with coverage
npm run test:coverage

Testing Strategy

  • Unit Tests: Component and utility function testing
  • Integration Tests: API and user flow testing
  • E2E Tests: Complete user journey testing

πŸš€ Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Connect your repository to Vercel
  3. Add your environment variables
  4. Deploy with automatic CI/CD

Manual Deployment

# Build the application
npm run build

# Start production server
npm start

πŸ—ΊοΈ Roadmap

Upcoming Features

  • Mobile App: Native iOS and Android applications
  • Advanced AI Features: Document summarization, translation
  • Templates: Pre-built document templates
  • Version History: Document revision tracking
  • Advanced Permissions: Team and organization management
  • Integrations: Google Drive, Dropbox, Notion
  • Offline Support: Work without internet connection
  • Advanced Export: PDF, Word, Markdown export options

Long-term Vision

  • Plugin System: Extensible architecture for third-party plugins
  • Advanced Analytics: Document engagement metrics
  • Multi-language Support: Internationalization
  • Enterprise Features: SSO, advanced security, compliance

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2025 FlowDocs Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

πŸ™ Acknowledgments

Special thanks to:

  • Liveblocks - For providing excellent real-time collaboration infrastructure
  • Clerk - For seamless authentication solutions
  • Lexical - For the powerful and extensible editor framework
  • Vercel - For hosting and deployment platform
  • Next.js Team - For the amazing React framework
  • All Contributors - For making FlowDocs better every day

πŸ“ž Support

Getting Help

Community

  • 🌟 Star this repository if you find it helpful

Made with ❀️ by the FlowDocs team

⭐ Star us on GitHub β€’ πŸ› Report Issues β€’ 🀝 Contribute

About

FlowDocs is a real-time collaborative document editor with AI assistance, built on Next.js, Liveblocks, and Lexical.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors