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.
-
π 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.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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.
- Node.js (v18.0.0 or higher recommended)
- npm or yarn / pnpm
- A Google Account (to use Google Drive and Google Tasks sync)
git clone https://github.com/your-username/drivedeck.git
cd drivedecknpm installCopy the sample environment file:
cp .env.example .envConfigure 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=npm run devOpen your browser and navigate to http://localhost:3000.
To enable Google Drive and Google Tasks synchronization in your own Google Cloud project:
- Visit the Google Cloud Console.
- Create a new project (e.g.
DriveDeck Workspace). - Under APIs & Services > Library, enable:
- Google Drive API
- Google Tasks API
- Google Picker API
- Under OAuth consent screen:
- Set User Type to External (or Internal for Workspace organizations).
- Add the scopes:
https://www.googleapis.com/auth/drive.appdatahttps://www.googleapis.com/auth/drive.filehttps://www.googleapis.com/auth/tasks
- Under Credentials > Create Credentials > OAuth client ID:
- Application type: Web application.
- Add your domain to Authorized JavaScript origins (e.g.,
http://localhost:3000andhttps://your-domain.com). - Add your domain to Authorized redirect URIs (e.g.,
http://localhost:3000/Willkommenandhttps://your-domain.com/Willkommen).
| 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 |
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
- 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.
This project is licensed under the MIT License β free for personal and commercial use.