Skip to content

iniyavanjambulingam/SyncVault-public

Repository files navigation

SyncVault

License: MIT Cloudflare Workers React Vite

SyncVault is a production-ready, serverless personal cloud clipboard and snapshot synchronization platform. Built entirely on the Cloudflare ecosystem, it provides instant cross-device synchronization for text, snapshots, and block-based notes.

Key Features

  • Real-time Synchronization: Powered by Cloudflare Durable Objects and WebSockets for sub-second updates across all your devices.
  • Cross-Platform Support: Works seamlessly on Android, Windows, Linux, macOS, and as an installable PWA.
  • Snapshot Capture: Direct camera integration and image upload with cloud archiving.
  • Block-Based Notes: A modern, Notion-style editor for organized note-taking.
  • Secure by Default: JWT-based authentication with secure session management and access/refresh tokens.
  • Cloud Archiving: Automatic retention management using Cloudflare R2 and D1.
  • Global Search: Instant search across your entire clipboard history, snapshots, and notes.

Screenshots

Dashboard Clipboard Notes

Mobile Dashboard Mobile Dashboard

Architecture Overview

SyncVault leverages a modern serverless architecture:

  • Frontend: React SPA hosted on Cloudflare Pages.
  • Backend: Cloudflare Workers handling RESTful API requests.
  • Real-time: Cloudflare Durable Objects managing stateful WebSocket connections.
  • Database: Cloudflare D1 for relational metadata.
  • Storage: Cloudflare R2 for binary snapshot data.

Read more about the architecture →

Quick Start

Prerequisites

  • Node.js v18+
  • A Cloudflare account

Installation

  1. Clone the repository:
    git clone https://github.com/your-repo/SyncVault-public.git
    cd SyncVault-public
  2. Run the automated setup:
    npm run setup

Local Development

  1. Initialize the local database:
    cd worker
    npm run db:migrate
    npm run db:seed
  2. Start the development environment:
    npm run dev

The frontend will be available at http://localhost:5173 and the API at http://localhost:8787.

Documentation

Technology Stack

  • Frontend: React, Vite, Tailwind CSS, Lucide Icons.
  • Backend: Cloudflare Workers, Durable Objects.
  • Database: Cloudflare D1 (SQLite).
  • Storage: Cloudflare R2 (S3-compatible).
  • Hosting: Cloudflare Pages.

Roadmap

  • OCR Integration: Extract text from snapshots automatically.
  • End-to-End Encryption: Client-side encryption for all synced data.
  • File Sync: Support for generic file uploads (PDF, ZIP, etc.).
  • Offline Mode: Local-first synchronization with IndexedDB.
  • Sharing: Securely share clips or notes with other users.

Contributing

Contributions are welcome! Please see the Development Guide to get started.

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git checkout -b feature/AmazingFeature).
  5. Open a Pull Request.

License

Distributed under the MIT License. See LICENSE for more information.

About

Sync text, commands, links, screenshots, and notes across all your devices with real-time updates and cloud storage.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages