Skip to content

sitle/lumina

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

91 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Lumina

Lumina License Platform

AI-powered block-based editor with end-to-end encryption, built with React, TypeScript, and Tauri.

Features β€’ Installation β€’ Usage β€’ Development

πŸ“Έ Screenshot

Lumina Editor Screenshot

✨ Features

πŸ“ Block-Based Editor

  • Rich Block Types: Paragraph, headings (H1-H3), bullet lists, numbered lists, todo lists, code blocks, quotes
  • Table of Contents: Automatic TOC generation from headings with smooth navigation and toggle visibility (v2.13)
  • Slash Commands: Quick block type selection with / command
  • Rich Text Formatting: Bold, italic, underline, strikethrough, inline code, and clickable links
  • Drag & Drop: Reorder blocks intuitively
  • List Indentation: Tab/Shift+Tab for nested lists (up to 4 levels)
  • Keyboard Shortcuts: Efficient editing with familiar shortcuts

πŸ” Security & Encryption

  • End-to-End Encryption: AES-256-GCM encryption for documents
  • Master Password: PBKDF2 key derivation with 100,000 iterations
  • Session Management: Auto-lock with configurable timeout
  • Privacy First: Password stored in memory only, never persisted

πŸ€– AI Integration

  • Multiple Providers: Support for OpenAI, Anthropic, Ollama, and custom providers
  • AI Templates: Create and manage reusable generation templates
  • Content Generation: Generate text with AI directly in the editor
  • Variable-Based Prompts: Dynamic template system with custom variables

🌍 Internationalization

  • Multi-Language: Full support for English and French
  • Instant Switching: Change language without page reload
  • Complete Coverage: All UI elements fully translated

πŸ“ Organization & File Management

  • Hierarchical Folders: Organize documents in folders and subfolders
  • Subfolder Creation: Create complete folder hierarchies with nested subfolders (v2.11)
  • Document Moving: Easily move documents between folders with visual folder picker (v2.11)
  • File Explorer Modal: Full-screen file browser with grid/list views, advanced search and filtering (v2.12)
  • Tags System: Categorize documents with custom tags
  • Favorites: Star important documents for quick access
  • Smart Search: Real-time search across all documents
  • Default Draft Folder: New documents automatically organized

πŸ’Ύ Data Management

  • Local Storage: All data stored locally using IndexedDB
  • Multiple Documents: Organize your work in separate documents
  • Markdown Import/Export: Full markdown support
  • DOCX Export/Import: Export to Microsoft Word format and import HTML/DOCX files (v2.10)
  • PDF Export: Generate PDF documents for sharing
  • Auto-Save: Changes saved automatically
  • Welcome Document: Interactive onboarding guide showcasing all features

πŸ–₯️ Desktop Application

  • Cross-Platform: Native apps for Windows, macOS (Intel & ARM), and Linux
  • Offline-First: Works completely offline
  • Fast & Lightweight: Built with Tauri for minimal resource usage

πŸš€ Installation

Pre-built Binaries

Download the latest release for your platform from the Releases page:

  • Windows: lumina-x86_64-pc-windows-msvc.exe
  • macOS (Intel): lumina-x86_64-apple-darwin.app
  • macOS (ARM): lumina-aarch64-apple-darwin.app
  • Linux: lumina-x86_64-unknown-linux-gnu.AppImage

Build from Source

# Clone the repository
git clone https://github.com/sitle/lumina.git
cd lumina

# Install dependencies
npm install

# Run in development mode
npm run tauri:dev

# Build for production
npm run tauri:build

πŸ“– Usage

Basic Editing

  • Enter: Create new block
  • Backspace: Delete empty block or merge with previous
  • Tab/Shift+Tab: Indent/outdent lists
  • Cmd/Ctrl + B: Bold text
  • Cmd/Ctrl + I: Italic text
  • Cmd/Ctrl + U: Underline text
  • Cmd/Ctrl + K: Insert link

Slash Commands

