Skip to content

Dev-Lune/voltex-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ Voltex Notes

Open-source knowledge base for thinkers, builders, and writers.

Voltex Notes is a modern, full-featured note-taking app with bidirectional linking, graph view, markdown editing, real-time cloud sync, shareable notes, and a plugin marketplace — available as a web app and a Windows desktop app.

Voltex Notes logo

Website · Web App · Download Desktop · Report Bug


Features

Core Editing

  • Inline markdown editor — seamless, distraction-free writing experience
  • Split view — edit and preview side-by-side
  • YAML frontmatter — collapsible properties editor
  • Smart lists — auto-continuation for bullets, numbered lists, and task lists
  • Find & Replace — regex-powered search within notes
  • Table insertion — one-click markdown table insertion from toolbar
  • Inline title editing — rename notes directly from the editor
  • Version history — diff-based version snapshots with rollback

Knowledge Graph

  • Interactive graph view — visualize connections between notes
  • Force-directed physics — spring-based layout with real-time simulation
  • Bidirectional links[[wikilinks]] create two-way connections
  • Backlinks panel — see all notes that reference the current note
  • Link autocomplete — type [[ and get suggestions
  • Hover preview — preview linked notes on hover

Organization

  • Folder system — drag-and-drop notes into folders
  • Tags — add and filter by tags
  • Bookmarks — star important notes
  • Multi-select — select multiple files and bulk delete
  • Advanced search — operators like tag:, path:, file:, type:, has:, line:, -tag:

Authentication

  • Email & Password — sign up and log in with email/password via Firebase Auth
  • Google Sign-In — one-click Google authentication
  • Profile management — update display name and profile info
  • Secure sessions — persistent login state across browser sessions

Cloud & Real-Time Sync

  • Real-time Firestore sync — notes sync instantly across all devices via Firestore onSnapshot listeners
  • Per-folder cloud sync — sync individual folders to the cloud; synced folders show a cloud icon in the explorer
  • Vault sync prompt — when opening a vault while signed in, a prompt offers to sync the vault by name
  • Offline-first — full offline support with localStorage fallback; works without an account
  • Theme sync — selected theme and preferences sync across devices when logged in
  • Version history — diff-based version snapshots stored per note with one-click rollback
  • Conflict resolution — configurable merge strategies for concurrent edits
  • Export — download vault as text or individual notes as markdown

Sharing

  • Public share links — generate a shareable URL for any note with one click
  • Read-only viewer — shared notes render in a clean, branded public page with markdown formatting
  • Firestore-backed — shared notes stored securely; only the owner can update or revoke

Plugin Marketplace

  • 13+ plugins — Excalidraw drawing, Kanban boards, Git sync, Mind maps, AI assistant, and more
  • Install/Uninstall — real plugin lifecycle that gates features
  • Settings integration — manage installed plugins from Settings
  • Feature gating — drawing and kanban note types require their plugins

Themes

  • 24 built-in themes — Voltex Dark (default), Nord, Dracula, Gruvbox, Solarized, Tokyo Night, Catppuccin, Rosé Pine, One Dark Pro, Everforest, Kanagawa, Material Ocean, and more
  • Custom theme editor — create and apply custom color palettes
  • Live preview — see theme changes in real-time
  • Cross-device sync — theme preference syncs via Firestore when logged in
  • Window color sync — Electron app window background matches the active theme

Note Types

  • Markdown — rich text with wiki-links and formatting
  • Drawing — Excalidraw canvas for diagrams and sketches (requires plugin)
  • Daily Note — journal entries with date-based organization
  • Kanban — task boards with drag-and-drop columns (requires plugin)

Mobile

  • Responsive design — full mobile layout with bottom nav
  • Swipe gestures — swipe to navigate between views
  • Mobile drawer — optimized sidebar for touch
  • Haptic feedback — tactile responses on interactions

Tech Stack

Layer Technology
Framework Next.js 16
UI React 19 + TypeScript
Styling Tailwind CSS 4
Icons Lucide React
Components Radix UI + shadcn/ui
Backend Firebase (Auth + Firestore + real-time sync)
Desktop Electron with auto-updates
Deployment Vercel (web) · GitHub Releases (desktop)

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/Dev-Lune/voltex-notes.git
cd voltex-notes

# Install dependencies
npm install

# Start development server (web)
npm run dev

Open http://localhost:3000 in your browser. The landing page is at / and the notes app is at /notes.

Build for Production

npm run build    # Web production build
npm start        # Start production server

Desktop App (Electron)

npm run electron:dev     # Dev mode (Next.js + Electron)
npm run electron:build   # Build .exe installer locally
npm run electron:publish # Build + publish to GitHub Releases

See docs/RELEASE.md for full release instructions.


Project Structure

voltex-notes/
├── app/                    # Next.js app router
│   ├── layout.tsx          # Root layout with metadata
│   ├── page.tsx            # Landing homepage
│   ├── notes/page.tsx      # Notes app entry
│   ├── share/[id]/         # Public shared note viewer
│   └── api/                # API routes (marketplace)
├── components/
│   ├── obsidian/           # Core app components
│   │   ├── ObsidianApp.tsx # Root component & state management
│   │   ├── Editor.tsx      # Markdown editor with toolbar
│   │   ├── Sidebar.tsx     # File explorer & search
│   │   ├── GraphView.tsx   # Interactive knowledge graph
│   │   ├── TitleBar.tsx    # App header with navigation
│   │   ├── RightPanel.tsx  # Backlinks & outline panel
│   │   ├── SettingsModal.tsx # Settings with 6 tabs
│   │   ├── MarketplacePanel.tsx # Plugin marketplace
│   │   ├── CommandPalette.tsx   # Ctrl+P command palette
│   │   ├── data.ts         # Types, sample data, utilities
│   │   └── ...
│   └── ui/                 # shadcn/ui components
├── electron/               # Electron main + preload
├── lib/
│   ├── firebase/           # Firebase Auth, Firestore sync, offline fallback
│   └── marketplace/        # Marketplace data & types
├── public/                 # Static assets & logos
├── scripts/                # Build scripts (esbuild for Electron)
└── docs/                   # Documentation (RELEASE.md)

Keyboard Shortcuts

Shortcut Action
Ctrl+N New note
Ctrl+P Command palette
Ctrl+E Toggle edit/preview
Ctrl+F Find & Replace
Ctrl+G Graph view
Ctrl+B Bold
Ctrl+I Italic
[[…]] Link to note

Configuration

Firebase Setup

Firebase powers authentication, real-time sync, and note sharing. The app works fully offline without Firebase, but cloud features require it.

  1. Create a project at console.firebase.google.com
  2. Enable Authentication → Email/Password and Google sign-in providers
  3. Enable Firestore Database in production mode
  4. Deploy Firestore security rules: firebase deploy --only firestore:rules
  5. Register a Web App and copy the config values into .env.local

Environment Variables

Copy the example file and fill in your values:

cp .env.example .env.local
Variable Description
NEXT_PUBLIC_FIREBASE_API_KEY Firebase Web API key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN e.g. my-project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID Firebase project ID
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET e.g. my-project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID Cloud Messaging sender ID
NEXT_PUBLIC_FIREBASE_APP_ID Firebase app ID

Deployment

Deploy to Vercel

  1. Push the repo to GitHub
  2. Import the project at vercel.com/new
  3. Add the Firebase environment variables in Settings → Environment Variables
  4. Deploy — Vercel auto-detects Next.js

Deploy with Vercel

Custom Domain

  1. In Vercel, go to Settings → Domains
  2. Add your domain (e.g. voltex.devlune.in)
  3. Configure DNS at your registrar:
    • CNAMEcname.vercel-dns.com (for subdomains)
    • A76.76.21.21 (for apex domains)
  4. Vercel provisions an SSL certificate automatically

Contributing

Contributions are welcome! Please read the contributing guidelines before submitting a PR.

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

Development Guidelines

  • Follow the existing code style
  • Use TypeScript for all new code
  • Components go in components/obsidian/
  • Keep state management in ObsidianApp.tsx
  • Test on both desktop and mobile viewports

License

This project is licensed under the MIT License — see the LICENSE file for details.


Acknowledgments


Built by DevLune Studios

DevLune Studios

Voltex Notes is a project by DevLune Studios — a software studio crafting open-source tools, Android apps, and full-stack platforms.


⚡ Voltex Notes — voltage + vortex — where sparks spiral
Crafted with care by DevLune Studios

About

⚡ Open-source knowledge base with graph view, markdown editing, cloud sync & plugin ecosystem — built with Next.js

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors