A personal productivity ecosystem designed to be your second brain.
Zero Inertia is built on a simple philosophy: staying in motion is easier than starting from rest. By combining task management, knowledge organization, progress visualization, and achievement tracking into one unified system, it helps you maintain momentum in both your daily tasks and long-term personal growth.
Whether you're planning your day, organizing knowledge in markdown notes, tracking your reading and gaming achievements, or visualizing your productivity streaks, Zero Inertia keeps everything connected and accessible. No more context switching between different apps or losing track of what matters.
Manage Your Work Create tasks with rich descriptions, organize them into projects and sections, set priorities and due dates, and build checklists. Recurring tasks handle your routines automatically, while the Kanban board gives you a visual overview of everything in progress.
Build Your Knowledge Base Write markdown notes with full syntax highlighting, organize them in hierarchical folders, and search across everything instantly. Whether it's meeting notes, research, or personal journals, your knowledge stays structured and findable.
Track Your Progress See your productivity streaks on a GitHub-style calendar heatmap. Watch your daily completion stats grow and use visual feedback to maintain motivation. The system celebrates consistency, not perfection.
Log Your Achievements Keep a record of every book you've read, game you've completed, show you've watched, or course you've finished. Rate them, add notes, and build a personal archive of your intellectual and entertainment journey.
Stay Notified Get push notifications for task reminders through Firebase Cloud Messaging, so important deadlines never slip through the cracks.
- Python 3.13+ and Poetry
- Node.js 22+
- PostgreSQL and Redis
- A Firebase project (free tier works fine)
Firebase powers the push notification system. Here's how to set it up:
- Head to the Firebase Console and create a new project
- Enable Cloud Messaging in your project settings
- Generate a service account key (Project Settings → Service Accounts → Generate New Private Key)
- Save it as
backend/firebase-service-account.json - Grab your Firebase web app config from Project Settings → General
- Generate a VAPID key pair in Cloud Messaging → Web Push certificates
cd backend
# Install dependencies
poetry install
poetry shell
# Configure your environment
cp .env.dev.example .env
# Open .env and add your database, Redis, OAuth, JWT, and Firebase credentials
# Set up the database
poetry run alembic upgrade head
# Start the server
poetry run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000The backend will be running at http://localhost:8000
cd frontend
# Install dependencies
npm install
# Configure your environment
cp .env.example .env
# Add your API URL and Firebase configuration
# Build the Firebase service worker
npm run generate-sw
# Start the dev server
npm run devThe app will be available at http://localhost:5173
If you prefer to run PostgreSQL and Redis in containers:
./tools/build-dev.shThen follow the backend and frontend setup steps above.
# Backend tests with coverage
cd backend
poetry run pytest --cov=app
# Frontend tests
cd frontend
npm run test
npm run coverage# Backend linting and type checking
cd backend
poetry run ruff check
poetry run ruff format
poetry run mypy app
# Frontend type checking
cd frontend
npm run type-checkcd backend
# Create a new migration after model changes
poetry run alembic revision --autogenerate -m "description"
# Apply pending migrations
poetry run alembic upgrade head
# Roll back the last migration
poetry run alembic downgrade -1The project includes an automated deployment script:
./tools/deploy.shThis script handles everything: pulling the latest code, backing up the database, building Docker containers, running health checks, and cleaning up resources. The production setup uses Docker Compose with FastAPI, Vue.js served through Nginx, PostgreSQL, Redis, and Caddy for automatic HTTPS certificates.
Make sure your .env.prod file is configured with production credentials for the database, Redis, Google OAuth, JWT secrets, and Firebase service account path. The frontend needs production environment variables including the API URL and Firebase configuration with your VAPID public key.
Zero Inertia uses FastAPI and PostgreSQL on the backend, Vue.js 3 with TypeScript on the frontend, Firebase Cloud Messaging for notifications, and Redis for caching. The production deployment runs on Docker with Caddy handling HTTPS termination.
This project is free software licensed under the GNU General Public License v3.0.