🪶 Momo
"Steal your time back."
Momo is a task management app built for people who struggle with avoidance, procrastination, and the overwhelming weight of everyday tasks. Not a power-user productivity suite — a quiet, daily companion that asks only one thing of you: one small step, today.
Features
Daily Quest
One task per day, picked for you — energy-aware, with an emotional closure quote on completion.
Focus Mode
Distraction-free view: only your quest and short tasks. Nothing else.
5-Minute Mode
Only have a few minutes? See just the tasks you can finish right now.
Topics & Subtasks
Group related tasks. Drag-and-drop reordering, break-down into smaller steps.
Sequential Topics
Turn a topic into an ordered chain: only the first still-open task is quest-eligible. Drag & drop sets the order.
Topic Templates
Skip the blank page: import Moving, Tax Return, Workout Routine or the Household chores as a fully populated topic in one click.
Snooze Tasks
Pause anything you're not ready for. It comes back when you're ready.
Recurring Tasks
Weekly laundry, monthly cleaning. Set it and forget it.
Habit Tracker
A GitHub-style year grid for every recurring task. Every green square is a completion, and a per-habit streak counter shows how long you have been consistent — in days, weeks, or months. Read the guide →
Gamification
Coins, streaks (with monthly Cassiopeia protection), levels, and 31 achievements across four rarity tiers (Common → Legendary). Secret achievements, coin rewards on unlock, and a dedicated Achievement Gallery. Small wins deserve real celebration.
Wishlist & Budget
Earn coins through tasks, then spend them on things you actually want.
Weekly Review
A Sunday recap of completions, postponements, coins, streak, and top topics.
Multi-Channel Notifications
Browser push, ntfy.sh, Pushover, Telegram, and Email — pick whatever fits your workflow.
Calendar Subscription
Subscribe to your Momo tasks from Google, Apple or Outlook Calendar via a private iCal feed. All-day events, recurring series, one-click rotate or revoke. Read the guide →
Search & Filter
Live search across tasks and wishlist with priority and topic chips.
PWA & Swipe Gestures
Install on your phone like a native app. Swipe to complete or delete on mobile.
Two-Factor Auth
Optional TOTP via any authenticator app plus 10 single-use backup codes, or passkeys (Face ID, Touch ID, Windows Hello, YubiKey). Instance-wide enforcement. TOTP · Passkeys
Passwordless Login
Register a passkey and sign in with just your fingerprint, face or device PIN — no OAuth round-trip required. Read the guide →
REST API & API Keys
Personal access tokens, read-only keys, OpenAPI 3.1 spec, Swagger UI at /api-docs.
Alexa Skill
Add tasks and check your quest by voice. Works with any Echo device.
Multilingual
German, English, French, Spanish, and Dutch UI. Drop in a JSON file to add any language.
Self-Hostable
Docker Compose or Kubernetes. Migrations run automatically. Your data, your server.
GDPR-Friendly
Full data export, account deletion, configurable legal pages — built in.
Quick Start
git clone https://github.com/jp1337/momo.git
cd momo
cp .env.example .env.local
# Edit .env.local with your credentials
docker compose up -d
Open http://localhost:3000 — done. Database migrations run automatically on first start.
Full getting started guide · Explore all features →
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS v4 |
| Auth | Auth.js v5 (GitHub, Discord, Google, Microsoft (private accounts), OIDC, account linking) |
| Database | PostgreSQL 18 + Drizzle ORM (auto-migrations) |
| Notifications | Web Push (VAPID), ntfy.sh, Pushover, Telegram Bot API, SMTP via nodemailer |
| API | OpenAPI 3.1.0, Personal Access Tokens, Swagger UI at /api-docs |
| Voice | Alexa Skill (AWS Lambda) with automatic Account Linking |
| i18n | next-intl (German, English, French, Spanish, Dutch) |
| Container | Docker + Kubernetes (manifests included) |
What’s New
Settings reorganised into sub-pages — The settings area is now divided into six clearly labelled tabs: Account, Notifications, Quest & Tasks, Security, Integrations, and Data & Privacy. On desktop a persistent sidebar shows your current section; on mobile it collapses to a horizontal scrollable tab strip. Each tab loads only the data it needs, and /settings now redirects to /settings/account automatically. See Features →
Cassiopeia — The “Streak Shield” has been renamed to Cassiopeia ✨. Same protection, new name: once per calendar month, Cassiopeia automatically saves your streak when you miss exactly one day. The dashboard shows ✨ next to your streak when Cassiopeia is still available this month. See Features →
Daily Quest consistency fix — The morning briefing and the app dashboard now always show the same Daily Quest. Previously, users in non-UTC timezones could see a different quest in their notification than in the app after UTC midnight. Fixed by passing the user’s stored timezone to the quest selection algorithm on every call.
Individual Recurring-Task Reminders — each recurring task that is due today gets its own notification instead of being bundled into a single “due today” list. If three or fewer recurring tasks are due, each one pops up separately so you can act on them individually. More than three? They’re bundled into a summary to keep your notification shade clean. Opt in under Settings → Notifications. See Features →
Onboarding Wizard — new users are greeted by a short 4-step guided setup: learn the core concepts (Quest, Energy, Coins, Streaks), create a first topic, add a few tasks, and optionally enable push notifications. Every step can be skipped, and the wizard never appears again once completed. Existing accounts are not affected. See Features →
Vacation Mode — going on holiday or feeling under the weather? Pause all recurring tasks at once from Settings → Vacation Mode. Your habit streaks stay protected, due dates shift automatically when you return, and paused tasks vanish from quests, notifications, and your calendar feed. A daily background job ends vacation on the chosen date — or end it early with one click. See Features →
Bulk Actions — select multiple tasks at once, then batch-delete, complete, move to a topic, or set priority from a floating action bar at the bottom of the screen. Useful for cleanup after a template import or inbox triage. Bulk-complete deliberately skips gamification — it’s a cleanup tool, not a coin shortcut. See Features →
Morning Briefing — one daily digest instead of many pings. Opt in under Settings → Morning Briefing to receive your quest, due tasks, streak, and new achievements in a single message at your chosen time (default 08:00). Replaces the individual quest and due-today reminders automatically. See Features →
“Due today” reminder — an optional push that fires at your normal daily notification time and lists the tasks actually due today. Snoozed tasks are excluded, recurring tasks are covered via their next occurrence, and — most importantly — the reminder is silent on empty days: no “all clear” pings that train you to swipe notifications away. Works via Web Push, ntfy.sh, Pushover, Telegram, or Email. Toggle it on under Settings → Notifications. See Features →
Passkeys (WebAuthn) — sign in to Momo without a password. Register your Face ID, Touch ID, Windows Hello, Android biometrics or a YubiKey from Settings → Two-factor authentication → Passkeys, and the next time you visit /login just tap Sign in with a passkey. The same passkey doubles as your second factor — pick whichever is more convenient at sign-in time. Methods can be mixed: TOTP, passkey, both, neither. Read the guide →
Two-Factor Authentication (TOTP) — optional second factor via any authenticator app (Aegis, 2FAS, Google Authenticator, Authy, 1Password, Bitwarden, …). Setup wizard with QR code, 10 single-use backup codes, encrypted at rest with AES-256-GCM. Self-hosters can require a second factor for everyone with REQUIRE_2FA=true. Read the guide →
Active Sessions — see every device that is currently signed in to your account under Settings → Active Sessions. Each entry shows browser, OS, IP address, and timestamps. Revoke individual sessions or sign out all other devices with one click. See Features →
Login notifications for new devices — opt-in security alert that fires on all your configured channels the moment a login from an unknown device is detected. Uses a fingerprint of the browser’s User-Agent and IP — no external service required. Enable the “Notify on new devices” toggle under Settings → Active Sessions. See Features →
Microsoft Sign In — log in with your personal Microsoft account (Outlook.com, Hotmail, Live, Xbox). Work / school / Microsoft 365 accounts are intentionally not supported — Momo pins the tenant to consumers. Setup guide →
Outbound Webhooks — connect Momo to Zapier, Make, n8n, Home Assistant, or any custom backend. Configure up to 10 HTTPS endpoints and receive task lifecycle events (task.created, task.completed, task.deleted, task.updated) as signed JSON POSTs. Each endpoint can subscribe to specific events and optionally verify requests with HMAC-SHA256 signatures. See Features →
Alexa Skill — “Alexa, open Momo. Add dentist appointment.” Add tasks, hear your Daily Quest, manage your wishlist by voice. Account linking is automatic — tap “Link Account” in the Alexa app and an API key is created for you. Lambda code lives in alexa-skill/. Read the guide →
Telegram & Email notification channels — Push notifications via a personal Telegram bot (Bot Token + Chat ID, free) or by email (instance-wide SMTP). Both join ntfy.sh and Pushover under Settings → Additional Notification Channels. The email channel uses a stylised newsletter template with a tappable “Open Momo” button. See Features →
Energy-aware Daily Quest — now with auto re-roll — the “How are you feeling today?” check-in is back where it belongs: a permanent card at the top of your dashboard. When you tell Momo your energy, it can automatically swap the daily quest for a better-matching task (with an Undo link in case you liked the original). Topics can define a default energy level that new tasks inherit, Quick Wins and 5-Minute Mode both sort by energy fit, and a new block on /stats shows your weekly energy pattern. See Features →
Focus Mode — A distraction-free view at /focus that shows only your Daily Quest and quick wins (≤ 15 min). All celebrations and animations still fire — just without the noise around them. See Features →
5-Minute Mode — A focused page at /quick showing only tasks with a 5-minute estimate. Perfect for those gaps between meetings. See Features →
Weekly Review — Visit /review for a Sunday recap: completions vs last week, postponements, coins earned, streak, and top topics. An optional Sunday-evening push notification ships with the highlights. See Features →
Snooze tasks — Click the clock icon to pause a task until tomorrow, next week, next month, or a custom date. Snoozed tasks vanish from your list and Daily Quest until the date passes. See Features →
Emotional Closure — After completing your Daily Quest, Momo shows a short Michael-Ende quote or affirmation. Toggleable in Settings, available in all three languages. See Features →
The Name
Named after Momo by Michael Ende — a story about a small girl who fights the Grey Gentlemen stealing people’s time. When anxiety turns every task into a wall, Momo asks you to do just one thing. That’s enough for today.