Skip to main content

Fork Guide

Self-host OpenSync by forking the repository and deploying your own instance.

Why Fork?

  • Data ownership - Keep all data in your own Convex instance
  • Customization - Modify features to fit your workflow
  • Privacy - Run entirely on your infrastructure
  • Learning - Study and modify the codebase

Quick Fork

1

Fork on GitHub

Visit github.com/waynesutton/opensync and click Fork.
2

Clone locally

bash git clone https://github.com/YOUR_USERNAME/opensync cd opensync
3

Install dependencies

bash npm install
4

Start Convex

bash npx convex dev This creates a new Convex project linked to your account.
5

Start frontend

bash npm run dev

Project Structure

opensync/
├── convex/           # Convex backend
│   ├── schema.ts     # Database schema
│   ├── http.ts       # HTTP endpoints
│   ├── sessions.ts   # Session functions
│   └── ...
├── src/              # React frontend
│   ├── pages/        # Page components
│   ├── components/   # UI components
│   └── ...
├── docs/             # Documentation (MDX)
└── scripts/          # Build scripts

Local Development

Backend + Frontend

Run both in separate terminals:
# Terminal 1: Convex backend
npx convex dev

# Terminal 2: Vite frontend
npm run dev

Environment Setup

Create .env.local:
VITE_CONVEX_URL=https://your-convex-deployment.convex.cloud

Deploy Your Fork

Backend

npx convex deploy

Frontend

Deploy to Netlify or Vercel with your repository.

Syncing Updates

Keep your fork updated with upstream:
# Add upstream remote
git remote add upstream https://github.com/waynesutton/opensync

# Fetch and merge updates
git fetch upstream
git merge upstream/main
Watch the repository for releases to get notified of important updates.