Modern Spreadsheet Editor Powered by SQLite
A beautiful, fast, and private alternative to Google Sheets that runs completely offline on your desktop.
Keste is a desktop spreadsheet editor that uses SQLite as its storage format instead of traditional XLSX files. Think Google Sheets, but:
- ✅ 100% offline - Your data never leaves your device
- ✅ SQLite-powered - Blazing fast performance with database efficiency
- ✅ Privacy-first - No tracking, no cloud, no data collection
- ✅ Cross-platform - Works on Windows, macOS, and Linux
- Performance: Query and filter millions of rows instantly
- Reliability: ACID-compliant transactions ensure data integrity
- Efficiency: Compact storage with built-in compression
- Flexibility: Direct SQL access to your spreadsheet data
- Standard: Widely supported, battle-tested database format
-
📊 Full Spreadsheet Editor
- Create new spreadsheets from scratch
- Import existing Excel (.xlsx) files
- Multiple sheets per workbook
- Familiar grid interface
-
💾 File Format
- Save as
.kst(Keste format - SQLite database) - Import Excel
.xlsxfiles - Export to Excel
.xlsx(coming soon)
- Save as
-
🎨 Modern UI
- Beautiful interface with shadcn/ui
- Smooth animations with Framer Motion
- Responsive and intuitive design
- Google Sheets-inspired UX
-
🔍 Data Preview
- Virtualized grid for large datasets
- Formula display
- Cell styling visualization
- Sheet navigation
-
🚀 Performance
- Handle millions of cells efficiently
- Instant save and load
- Minimal memory footprint
- No lag, no stuttering
-
✏️ Cell Editing
- Click-to-edit cells
- Formula editing
- Copy/paste support
- Undo/redo
-
🎯 Full Excel Compatibility
- Export to valid .xlsx files
- Preserve all Excel features
- Bi-directional conversion
-
📐 Advanced Features
- Formulas and calculations
- Charts and graphs
- Conditional formatting
- Data validation
- Pivot tables
Complete documentation is available in docs/:
- 📘 Setup Guide - Installation & development setup
- 🏗️ Architecture - System design & technical details
- 🔧 Technical Debt - Known issues & improvements
- 🤝 Contributing - How to contribute
- 📋 Changelog - Version history
- 🚀 Product Roadmap - Future features
- Node.js 20+ (Download)
- Rust stable (Install)
- Platform-specific requirements:
- Windows: Visual Studio Build Tools
- macOS: Xcode Command Line Tools
- Linux: See docs/SETUP.md
- Clone the repository:
git clone https://github.com/stukenov/keste.git
cd keste- Install dependencies:
npm install- Run in development mode:
npm run tauri devnpm run tauri buildOutputs:
- Windows:
src-tauri/target/release/keste.exe - macOS:
src-tauri/target/release/bundle/macos/ - Linux:
src-tauri/target/release/bundle/appimage/
- Launch Keste
- Click "New Spreadsheet"
- Start editing (editing features coming in v0.2.0)
- Launch Keste
- Click "Import File" or drag & drop an
.xlsxfile - Your data will be converted to Keste format
- Save as
.kstto preserve in native format
- Save as .kst: Click "Save .kst" to save in Keste's native format (SQLite)
- Export to Excel: Click "Export Excel" to create a standard
.xlsxfile (coming soon)
Keste uses SQLite as its native file format. Each .kst file is a valid SQLite database containing:
| Table | Description |
|---|---|
workbook |
Workbook metadata |
sheet |
Sheet information |
cell |
Cell data (values, formulas, types) |
shared_string |
Shared string pool |
numfmt |
Number format definitions |
style |
Cell styles and formatting |
merged_range |
Merged cell ranges |
row_prop |
Row properties |
col_prop |
Column properties |
defined_name |
Named ranges |
sheet_view |
View settings (freeze panes, etc.) |
Benefits:
- Query your spreadsheet with SQL
- Compact and efficient storage
- ACID-compliant data integrity
- Direct database access when needed
- React 18 - UI framework
- TypeScript 5 - Type safety
- Vite 5 - Build tool
- Tailwind CSS - Styling
- shadcn/ui - Component library
- Framer Motion - Animations
- Lucide Icons - Icon set
- react-window - Virtual scrolling
- Rust - Systems programming
- Tauri 1.5 - Desktop framework
- rusqlite 0.30 - SQLite bindings
- serde - Serialization
- Custom TypeScript implementation
- ZIP reader with DecompressionStream
- SAX-style XML parser
- Memory-efficient streaming
- Click-to-edit cells
- Formula support
- Copy/paste functionality
- Keyboard navigation
- Generate valid .xlsx files
- Preserve formatting
- Support all Excel features
- Charts and graphs
- Conditional formatting
- Data validation
- Pivot tables
- Full Excel compatibility
- Performance optimizations
- Comprehensive testing
- User documentation
- ✅ 100% Offline - No internet connection required or used
- ✅ No Telemetry - Zero data collection or tracking
- ✅ Local Storage - All files stay on your device
- ✅ No Cloud - Your data never touches external servers
- ✅ Sandboxed - Tauri's security features enabled
- ✅ Open Source - Fully auditable code
Keste is designed to be:
- Beautiful - Modern, clean interface that's pleasant to use
- Fast - Instant response, no lag, smooth animations
- Simple - Familiar interface inspired by Google Sheets
- Powerful - SQLite backend provides database-level capabilities
- Private - Your data belongs to you, period
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 Saken Tukenov
- Built with Tauri
- UI components from shadcn/ui
- Icons from Lucide
- Animations by Framer Motion
- Database powered by SQLite
- 🐛 Bug Reports: Open an issue
- 💡 Feature Requests: Start a discussion
- 📖 Documentation: See docs/
Made with ❤️ using Tauri, React, Rust, and SQLite
Taking back control of your spreadsheets, one cell at a time.