Skip to content

appedme/sketchflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SketchFlow 🎨

The modern collaborative workspace for designers and developers - Seamlessly combine visual canvases and rich-text documents in one powerful platform.

License: MIT Next.js TypeScript PRs Welcome

✨ Features

  • 🎨 Visual Canvas Editor - Powered by Excalidraw for intuitive diagram creation
  • πŸ“ Rich Text Editor - Built with Plate.js for advanced document editing
  • πŸ”„ Real-time Collaboration - Work together seamlessly
  • πŸ“ Project Management - Organize canvases and documents into projects
  • πŸŒ™ Dark Mode - Beautiful themes for day and night
  • πŸ’Ύ Auto-save - Never lose your work with intelligent auto-saving
  • πŸ“¦ Export/Import - Download your work as ZIP files
  • πŸ” Library System - Access official Excalidraw libraries
  • πŸ”’ Authentication - Secure user management with Stack Auth
  • πŸ“± PWA Support - Install as a desktop/mobile app

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm/pnpm/bun
  • A Turso database (or other LibSQL compatible database)

Installation

  1. Clone the repository

    git clone https://github.com/appedme/sketchflow.git
    cd sketchflow
  2. Install dependencies

    npm install
    # or
    bun install
  3. Set up environment variables

    cp .env.example .env.local

    Configure the following variables in .env.local:

    # Database (Turso)
    TURSO_DATABASE_URL=your_database_url
    TURSO_AUTH_TOKEN=your_auth_token
    
    # Authentication (Stack Auth)
    NEXT_PUBLIC_STACK_PROJECT_ID=your_project_id
    NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY=your_key
    STACK_SECRET_SERVER_KEY=your_secret
    
    # Optional: Image APIs
    PEXELS_API_KEY=your_pexels_api_key
    IMGBB_API_KEY=your_imgbb_key
    FREEIMAGE_API_KEY=your_freeimage_key
  4. Run database migrations

    npm run db:push
  5. Start the development server

    npm run dev
  6. Open in browser Navigate to http://localhost:3000

πŸ“– Documentation

πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js 15 (App Router)
  • Language: TypeScript
  • UI Library: React 19
  • Styling: Tailwind CSS 4
  • Components: shadcn/ui + Radix UI
  • Canvas Editor: Excalidraw
  • Rich Text Editor: Plate.js
  • State Management: Zustand
  • Data Fetching: SWR

Backend

  • Database: Turso (LibSQL)
  • ORM: Drizzle
  • Authentication: Stack Auth
  • File Storage: ImgBB / FreeImage API
  • Image Search: Pexels API

Deployment

  • Platform: Cloudflare Pages (via OpenNext)
  • Alternative: Vercel, Netlify

πŸ“ Project Structure

sketchflow/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/              # Next.js app router pages
β”‚   β”œβ”€β”€ components/       # React components
β”‚   β”‚   β”œβ”€β”€ canvas/      # Canvas-related components
β”‚   β”‚   β”œβ”€β”€ editor/      # Document editor components
β”‚   β”‚   β”œβ”€β”€ workspace/   # Workspace UI components
β”‚   β”‚   └── ui/          # shadcn/ui components
β”‚   β”œβ”€β”€ lib/             # Utilities and configurations
β”‚   β”‚   β”œβ”€β”€ actions/     # Server actions
β”‚   β”‚   β”œβ”€β”€ db/          # Database schema and config
β”‚   β”‚   └── stores/      # Zustand stores
β”‚   β”œβ”€β”€ hooks/           # Custom React hooks
β”‚   └── styles/          # Global styles
β”œβ”€β”€ public/              # Static assets
β”œβ”€β”€ docs/                # Documentation
└── migrations/          # Database migrations

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and linting (npm run lint)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to your fork (git push origin feature/amazing-feature)
  7. Open a Pull Request

πŸ“ Scripts

npm run dev          # Start development server
npm run build        # Build for production
npm run start        # Start production server
npm run lint         # Run ESLint
npm run db:push      # Push database schema
npm run db:studio    # Open Drizzle Studio
npm run db:generate  # Generate migrations

πŸ› Known Issues

See GitHub Issues for a list of known bugs and feature requests.

πŸ“„ License

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

πŸ™ Acknowledgments

πŸ”— Links

πŸ’¬ Support


Made with ❀️ by the SketchFlow team

About

Canvas for technical design and documentation

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages