Skip to content
Vectrex71Public

About

Notion-Styled secure Noteapp with GDrive

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

DriveDeck πŸš€

The 100% Free, Privacy-First, Block-Based Workspace Powered by Google Drive

React TypeScript Tailwind CSS Google Drive API Offline First License Pricing

DriveDeck is a modern, privacy-respecting, block-based workspace designed for individuals and teams who want the flexibility of tools like Notion without surrendering their data sovereignty.

By using a "Bring Your Own Cloud" (BYOC) architecture, DriveDeck stores all your notes, Kanban boards, project albums, and tasks directly in your personal Google Drive hidden application sandbox (appDataFolder) and local browser IndexedDB.

No external database. No subscription fees. No tracking. Complete data ownership.

Screenshot 2026-09-18 16 57 25

✨ Features

  • πŸ“ Modular Block Editor

    • Rich text formatting, heading levels (H1, H2, H3), quote blocks, callouts, and dividers.
    • Interactive checklists, bullet points, and syntax-highlighted code snippets.
    • Drag-and-drop block reordering with keyboard shortcuts and inline slash / commands.
    • Full support for page covers, custom emojis, and breadcrumb navigation.
  • πŸ“ Project Albums & Workspaces

    • Organize notes and documents into dedicated project spaces.
    • Customize each album with distinct color themes, gradient covers, and emoji icons.
    • Pin favorite projects to the sidebar for instant one-click access.
  • πŸ“Œ Interactive Sticky Notes Board

    • Freeform, color-coded digital canvas for quick thoughts, brainstorms, and temporary memos.
    • Pin, drag, color-code, and organize notes with instant persistence.
  • πŸ“‹ Integrated Kanban Boards

    • Visual task management with customizable columns (To Do, In Progress, Review, Done).
    • Priority badges, tags, and due-date reminders with automated status alerts.
    • Embed live Kanban boards directly inside any editor document.
  • βœ… Google Tasks Two-Way Sync

    • Native integration with the official Google Tasks API.
    • Create, view, organize, and complete your Google Tasks without leaving your workspace.
  • πŸ–ΌοΈ Drive Media & Photo Integration

    • Securely browse and embed images and documents stored in your Google Drive.
    • No file re-uploading or redundant storage usage.
  • ⚑ Offline-First & Lightning-Fast

    • Instant page loads and zero-latency typing backed by browser IndexedDB.
    • Automatic background synchronization to Google Drive whenever you are connected.
    • Seamless offline mode β€” work on trains, flights, or unstable networks with zero interruptions.
  • πŸ›‘οΈ Absolute Privacy & Data Sovereignty

    • All synchronization happens encrypted directly between your browser and Google APIs.
    • No proprietary cloud databases, no analytics profiling, and no vendor lock-in.
  • πŸ’Ύ One-Click JSON Data Export

    • Download a complete, open, and machine-readable JSON backup of your entire workspace at any time.
  • 🌐 Bilingual (English & German)

    • Full internationalization support with instant language switching in Settings.
image

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Client Browser                         β”‚
β”‚                                                             β”‚
β”‚   React 19 UI  ◄──►  IndexedDB (Local Offline Storage)       β”‚
β”‚         β–²                                                   β”‚
β”‚         β”‚ Direct Encrypted HTTPS (OAuth 2.0 Bearer Token)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   Google Cloud Platform                     β”‚
β”‚                                                             β”‚
β”‚   β€’ Google Drive API  ──►  appDataFolder (Private Sandbox)  β”‚
β”‚   β€’ Google Tasks API  ──►  User Task Lists & Reminders      β”‚
β”‚   β€’ Google Picker API ──►  File & Photo Selection           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • IndexedDB: Serves as the primary local cache for zero-latency UI rendering and full offline availability.
  • Google Drive appDataFolder: Dedicated, user-invisible application sandbox on Google Drive. It keeps your main Drive directory tidy while guaranteeing cloud backup and multi-device sync.

πŸš€ Getting Started

Prerequisites

  • Node.js (v18.0.0 or higher recommended)
  • npm or yarn / pnpm
  • A Google Account (to use Google Drive and Google Tasks sync)

1. Clone the Repository

git clone https://github.com/your-username/drivedeck.git
cd drivedeck

2. Install Dependencies

npm install

3. Configure Environment Variables

Copy the sample environment file:

cp .env.example .env

Configure your optional environment keys in .env:

# Optional Gemini AI API Key (for server-side AI features)
GEMINI_API_KEY=

# App URL (defaults to http://localhost:3000)
APP_URL="http://localhost:3000"

# Optional Custom Google Picker Credentials (if utilizing custom project keys)
VITE_GOOGLE_PICKER_API_KEY=
VITE_GOOGLE_PICKER_PROJECT_ID=

4. Run the Development Server

npm run dev

Open your browser and navigate to http://localhost:3000.


πŸ”‘ Google Cloud OAuth Setup (For Custom Deployments)

To enable Google Drive and Google Tasks synchronization in your own Google Cloud project:

  1. Visit the Google Cloud Console.
  2. Create a new project (e.g. DriveDeck Workspace).
  3. Under APIs & Services > Library, enable:
    • Google Drive API
    • Google Tasks API
    • Google Picker API
  4. Under OAuth consent screen:
    • Set User Type to External (or Internal for Workspace organizations).
    • Add the scopes:
      • https://www.googleapis.com/auth/drive.appdata
      • https://www.googleapis.com/auth/drive.file
      • https://www.googleapis.com/auth/tasks
  5. Under Credentials > Create Credentials > OAuth client ID:
    • Application type: Web application.
    • Add your domain to Authorized JavaScript origins (e.g., http://localhost:3000 and https://your-domain.com).
    • Add your domain to Authorized redirect URIs (e.g., http://localhost:3000/Willkommen and https://your-domain.com/Willkommen).

πŸ› οΈ Available Scripts

Command Description
npm run dev Starts the Express server and Vite development server on port 3000
npm run build Builds the client SPA and bundles server.ts with esbuild
npm run start Runs the compiled production server (dist/server.cjs)
npm run lint Runs TypeScript compiler checks (tsc --noEmit)
npm run preview Previews the built production static client locally

πŸ“ Project Structure

drivedeck/
β”œβ”€β”€ public/                 # Favicons, static brand assets, icons
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/         # React UI Components
β”‚   β”‚   β”œβ”€β”€ Editor.tsx      # Core block-based document editor
β”‚   β”‚   β”œβ”€β”€ EmbeddedKanbanBlock.tsx # In-document Kanban block
β”‚   β”‚   β”œβ”€β”€ GoogleTasks.tsx # Google Tasks management component
β”‚   β”‚   β”œβ”€β”€ KanbanBoard.tsx # Fullscreen Kanban dashboard
β”‚   β”‚   β”œβ”€β”€ LandingPage.tsx # Hero landing page & showcase
β”‚   β”‚   β”œβ”€β”€ Photos.tsx      # Google Drive media gallery
β”‚   β”‚   β”œβ”€β”€ PrivacyPolicyPage.tsx # Legal & privacy policy
β”‚   β”‚   β”œβ”€β”€ SettingsPage.tsx# Settings, sync status & backup export
β”‚   β”‚   β”œβ”€β”€ Sidebar.tsx     # Project navigation & page tree
β”‚   β”‚   β”œβ”€β”€ StickyNotes.tsx # Color-coded digital sticky notes
β”‚   β”‚   └── TermsOfServicePage.tsx # Terms of service
β”‚   β”œβ”€β”€ data/               # Preset covers, emojis, and styling palettes
β”‚   β”œβ”€β”€ lib/                # Services, API clients, and storage
β”‚   β”‚   β”œβ”€β”€ db.ts           # IndexedDB persistence layer
β”‚   β”‚   β”œβ”€β”€ driveSync.ts    # Google Drive REST API synchronization
β”‚   β”‚   β”œβ”€β”€ googleAuth.ts   # Google Identity Services / Firebase Auth
β”‚   β”‚   β”œβ”€β”€ googleTasksClient.ts # Google Tasks API integration
β”‚   β”‚   β”œβ”€β”€ LanguageContext.tsx  # i18n localization engine (EN / DE)
β”‚   β”‚   └── notificationService.ts # Due date alert watcher
β”‚   β”œβ”€β”€ types.ts            # Central TypeScript interfaces & data models
β”‚   β”œβ”€β”€ App.tsx             # Root application orchestrator
β”‚   └── main.tsx            # React DOM entry point
β”œβ”€β”€ server.ts               # Express backend & Vite middleware server
β”œβ”€β”€ metadata.json           # App permissions and metadata
β”œβ”€β”€ vite.config.ts          # Vite bundler configuration
└── package.json            # Project dependencies & build scripts

πŸ”’ Privacy & Security First

  • Zero Tracking: DriveDeck has no tracking scripts, advertising SDKs, or data broker telemetry.
  • Your Data Remains Yours: Content is stored in your local browser and your personal Google Drive account. No third-party database is used.
  • Completely Free: No subscription plans, no paywalls, no trial limits. DriveDeck is built for users who value freedom and privacy.

πŸ“„ License

This project is licensed under the MIT License β€” free for personal and commercial use.


Built with ❀️ for a private, decentralized, and sovereign web workspace.

About

Notion-Styled secure Noteapp with GDrive

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages