A privacy-first, local-first Markdown knowledge base for individuals and teams. Designed for speed, offline functionality, and large-scale vaults (10,000+ notes).
- 📝 Markdown-First: Native Markdown editing with live preview
- 🔗 Bidirectional Links: Connect ideas with
[[wiki-style]]links - 🔙 Backlinks: Automatic discovery of reverse connections
- 📊 Graph View: Visual network of your knowledge connections
- ⚡ Lightning Search: Full-text search across thousands of notes
- 📁 Large Vaults: Optimized for 10,000+ notes without performance loss
- 🔒 Privacy-First: Your data stays on your device
- 💾 Local-First: Full offline functionality
- 🚫 No Cloud Lock-in: Own your data completely
- 🔐 Secure: No telemetry or data collection
- ⚡ Native Performance: Built with Tauri for desktop-class speed
- 🎨 Modern UI: Clean, distraction-free interface
- 🔧 Extensible: Plugin architecture for customization
- 📱 Cross-Platform: Windows, macOS, and Linux support
- Clone the repository
- Install dependencies:
bun install
- Install recommended VS Code extensions (automatic prompt)
# Development
bun run dev # Start development server
bun run build # Build for production
bun run preview # Preview production build
bun run tauri # Tauri-specific commands
# Code Quality
bun run lint # Fix linting issues
bun run lint:check # Check for linting issues
bun run format # Format all files
bun run format:check # Check formatting
bun run quality:fix # Format and lint together
bun run quality:check # Check both formatting and linting
# TypeScript
bun run check # TypeScript type checking
bun run check:watch # Watch mode type checkingBuilt with modern technologies for performance and maintainability:
- Frontend: SvelteKit 2 + TypeScript 5 + Tailwind CSS
- Backend: Tauri v2 + Rust (native performance)
- Storage: Local file system with efficient indexing
- Search: Full-text search engine optimized for large datasets
- Rendering: Native Markdown parsing with syntax highlighting
tektite/
├── src/
│ ├── app/ # Application code with aliases
│ │ ├── components/ # @/components - Reusable UI components
│ │ ├── features/ # @/features - Feature-specific modules
│ │ │ ├── editor/ # Markdown editor functionality
│ │ │ ├── search/ # Full-text search engine
│ │ │ ├── graph/ # Graph view and link analysis
│ │ │ └── vault/ # Vault management and file operations
│ │ ├── lib/ # @/lib - Shared utilities and stores
│ │ ├── styles/ # @/styles - Tailwind CSS styles
│ │ └── utils/ # @/utils - Helper functions
│ ├── routes/ # SvelteKit routes
│ └── app.html # Main HTML template
├── src-tauri/ # Rust backend code
│ ├── src/ # Tauri application logic
│ │ ├── commands/ # Tauri commands (file operations, search)
│ │ ├── search/ # Search engine implementation
│ │ └── vault/ # Vault management
│ └── Cargo.toml # Rust dependencies
├── .vscode/ # VS Code settings
├── eslint.config.js # Modern ESLint configuration
├── prettier.config.js # Prettier with plugins
└── PATH_ALIASES.md # Path alias documentation
- Personal Knowledge Base: Organize thoughts, ideas, and learning
- Research Notes: Connect concepts across different domains
- Project Documentation: Keep project notes and documentation linked
- Daily Journaling: Reflect and connect daily experiences
- Shared Knowledge: Collaborative knowledge base with local-first sync
- Documentation: Technical documentation with cross-references
- Research Collaboration: Share insights while maintaining privacy
- Meeting Notes: Connected meeting notes and action items
This project enforces consistent code style through automated tooling:
- TypeScript-first with strict type checking
- Svelte-specific rules for best practices
- No console statements in production
- Consistent variable naming and usage
- 80-character line limit
- 2-space indentation
- Double quotes for strings
- Trailing commas where valid
- Automatic import sorting
- Tailwind class sorting
Imports are automatically sorted in this order:
- Node modules (
svelte,@tauri-apps/*) - Type imports
- Local aliases (
@/lib,@/utils, etc.) - Relative imports (
./,../)
Clean imports using path aliases:
// Instead of: ../../../app/utils/helper
// Instead of: ../../app/components/Button.svelte
import Button from "@/components/Button.svelte";
// Instead of: ../app/styles/component.css
import "@/styles/component.css";
import { helper } from "@/utils/helper";Available aliases:
@/components→./src/app/components@/features→./src/app/features@/lib→./src/app/lib@/styles→./src/app/styles@/utils→./src/app/utils
Required Extensions:
Code Quality Extensions:
The project includes VS Code settings for automatic formatting on save, ESLint auto-fixing, and import organization.
- Basic Markdown editing
- File system operations
- Project structure and tooling
- Bidirectional linking with
[[]]syntax - Backlinks panel
- Full-text search engine
- Graph view visualization
- Plugin system
- Themes and customization
- Export and import
- Mobile companion app
- Local-first sync
- Team sharing
- Conflict resolution
- Access controls
.githooks/pre-commit.example- Git pre-commit hook setup- API Documentation - Tauri command API reference
- Plugin Development - Guide for creating plugins
- Architecture Overview - Technical architecture details
We welcome contributions! Please see our Contributing Guide for details.
- Ensure code passes quality checks:
bun run quality:check - Format and lint before committing:
bun run quality:fix - Consider setting up the pre-commit hook for automatic checks
MIT License - see LICENSE file for details.
Tektite: Where knowledge connects. Privacy-first, local-first, built for scale.