A desktop application combining note-taking, learning management, and AI tools browser functionality. Built with Electron, Svelte, SQLite, and Rust.
- Interactive lessons with executable code blocks
- Progress tracking through learning materials
- JavaScript code playground for hands-on practice
- Notion-like note-taking interface
- Block-based document editing
- Local-first storage with SQLite
- Mutation tracking for all changes
- Integrated browser for multiple AI platforms
- Session management for different AI tools
- Tabbed interface for easy switching
- Persistent sessions across app restarts
Supported AI Tools:
- ChatGPT
- Claude
- Gemini
- Copilot
- DeepSeek
- Perplexity
- Grok
- NotebookLM
- v0
- Mistral
- And more...
-
Main Process (
src/main/)index.js- Application entry pointwindow.js- Window managementbackend.js- Rust backend lifecycle managementtabs.js- BrowserView tab managementdatabase/- SQLite database layeripc/- IPC handlers for documents, blocks, lessons
-
Renderer (
src/renderer/)- Svelte components for UI
- Stores for state management
- Three main views: Learning, Notes, AI Tools
- REST API server running on
localhost:3001 - SQLite database for AI tool sessions
- Manages tool definitions and session persistence
- Node.js 18+
- Rust (for building the backend)
- npm or yarn
# Install dependencies
npm install
# Build the Rust backend (first time only)
npm run build-backend# Run in development mode
npm run dev
# This will:
# 1. Build the Rust backend (if needed)
# 2. Start Vite dev server
# 3. Launch Electron app# Build frontend
npm run build
# Build backend (if not already built)
npm run build-backend
# Run production app
npm start
# Package for distribution
npm run package- documents - User notes and pages
- blocks - Content blocks within documents
- lessons - Learning curriculum
- learning_blocks - Lesson content
- user_progress - Learning progress tracking
- tools - AI platform definitions
- tool_sessions - Active and historical sessions
- Context isolation enabled
- No
nodeIntegrationin renderer - Sandboxed BrowserViews for AI tools
- Each AI tool session runs in isolated partition
- Electron - Desktop framework
- Svelte 4 - Reactive UI framework
- Vite - Build tool and dev server
- better-sqlite3 - SQLite database
- Rust + Axum - Backend API server
- Tailwind CSS - Styling
note-me/
├── src/
│ ├── main/ # Electron main process
│ │ ├── database/ # SQLite layer
│ │ ├── ipc/ # IPC handlers
│ │ ├── backend.js # Rust backend manager
│ │ └── tabs.js # BrowserView management
│ ├── preload/ # Preload scripts
│ └── renderer/ # Svelte frontend
│ ├── components/ # UI components
│ └── stores/ # State management
├── backend/ # Rust backend server
│ └── src/
│ ├── main.rs # Axum server
│ ├── db.rs # Database layer
│ └── commands.rs # API handlers
└── static/ # AI tool icons
Main component for the AI tools browser, displays tool bookmarks and manages tabs.
Shows available AI tools and active sessions with tab switching.
Interactive code execution for learning (JavaScript only, no external AI calls).
- ✅ Integrated Rust backend for AI tool management
- ✅ BrowserView-based tab system
- ✅ Session persistence
- ✅ Tool icons and definitions
- ✅ Note-taking functionality
- ✅ Learning management system
- Sync sessions across devices
- Custom tool additions via UI
- Export notes as markdown
- Python code execution
- Quiz blocks with validation
- Multi-user profiles
This is a combined learning and productivity project. Feel free to fork and experiment!
ISC