Build habits. Track progress. Achieve goals.
πΒ Open-SourceΒ | πΒ Cross-Platform | π― Part-Gamified
Habistat is a free and open-source habit tracker productivity toolβan alternative to apps like Everyday, Habitify, and Habitica. It is designed with privacy, transparency, and ease of use in mind. Built with Tauri and Svelte, it runs natively on Windows, macOS, Android, and iOS, and is fully accessible from any modern browser. You can track daily routines with either a points system or simple progress logs. All data can be exported or imported as JSON, giving you complete control. Build steady habits one day at a time, and let meaningful change grow naturally. πΏ
Tired of bloated apps and shaky privacy policies? Habistat keeps it simple. Inspired by "Don't Break the Chain," it turns habit tracking into a daily checkmark ritual.
[!NOTE] This app is currently in its alpha development stage and may not be stable until future versions. The currently available versions are Windows and web, with other versions coming soon.
Habistat Tracker includes a powerful debug system for development and troubleshooting:
# Enable debug levels in your .env.local
VITE_DEBUG_LEVELS="error,warn,info,debug"
VITE_DEBUG_RUNTIME_TOGGLE="true"
import { debugLogger } from '$lib/utils/debug-logger';
// Simple logging
debugLogger.info('User logged in', { userId: '123' });
debugLogger.error('Something went wrong', { error: details });
// Module-specific loggers
const log = getModuleLogger('AuthService');
log.info('Authentication successful', { userId: user.id });
For detailed documentation, see Debug System Documentation.
Clone the repository
git clone https://github.com/your-username/habistat-tracker.git
cd habistat-tracker
Install dependencies
bun install
Set up environment variables
cp .env.example .env.local
# Edit .env.local with your configuration
Initialize the database
bun run db:setup
Start development server
bun run dev
# Development
bun run dev # Start dev server on port 3001
bun run check # Type-check with svelte-check
bun run check:watch # Type-check in watch mode
# Code Quality
bun run lint # Lint with Biome
bun run format # Format with Biome + Prettier
bun run format:check # Check formatting
# Database (SQLite + Drizzle ORM)
bun run db:generate # Generate migrations from schema
bun run db:migrate # Apply migrations
bun run db:push # Push schema changes directly
bun run db:studio # Open Drizzle Studio
bun run db:reset # Reset database (development only)
bun run db:setup # Generate + migrate (initial setup)
# Tauri (Desktop App)
bun run tauri dev # Run Tauri development build
bun run tauri build # Build Tauri production app
# Build
bun run build # Build for production
bun run preview # Preview production build
Habistat uses a hybrid local-first architecture:
# Clerk Authentication
PUBLIC_CLERK_PUBLISHABLE_KEY="your_publishable_key"
CLERK_SECRET_KEY="your_secret_key"
# Convex Configuration
VITE_CONVEX_URL="https://your-project.convex.cloud"
CONVEX_DEPLOYMENT="your-project-name"
CLERK_JWT_ISSUER_DOMAIN="https://your-clerk-domain.clerk.accounts.dev"
# Debug levels (comma-separated): error,warn,info,debug,trace
VITE_DEBUG_LEVELS="error,warn,info"
# Debug options
VITE_DEBUG_RUNTIME_TOGGLE="true"
VITE_DEBUG_INCLUDE_TIMESTAMPS="true"
VITE_DEBUG_INCLUDE_CALLER_INFO="false"
VITE_DEBUG_MAX_HISTORY_SIZE="1000"
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.
For issues and questions:
Built with β€οΈ using Svelte, Tauri, and modern web technologies.
Habistat is built with a modern and robust technology stack:
habistat/
βββ docs/ # Documentation & development guides
βββ src/ # Main SvelteKit application
β βββ convex/ # Convex backend functions & schema
β βββ i18n/ # Internationalization files
β βββ lib/
β β βββ components/ # Svelte UI components
β β βββ db/ # Database client & schema
β β βββ hooks/ # Custom Svelte hooks
β β βββ services/ # Business logic & data services
β β βββ stores/ # Svelte stores for state management
β β βββ utils/ # Utility functions
β βββ params/ # SvelteKit parameter matchers
β βββ routes/ # SvelteKit pages & API routes
β β βββ dashboard/ # Main dashboard pages
β β βββ settings/ # Settings page
β β βββ stats/ # Statistics page
β β βββ premium/ # Premium features page
β βββ app.html # Main HTML template
β βββ hooks.{client,server}.ts # SvelteKit hooks
βββ src-tauri/ # Tauri Rust backend
β βββ src/ # Rust source code
β βββ capabilities/ # Tauri capabilities configuration
β βββ Cargo.toml # Rust dependencies
βββ static/ # Static assets (icons, images, etc.)
βββ scripts/ # Build and utility scripts
To view the complete file structure, refer to file-structure.txt.
This project is licensed under the GNU AGPL v3. See the LICENSE file for details.
Happy tracking! π