Type / to open the command menu:

  • /h1, /h2, /h3: Headings
  • /bullet: Bullet list
  • /numbered: Numbered list
  • /todo: Todo list with checkboxes
  • /code: Code block
  • /quote: Quote block
  • /divider: Horizontal divider

Markdown Shortcuts

  • # , ## , ### : Headings
  • - , * : Bullet list
  • 1. : Numbered list
  • - [ ]: Todo list (unchecked)
  • - [x]: Todo list (checked)
  • `: Code block
  • > : Quote

Document Encryption

  1. Go to Settings β†’ Security
  2. Click "Encrypt All Documents"
  3. Set a master password
  4. Your documents are now encrypted with AES-256-GCM
  5. Use the Lock/Unlock button to secure your session

πŸ—οΈ Architecture

Tech Stack

  • Frontend: React 18 + TypeScript 5
  • UI Framework: Tailwind CSS + shadcn/ui
  • Desktop Framework: Tauri v2
  • Database: IndexedDB (via Dexie.js)
  • Encryption: Web Crypto API
  • Build Tool: Vite

Project Structure

/lumina
β”œβ”€β”€ src/                      # React frontend
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ blocks/          # Block components
β”‚   β”‚   β”œβ”€β”€ editor/          # Editor components
β”‚   β”‚   └── ui/              # UI components (shadcn)
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ blocks/          # Block system logic
β”‚   β”‚   β”œβ”€β”€ editor/          # Editor context & logic
β”‚   β”‚   β”œβ”€β”€ encryption/      # Encryption services
β”‚   β”‚   β”œβ”€β”€ ai/              # AI integration
β”‚   β”‚   β”œβ”€β”€ markdown/        # Markdown converter
β”‚   β”‚   └── db/              # Database services
β”‚   └── types/               # TypeScript definitions
β”œβ”€β”€ src-tauri/               # Tauri backend
β”‚   β”œβ”€β”€ src/                 # Rust code
β”‚   └── icons/               # Application icons
└── .github/workflows/       # CI/CD pipelines

πŸ› οΈ Development

Prerequisites

  • Node.js 18+
  • Rust 1.70+
  • Platform-specific dependencies (see Tauri docs)

Development Commands

npm run dev              # Start Vite dev server
npm run tauri:dev        # Start Tauri app in dev mode
npm run build            # Build frontend
npm run tauri:build      # Build Tauri app for production
npm run lint             # Run ESLint

Automated Releases

The project uses GitHub Actions to automatically build and release for all platforms.

To create a new release:

  1. Update version in package.json and src-tauri/tauri.conf.json
  2. Commit the changes:
    git add package.json src-tauri/tauri.conf.json
    git commit -m "chore: bump version to X.Y.Z"
  3. Create and push a version tag:
    git tag vX.Y.Z
    git push origin vX.Y.Z
  4. GitHub Actions will automatically:
    • Build for macOS (Universal binary - Intel + ARM)
    • Build for Windows (x64)
    • Build for Linux (AppImage)
    • Create a GitHub Release with all binaries
    • Upload all artifacts to the release

Monitor the build:

gh run watch
# or visit: https://github.com/sitle/lumina/actions

The release will be available at: https://github.com/sitle/lumina/releases/tag/vX.Y.Z

Adding New Features

  1. New Block Type:

    • Add type to src/types/block.ts
    • Register in src/lib/blocks/block-registry.ts
    • Implement rendering in src/components/blocks/BlockComponent.tsx
    • Add markdown conversion in src/lib/markdown/markdown-converter.ts
  2. New AI Provider:

    • Create provider in src/lib/ai/providers/
    • Register in src/lib/ai/ai-service.ts
    • Add settings in src/components/editor/AISettings.tsx

πŸ”’ Security

Lumina takes security seriously:

  • Client-Side Encryption: All encryption happens locally in your browser
  • No Server: No data is sent to external servers
  • Open Source: Transparent codebase for security audits
  • Standard Algorithms: Uses Web Crypto API with AES-256-GCM
  • Key Derivation: PBKDF2 with 100,000 iterations

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“ License

MIT License - see LICENSE file for details.

πŸ™ Acknowledgments


Made with ❀️ by the Lumina Team