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
Clone locally
bash git clone https://github.com/YOUR_USERNAME/opensync cd opensync
Install dependencies
bash npm install
Start Convex
bash npx convex dev This creates a new Convex project linked to your
account.
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
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.