Sign inSign up

bytescraftio/snapdocs

By bytescraftio

β€’Updated about 1 year ago

Image
Content management system
0

619

bytescraftio/snapdocs repository overview

β πŸ“ SnapDocs

SnapDocs Editor
β πŸš€ A Modern, Open-Source Document Workspace

Build your second brain with a powerful block-based editor and real-time collaboration

⚠️ Beta Status: This project is under active development. Features may change.

GitHub stars GitHub forks GitHub issues License Docker Pulls

Features⁠ β€’ Quick Start⁠ β€’ Tech Stack⁠ β€’ Docker⁠ β€’ Contributing⁠


⁠🎯 What is SnapDocs?

SnapDocs is a **self-hostable, open-source document workspace ** that empowers teams and individuals to create, organize, and collaborate on documents with ease. Built with modern web technologies, it offers a seamless experience for managing your knowledge base, notes, and documentation.

⁠Why SnapDocs?
  • πŸ”’ Full Data Ownership - Host on your infrastructure, keep your data private
  • 🎨 Modern & Clean UI - Beautiful interface built with shadcn/ui
  • ⚑ Lightning Fast - Optimized performance with Next.js 14
  • πŸ”§ Highly Customizable - Open source and extensible
  • 🐳 Easy Deployment - One-command Docker setup

⁠✨ Features

β πŸ“„ Rich Block Editor
  • Multiple Block Types - Text, headings, lists, todos, code blocks, quotes, and more
  • Drag & Drop - Effortlessly reorganize content by dragging blocks
  • Slash Commands - Quick block insertion with / command menu
  • Nested Pages - Create unlimited page hierarchies
  • Rich Text Formatting - Bold, italic, underline, and more
⁠πŸ‘₯ Real-Time Collaboration
  • Live Presence - See who's viewing and editing in real-time
  • Instant Sync - Changes update across all users immediately
  • User Avatars - Visual indicators showing active collaborators
⁠🏒 Workspace Management
  • Multiple Workspaces - Organize content into separate workspaces
  • Member Management - Invite team members and manage permissions
  • Page Organization - Sidebar navigation with nested page structure
  • Favorites - Quick access to important pages
⁠🎨 User Experience
  • Search - Quick search across all your content
  • Settings Panel - Customize your workspace preferences
  • Responsive Design - Works seamlessly on desktop and tablet

β πŸ“Έ Screenshots

Editor Interface

Rich Block Editor with Real-time Collaboration

Settings Panel

Comprehensive Settings & Customization

β πŸš€ Quick Start

Get SnapDocs running in under 5 minutes!

⁠Prerequisites
# Clone the repository
mkdir snapdocs && cd snapdocs
curl https://raw.githubusercontent.com/BytesCraftIO/snapdocs/refs/heads/main/docker-compose.yml -o docker-compose.yml

# Start all services with one command
docker-compose --profile production up -d

# Access SnapDocs at http://localhost:3000

That's it! SnapDocs is now running with all required services.

β πŸ’» Local Development
# Clone the repository
git clone https://github.com/BytesCraftIO/snapdocs.git
cd snapdocs

# Install dependencies
pnpm install

# Start infrastructure services
docker-compose up -d

# Run database migrations
pnpm db:migrate

# Start development server
pnpm dev

# Visit http://localhost:3000

β πŸ›  Tech Stack

Next.js
Next.js 14
React
React 19
TypeScript
TypeScript
Tailwind
Tailwind CSS
PostgreSQL
PostgreSQL
MongoDB
MongoDB
Redis
Redis
Prisma
Prisma
Docker
Docker
Socket.io
Socket.io
shadcn/ui
shadcn/ui
MinIO
MinIO S3
⁠Architecture Highlights
  • Frontend: Next.js 14 App Router, React 19, TypeScript, Tailwind CSS
  • UI Components: shadcn/ui (built on Radix UI), Lucide Icons
  • Editor: Custom block editor with drag-and-drop support
  • Databases: PostgreSQL (metadata) + MongoDB (document content)
  • Real-time: Socket.io for live collaboration
  • Authentication: NextAuth.js with secure sessions
  • File Storage: MinIO (S3-compatible object storage)
  • Caching: Redis for performance optimization

⁠🐳 Docker Deployment

⁠One-Command Setup
# Production deployment with all services
docker-compose --profile production up -d

This starts:

  • βœ… PostgreSQL database
  • βœ… MongoDB for document storage
  • βœ… Redis cache
  • βœ… MinIO for file uploads
  • βœ… SnapDocs application
⁠Environment Variables

Create a .env file for production:

# Database
POSTGRES_PASSWORD=secure_password
MONGO_ROOT_PASSWORD=secure_password

# Authentication  
NEXTAUTH_SECRET=generate-a-secret-key

# Optional
REDIS_PASSWORD=optional_redis_password
S3_ACCESS_KEY=custom_minio_key
S3_SECRET_KEY=custom_minio_secret
⁠Docker Hub

Pull the pre-built image:

docker pull bytescraftio/snapdocs:latest

⁠🀝 Contributing

We love contributions! Whether it's bug fixes, new features, or documentation improvements, we welcome all help.

⁠How to Contribute
  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to your branch (git push origin feature/amazing-feature)
  5. Open a Pull Request
⁠Development Setup
# Install dependencies
pnpm install

# Run tests
pnpm test

# Lint code
pnpm lint

# Type check
pnpm typecheck

β πŸ“ Environment Configuration

⁠Required Variables
VariableDescriptionExample
DATABASE_URLPostgreSQL connection stringpostgresql://user:pass@localhost:5432/snapdocs
MONGODB_URIMongoDB connection stringmongodb://admin:pass@localhost:27017/snapdocs
NEXTAUTH_SECRETAuth encryption secretyour-secret-key-here
NEXTAUTH_URLApplication URLhttp://localhost:3000
⁠Optional Services
VariableDescriptionDefault
REDIS_URLRedis cache connectionredis://localhost:6379
S3_ENDPOINTMinIO/S3 endpointhttp://localhost:9000
S3_ACCESS_KEYS3 access keyminioadmin
S3_SECRET_KEYS3 secret keyminioadmin

β πŸ—ΊοΈ Roadmap

  • Mobile Apps - iOS and Android applications
  • API Access - REST API for third-party integrations
  • Advanced Permissions - Granular access control
  • Database Views - Table, Kanban, Calendar views
  • Templates - Pre-built page templates
  • Webhooks - Integration with external services
  • Export Options - PDF, Markdown, HTML export
  • Plugin System - Extensible architecture

β πŸ“„ License

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

β πŸ™ Acknowledgments

β πŸ’¬ Community & Support


Built with ❀️ by the SnapDocs Community

If you find SnapDocs useful, please consider giving it a ⭐ on GitHub!

Star on GitHub ⁠

Tag summary

Content type

Image

Digest

sha256:80525be2a…

Size

409.4 MB

Last updated

about 1 year ago

docker pull bytescraftio/snapdocs