A comprehensive, modular Electron application template system for building consistent, professional desktop applications with modern web technologies.
- π· TypeScript-first - Complete type safety throughout the stack
- β‘ Modern Build System - Vite + Electron Builder for fast development and optimized builds
- π¨ Design System - Tailwind CSS with custom theme and dark mode support
- π± Responsive Layout - Professional desktop UI patterns with collapsible sidebars
- π§ Universal Settings - Theme, accessibility, window management, and user preferences
- π Multi-platform - Windows, macOS, and Linux builds with GitHub Actions CI/CD
- π§© Pick Your Stack - Include only the modules you need
- π Plugin System - Clean integration patterns for extending functionality
- π¦ Self-contained Modules - Each module is independently developed and tested
- π Hot Reload - Fast development experience across all modules
- π€ AI Integration - Multi-provider support (OpenAI, Claude, Gemini, Ollama)
- ποΈ Database - SQLite integration with migrations and backups
- π Vector Search - Local semantic search with LanceDB
- π Data Visualization - Chart.js, D3.js, and Recharts integration
- π Documentation - Markdown rendering with search and interactive tours
- π Notifications - Toast, system, and progress notifications
- β¨οΈ Shortcuts - Comprehensive keyboard shortcut management
- π Auto-Updates - Built-in update system with rollback support
- π€ Import/Export - Multiple format support with drag-drop interface
electron-template/
βββ packages/ # Core modules
β βββ core/ # Base Electron + React setup
β βββ settings/ # Universal settings system
β βββ ai/ # AI service integration
β βββ database/ # SQLite database
β βββ vector-search/ # Semantic search
β βββ charts/ # Data visualization
β βββ docs/ # Documentation system
β βββ notifications/ # Notification system
β βββ shortcuts/ # Keyboard shortcuts
β βββ updater/ # Auto-update system
β βββ import-export/ # Data import/export
βββ templates/ # Pre-built combinations
β βββ basic/ # Minimal setup
β βββ ai-app/ # AI-focused application
β βββ data-app/ # Data analysis application
β βββ full/ # Complete feature set
βββ tools/ # Development tools
βββ create-app/ # CLI generator
# Create a new AI-powered application
npx @michaelborck/create-electron-kit my-ai-app --template=ai-app
# Create a data analysis application
npx @michaelborck/create-electron-kit my-data-app --template=data-app
# Create with all modules
npx @michaelborck/create-electron-kit my-full-app --template=full
# Start with minimal setup
npx @michaelborck/create-electron-kit my-basic-app --template=basic
# Clone the template
git clone https://github.com/yourusername/electron-template.git my-app
cd my-app
# Install dependencies
npm install
# Start development
npm run dev
Template | Modules Included | Best For |
---|---|---|
basic | Core + Settings | Simple utilities, minimal apps |
ai-app | Core + Settings + AI + Notifications | Chat apps, AI assistants, content tools |
data-app | Core + Settings + Database + Charts + Import/Export | Analytics, reporting, data management |
research-app | Core + AI + Database + Vector Search + Docs | Research tools, knowledge management |
full | All modules | Feature-rich applications, demos |
Module | Description | Key Features |
---|---|---|
@template/core | Base Electron setup | React 18, TypeScript, Vite, Hot reload |
@template/settings | Universal settings | Theme, accessibility, persistence |
Module | Description | Key Features |
---|---|---|
@template/ai | AI service integration | OpenAI, Claude, Gemini, Ollama, streaming |
@template/database | SQLite database | Migrations, backups, type-safe queries |
@template/vector-search | Semantic search | LanceDB, embeddings, similarity search |
@template/charts | Data visualization | Chart.js, D3, Recharts, responsive |
@template/docs | Documentation system | Markdown, search, tours, highlighting |
@template/notifications | Notification system | Toast, system, progress, DND mode |
@template/shortcuts | Keyboard shortcuts | Global/local, recording, conflict detection |
@template/updater | Auto-update system | Background updates, rollback, channels |
@template/import-export | Data import/export | JSON, CSV, Excel, drag-drop |
- Node.js 18+
- npm 9+
- Git
# Clone the repository
git clone https://github.com/yourusername/electron-template.git
cd electron-template
# Install dependencies
npm install
# Start development mode
npm run dev
# Development
npm run dev # Start development servers
npm run dev:web # Web-only development
npm run dev:electron # Electron development
# Building
npm run build # Build all packages
npm run build:packages # Build packages only
npm run build:templates # Build template combinations
# Platform-specific builds
npm run build:win # Build for Windows
npm run build:mac # Build for macOS
npm run build:linux # Build for Linux
# Quality assurance
npm run test # Run all tests
npm run test:unit # Unit tests only
npm run test:e2e # End-to-end tests
npm run lint # ESLint check
npm run lint:fix # Fix linting issues
npm run type-check # TypeScript check
npm run format # Prettier formatting
# Utilities
npm run clean # Clean build artifacts
npm run reset # Reset all dependencies
- USAGE.md - Comprehensive usage guide with examples
- ACKNOWLEDGMENTS.md - Open source attributions
- Module Documentation - Each package includes detailed README
- Example Applications - See
templates/
directory for working examples
import React from 'react'
import {
SettingsProvider,
AIProvider,
DatabaseProvider,
NotificationProvider
} from '@template/core'
import { ChatInterface } from './components/ChatInterface'
function App() {
return (
<SettingsProvider>
<DatabaseProvider>
<AIProvider>
<NotificationProvider>
<div className="app">
<ChatInterface />
</div>
</NotificationProvider>
</AIProvider>
</DatabaseProvider>
</SettingsProvider>
)
}
export default App
GitHub Actions automatically builds for all platforms when you push tags:
git tag v1.0.0
git push origin v1.0.0
# Build for current platform
npm run build
# Build for all platforms
npm run build:all
# Build and publish
npm run release
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes and add tests
- Ensure all tests pass:
npm run test
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
- TypeScript: All code must be properly typed
- Testing: Add tests for new features
- Documentation: Update relevant documentation
- Accessibility: Follow WCAG 2.1 AA guidelines
- Performance: Consider bundle size and runtime performance
Build fails with native dependencies:
npm run electron:rebuild
TypeScript errors:
npm run type-check
Module resolution issues:
npm run clean && npm install
For more troubleshooting help, see USAGE.md.
This project is licensed under the MIT License - see the LICENSE file for details.
This template system builds upon many excellent open source projects. See ACKNOWLEDGMENTS.md for the complete list of attributions.
Built with β€οΈ for the Electron community