GitHub ↗

Features

This guide walks you through everything Momo offers. Whether you are just getting started or looking to make the most of a specific feature, you will find practical examples and tips throughout.


Onboarding

When you sign in to Momo for the first time, a short guided wizard helps you get set up:

  1. Welcome — four cards introduce you to Momo’s core concepts: Daily Quest, Energy, Coins, and Streaks.
  2. Create your first topic — a simplified form lets you pick a name, icon, and color for your first topic. Topics group related tasks together (e.g. “Moving”, “Health”, “Side Project”).
  3. Add a few tasks — a quick-add field lets you type task titles and hit Enter. Each task is added to the topic you just created.
  4. Notifications — Momo detects your timezone and offers to enable push notifications so you receive a daily quest reminder.
  5. Celebration moment — a confetti burst and animated amber screen confirm you are ready. Momo redirects to the dashboard after 3 seconds (or immediately when you click the CTA button).

Every step can be skipped — the wizard is a gentle guide, not a gate. Once you finish (or skip through), Momo marks your onboarding as done and you land on the dashboard. The wizard never appears again.

If you signed up before the onboarding feature was added, you will not see the wizard — existing accounts are automatically marked as onboarded.


Tasks

Tasks are the heart of Momo. Every task can carry as much or as little detail as you need.

Creating a task

Click New Task from the dashboard or the task list. You can set:

  • Title — what needs to be done (e.g. “Call the dentist”)
  • Notes — optional extra context or instructions
  • Due date — a specific date you want it done by
  • Estimated time — choose 5, 15, 30, or 60 minutes so you can plan realistically
  • Energy level — tag tasks as High, Medium, or Low energy. Momo uses this to match your daily quest to how you are feeling that day
  • PriorityHigh, Normal, or Someday
  • Topic — optionally group the task under a project (e.g. “Health”)
  • Coins — how many coins completing the task earns (1–10)

Task types

Every task belongs to one of three types:

Type What it does
One-time Appears in the list once. When completed, it is done for good.
Recurring Automatically resets on a schedule you choose. When you complete it, the next due date shifts forward so the task reappears when it is next due. Four schedule types are available — see below.
Daily Eligible Stays in the regular list but is also added to the pool from which Momo draws your daily quest.

Recurrence schedule types

When creating or editing a Recurring task, you can choose from four schedule types:

Type How it works Example
Interval Every N days from your last completion (rolling) “Take vitamins — every 1 day”
Weekday On specific days of the week; pick one or more “Team meeting — every Monday and Wednesday”
Monthly Once a month, same day “Pay rent — 1st of every month”
Yearly Once a year, same date “File taxes — 15 March every year”

For Monthly and Yearly tasks you can also toggle Fixed calendar date:

  • Fixed (on): next due date always advances from the scheduled date — the task stays on the same calendar day regardless of when you actually complete it.
  • Fixed (off) (default): next due date advances from your completion date — more forgiving if you run a few days late.

Completing and undoing tasks

Click a task to mark it complete. Momo awards the coins you set and updates your streak.

Changed your mind? Click the completed task again or use the Undo option — the completion is reversed and the coins are refunded.

Editing and deleting tasks

Every task card has an edit (✎) and a delete (✕) button in the top-right corner. The edit form lets you change any field; delete removes the task permanently.

Assigning a task to a topic

When creating or editing a task, choose a topic from the dropdown. The task then appears in that topic’s detail view as well as the main task list.

Promoting a task to a topic

If a standalone task turns into a bigger project, click the promote (⤴) button on the task card. Momo creates a new topic using the task’s title and moves the task inside it as the first subtask. You can then add more subtasks from the topic detail view.

Breaking a task into subtasks

Click the break-down (🔧) button on any task card to split it into 2–10 smaller subtasks. Momo creates a new topic and populates it with the subtasks you define. The original task is replaced by the topic.

Tip: Use the break-down feature when a task feels too big to start. “Prepare tax return” becomes five small steps, and suddenly the wall is gone.

Bulk actions

When you need to clean up, reorganise, or triage many tasks at once, switch to bulk mode. Click the Select button next to the “New Task” button. Every task now shows a selection checkbox instead of its completion toggle.

Tap checkboxes to pick the tasks you want, or use Select all to grab everything at once. A floating action bar slides up from the bottom of the screen:

  • Complete — marks all selected tasks as done in one go. Recurring tasks are skipped (they have special completion logic). No coins or streak updates are triggered — bulk complete is a cleanup tool, not a shortcut for rewards.
  • Move to topic — opens a dropdown of your topics. Pick one to move all selected tasks into it, or choose No topic to remove them from their current topic.
  • Priority — set all selected tasks to High, Normal, or Someday.
  • Delete — permanently removes all selected tasks after a confirmation prompt.

Click the on the action bar or press Cancel to exit bulk mode without changing anything.

Tip: Bulk actions are especially useful after importing a topic template or when triaging a long inbox of tasks you’ve been collecting.

Search and filter

A search bar and filter chips sit above the task list. Type a keyword to search titles and notes in real time. Use the Priority chips (High, Normal, Someday) or the Topic chips to narrow the list further. Filters combine — you can search for “dentist” while filtering to only High-priority tasks, for example.

When filters are active, Momo shows how many tasks match out of the total. Click Clear filters to reset everything.

The same search and filter bar appears on the Wishlist page, where you can search item titles and filter by priority (Want, Nice to Have, Someday).

5-Minute Mode

When you only have a few minutes to spare, click the 5 Min entry in the sidebar or mobile navigation (the bolt icon). This opens a focused view showing only tasks with a time estimate of 5 minutes or less.

The 5-minute page strips away everything except the tasks you can finish right now — no search bar, no filters, no create button. Complete a task directly from this view and enjoy the same confetti, coin, and level-up animations as the regular task list.

If your dashboard has qualifying tasks, a prominent “I only have 5 minutes” banner appears between the Daily Quest and Quick Wins sections. Click it to jump straight into the mode.

Tip: Set a 5-minute estimate on tiny tasks like “Take out the trash” or “Reply to that email”. They become your go-to list for those moments between meetings.

Focus Mode

When you want to block out everything except what matters right now, switch to Focus Mode. Open it from the sidebar (bullseye icon), the dashboard banner, or the avatar menu.

Focus Mode is designed as a visual sanctuary. When you enter it, the interface shifts to a full-screen, immersive view with ambient amber and forest-green lighting — a deliberate signal that you have left the regular app and entered a focused space. You select up to three tasks to work through, then tackle them one at a time on a centered card.

How it works:

  1. Select phase — choose 1–3 tasks from your open task list. Tasks are sorted by priority then coin value.
  2. Work phase — one task at a time on a full-screen card with a large amber “Done” button and a skip option. Progress dots at the top track how far along you are.
  3. Done phase — a celebration screen shows how many tasks you completed and how many coins you earned.

All completion animations still work — confetti, coins, level-up, and achievements fire normally.

On mobile, Focus Mode replaces the 5-Minute Mode in the bottom navigation bar. On desktop, both are available in the sidebar.

Tip: Use Focus Mode on days when your task list feels overwhelming. The act of selecting just three tasks removes the paralysis that comes from seeing everything at once.

Snooze — pause a task

Sometimes you know a task matters but you don’t want to see it right now. Click the clock icon on any task to snooze it. Momo offers quick options:

  • Tomorrow — hides the task until tomorrow
  • Next week — hides for 7 days
  • In a month — hides for 30 days
  • Pick a date… — choose any future date

Snoozed tasks disappear from the main list, Quick Wins, and the Daily Quest. They move into a collapsible Snoozed section at the bottom of your task list. When the snooze date passes, the task reappears automatically — no action needed.

To wake a task up early, expand the Snoozed section and click the amber clock icon on the task.

Vacation mode — pause all recurring tasks

Going on holiday or feeling under the weather? Vacation mode pauses every recurring task at once so your habit statistics stay clean and your streak is protected.

Open Settings → Quest & Tasks, pick an end date in the Vacation Mode section, and click Start vacation mode. While active:

  • All recurring tasks get a “paused” badge on the Habits page
  • Paused tasks won’t appear as your Daily Quest
  • No “due today” notifications for paused tasks
  • Paused tasks are hidden from your calendar feed
  • Your habit streak counts paused days as successful — no reset

When the end date arrives, a daily background job automatically ends the vacation and shifts every recurring task’s next due date forward by the actual number of paused days. You can also end vacation mode early from the Settings page — Momo adjusts the due dates based on how many days you actually paused, not the originally planned end date.

Swipe gestures on mobile

On a phone or tablet:

  • Swipe right on a task to mark it complete (green background appears)
  • Swipe left on a task to delete it (red background appears)

This makes clearing your list fast even when one hand is busy.


Topics

Topics are project buckets. Group related tasks together so nothing gets lost.

Creating a topic

Click New Topic and set:

  • Title — the project name (e.g. “Move to new apartment”, “Tax Return 2025”)
  • Description — optional context
  • Color — a visual accent shown on the card
  • Icon — an emoji or icon to identify the topic at a glance
  • PriorityHigh, Normal, or Someday
  • Sequential tasks — an opt-in toggle that turns the topic into an ordered sequence (see below)

The topic card

Each topic shows its title, icon, and a count of open and completed tasks at a glance. Edit (✎) and delete (✕) buttons sit in the top-right corner just like task cards.

Topic detail view

Click any topic card to open its detail view. You will see all subtasks grouped under the topic, with the same complete / edit / delete controls as the main task list. You can add new subtasks directly from this view.

The progress bar at the top (e.g. “3 of 7 tasks completed — 42%”) updates live as you complete or undo tasks — no page reload needed.

Reordering tasks (drag & drop)

Inside any topic, active tasks can be reordered by dragging them. A small grip handle (six dots) appears to the left of each task — grab it and drag the task to a new position. The new order is saved automatically.

How it works across devices:

  • Mouse — click and drag the grip handle
  • Touch — press and hold the grip handle for a moment, then drag (the short delay prevents accidental drags while scrolling)
  • Keyboard — tab to the grip handle, press Space to pick up the task, use arrow keys to move it, then press Space again to drop

The order persists across page reloads. If the save fails (e.g. a network hiccup), the tasks snap back to their previous positions.

Only active tasks are reorderable. Snoozed and completed tasks stay in their own sections below. New tasks always appear at the bottom of the list.

Sequential topics

Some projects only make sense in order. You cannot pack the moving boxes before buying them; you cannot file the tax return before gathering the receipts. For these cases, toggle Sequential tasks on the topic.

When a topic is sequential, Momo treats the drag-and-drop order as an implicit dependency chain: only the first still-open task in the topic is eligible to become today’s Daily Quest. Everything after it is quietly held back until earlier tasks are done. No explicit dependencies to maintain — the order you set is the order Momo follows.

Everyday behavior:

  • Reorder tasks via the grip handle to set the chain (first = earliest).
  • Complete the top task, and the next one immediately becomes quest-eligible the next time a quest is drawn.
  • Snoozing a task advances the chain — a snoozed task is treated as “not here right now”, so the task after it moves up. Un-snoozing puts it back in its place.
  • Turning the toggle off again instantly releases all tasks back to normal selection.

A small badge on the topic card and a hint inside the topic view make it clear when sequential mode is on.

Starting from a template

The hardest part of a big project is the blank page. To skip that, Momo ships with a small set of curated topic templates — one click turns into a fully populated topic with all the usual subtasks already in the right order.

Open the Topics page and press 📋 From template next to the “New topic” button. A picker appears with four starter templates:

  • Moving — ten tasks in sequential order, from “Terminate the old lease” all the way to “Renovate the old flat”
  • Tax return — six tasks in sequential order, from gathering receipts to submitting the return
  • Workout routine — seven parallel tasks for a single training session (warm-up, strength, cardio, cool-down, notes)
  • Household — six recurring chores with sensible default intervals: laundry and vacuuming every week, kitchen every three days, bathroom and bedsheets every two weeks, windows once a month. Every task is imported as a recurring task, so it shows up in the Habit Tracker right away and re-appears on its own schedule.

Pick one, hit Import, and a new topic appears on your grid with the matching icon, colour and a default energy level that the subtasks inherit. The sequential templates (Moving, Tax return) are pre-flagged as sequential topics, so Momo will only offer the next open step as your Daily Quest — no need to stare at ten tasks at once. The Household template is intentionally not sequential — chores are independent and can happen in any order.

Good to know:

  • Task titles are created in the language you are currently using. Switch languages afterwards and the imported tasks stay in their original wording — they are just normal tasks now and you can rename them at any time.
  • Importing always creates a new topic. You can run the same template twice (e.g. for a second move) without losing the first one.
  • If you need a different starter set, just import the closest template and edit, delete or add tasks — everything is fully editable after import.

Deleting a topic

Deleting a topic removes the topic itself but does not delete the subtasks. They are unlinked from the topic and returned to the main task list so no work is lost.


Daily Quest

The Daily Quest is Momo’s answer to the blank-page problem. Instead of staring at a long list and not knowing where to start, Momo picks one task for you.

How it works

Every morning Momo selects a single task to be your quest for the day. The selection follows a clear priority order:

  1. Your oldest overdue task (something that has been waiting longest)
  2. A high-priority task from a topic
  3. A recurring task that is now due
  4. A random task from your open pool (if nothing else applies)

The quest is shown prominently on your Dashboard so it is the first thing you see when you open Momo.

Energy check-in

Right at the top of your dashboard, Momo asks: “How are you feeling today?” You pick one of three levels:

  • ⚡ High energy — ready to tackle something demanding
  • ☀ Medium — a normal day
  • 🌙 Low energy — you want something light

After the check-in, the card collapses to a thin status bar with a Change button so you can revise the answer later in the day. Re-check-ins are tracked over time and feed the Stats page chart (see Energy patterns below).

Auto re-roll of the Daily Quest. Because Momo picks the daily quest in the early morning — before you have checked in — the push notification you wake up to may not match your actual energy. As soon as you tap one of the three buttons, Momo silently checks whether the current quest fits your reported level. If not (and a strictly-better candidate exists), it swaps the quest for one that matches and shows a small banner: “Quest swapped to match your energy — was: ‹old title›. Undo.” Tap Undo within the same session to pin the original back. If the current quest already fits — or the only alternative is no better than what you have — Momo keeps it.

The re-roll respects two rules:

  • Until the quest is done — you can change your energy any time and trigger another re-roll, as long as today’s quest hasn’t been completed yet.
  • Untagged tasks count as a match — a quest with no energy level is considered universal and never gets re-rolled. Same goes for an empty pool: if Momo can’t find anything better, it leaves the current quest alone.

To make the most of this feature, tag your tasks with an energy level when creating or editing them. Tasks without an energy tag are treated as suitable for any energy state.

Topic-default energy. When you give a topic a Default energy level (Topics → Edit → Default energy level), every new task you create in that topic automatically inherits the level. Useful for “Sport” (always HIGH), “Reply to emails” (always LOW), or “Study session” (MEDIUM) — you don’t have to think about the energy picker on every task. You can always override it per task.

Energy-aware Quick Wins and 5-Min Mode. Once you’ve checked in, the Quick Wins on your dashboard and the 5-Minute Mode list both sort matching tasks first, untagged tasks next, and mismatches last. It’s a sort, not a hard filter — everything is still visible, just in an order that respects how you feel.

Energy patterns. Visit /stats to see the new Energy this week block: three counters (HIGH / MEDIUM / LOW days in the last 7 days) plus a 14-day mini-chart so you can spot patterns (“most LOW days are Mondays”). All check-ins are stored permanently — even if you check in twice on the same day, both entries are kept for time-of-day analyses.

Note on push notifications: The 08:00 daily quest reminder is sent before you check in, so it always names a specific task. After you open the app and tell Momo your energy, that task may be replaced — the push was a starting point, not a contract.

Postponing the quest

If today is genuinely not the right day for that task, click Postpone. The quest is pushed to tomorrow and Momo immediately picks a different task for today — the postponed task is hidden for the rest of today so it cannot be re-selected until tomorrow. You can postpone up to 3 times per day by default (configurable in Settings).

Tip: Use postpone sparingly. The quest system works best when you trust the algorithm — often the task it picks is the one you have been avoiding.

Daily reset

If yesterday’s quest went uncompleted, it does not carry over. Each morning brings a fresh selection. This prevents the feeling of permanent guilt for a missed day.

Quest in push notifications

Your daily reminder notification includes the quest title — e.g. “Today’s mission: Call the dentist.” Open the notification to go straight to the task.

Emotional closure

After completing the daily quest, Momo shows a gentle quote or affirmation — a small moment of warmth before the celebration fades. The quotes alternate between passages from Michael Ende’s novel Momo and encouraging affirmations that match the app’s philosophy.

  • The quote changes once per day (the same quote shows all day, a new one tomorrow)
  • Available in German, English, French, Spanish, and Dutch
  • Toggle the feature on or off in Settings → Quest & Tasks

Why quotes from Momo? The novel is about reclaiming your time from the “Grey Gentlemen” — a perfect metaphor for the small victory of completing your daily quest.


Gamification

Momo rewards real-world progress, not app activity. Everything you earn comes from completing actual tasks.

Coins

Each task has a coin value (1–10) set when the task is created. Completing the task deposits those coins into your balance. The balance is shown in the top navigation bar at all times. Undoing a completion refunds the coins.

Coins are also the currency for the wishlist: when a wishlist item has a coin threshold, you must earn enough coins before you can buy it. Purchasing deducts the coins from your balance; undoing the purchase refunds them. This closes the gamification loop — coins are not just a score, they buy real rewards.

Levels

As your coin balance grows, you level up. There are 10 levels, each with a title:

Level Title
1 Beginner
2–4 Progressing
5–7 Alltagsmeister (Daily Master)
8–10 Champion

When you reach a new level, a celebration animation plays. You cannot level down — levels reflect cumulative effort.

Streaks

Momo tracks how many consecutive days you completed at least one task. Your streak is shown on the dashboard. Miss a day and the streak resets to zero.

Cassiopeia

Once per calendar month, Cassiopeia automatically protects your streak when you miss exactly one day. Instead of resetting to zero, your streak stays intact and you receive a notification telling you Cassiopeia saved your progress. When a new month begins, Cassiopeia recharges.

The dashboard shows a ✨ icon next to your streak when Cassiopeia is still available this month. After it fires, the icon disappears until next month.

Cassiopeia only covers a single missed day. If you miss two or more days in a row, the streak resets normally.

Tip: Even completing one tiny task keeps the streak alive. On hard days, pick the smallest task on your list.

Achievements

Achievements are one-time badges unlocked by reaching milestones. Momo has 31 achievements across four rarity tiers:

Rarity Coin Reward Example
Common +10 Complete your first task
Rare +25 Reach a 7-day streak
Epic +50 Complete 100 tasks
Legendary +100 Maintain a 365-day streak

Three secret achievements exist and are shown as ??? until earned — exploring Momo is the way to find them.

Every achievement awards coins when first unlocked. You also receive a push notification via all your configured channels.

Achievement Gallery — visit /achievements to see all achievements grouped by rarity. Locked achievements show a progress bar so you know how close you are. Earned achievements show the unlock date.

Once unlocked, achievements live in your profile permanently.

Confetti

Two moments trigger a confetti burst: completing a task and purchasing a wishlist item. These are intentional moments of celebration for progress, however small.


Wishlist and Budget

The wishlist connects your task progress to things you want to buy. Earning coins gives purchases a sense of being earned rather than just spent.

Adding a wishlist item

Click Add Item and fill in:

  • Title — what you want (e.g. “Mechanical keyboard”)
  • Price — the cost
  • URL — optional link to the product
  • PriorityWant, Nice to Have, or Someday
  • Coin threshold — optionally require a minimum coin balance before the item can be bought. E.g. set 50 coins on an expensive item so it feels genuinely earned.

Buying an item

When you are ready to purchase, click Buy. Momo marks the item as bought, deducts the price from your monthly budget, and triggers a confetti animation.

If the item has a coin threshold, the buy button shows the coin cost (e.g. “🪙 Buy (50 coins)”). Purchasing atomically deducts those coins from your balance — the coin counter in the navigation bar updates immediately.

When you haven’t reached the threshold yet, each wishlist card shows a coin progress ring (a circular SVG indicator) and a progress bar showing exactly how far along you are — for example “340 coins to go” with a bar at 67%. This makes the goal feel achievable rather than blocking. Once you have enough coins, the ring and bar turn green and the buy button unlocks. Spending coins does not reduce your level — levels reflect cumulative effort and never go down.

Discarding an item

Changed your mind? Click Discard to remove an item from your active wishlist without deleting it. Discarded items are kept in history.

Undoing a purchase or discard

Both actions are reversible. Click Undo to revert a bought or discarded item back to open status. The budget deduction is also reversed on an undo. If the original purchase deducted coins, those coins are refunded to your balance.

Monthly budget

Set a monthly spending limit directly on the Wishlist page — click the budget display in the header to enter your limit. The wishlist header shows how much of the budget remains this month. This is purely informational — Momo will not block purchases if you exceed it.

Swipe gestures on mobile

For items in the open state:

  • Swipe right to buy the item
  • Swipe left to discard it

Already bought or discarded items cannot be swiped.


Push Notifications

Momo sends you a browser push notification each day to remind you of your Daily Quest.

Setting up notifications

  1. Go to Settings → Notifications
  2. Toggle Enable Notifications
  3. Allow the browser permission prompt
  4. Choose the time you want to receive the daily reminder

The notification text includes the quest title, e.g. “Today’s mission: Call the dentist.” Tapping the notification opens Momo directly to the dashboard.

“Due today” reminder

On top of the daily-quest ping, Momo can send a separate reminder listing the tasks that are actually due today — the ones with a specific due date of today, and recurring tasks whose next occurrence falls on today. Toggle Remind me about tasks due today in Settings → Notifications to opt in.

Silent on empty. You will only be pinged when there is actually something due. On a day with nothing on the list, Momo stays quiet — no “all clear” notifications, no “you have 0 tasks” pings. This is deliberate: reminders that fire on empty days train you to swipe them away.

  • One task due → Title shows the task name, e.g. “Heute fällig: Steuererklärung einreichen”.
  • Several tasks due → Title shows the count, body lists the first three, rest as “… and N more”.
  • Snoozed tasks are excluded. A task you snoozed until tomorrow will not trigger the reminder today, even if its original due date is today.
  • Delivery time. Set your own time for this reminder — a time picker appears under the toggle once you enable it. Defaults to 08:00. Independent of the daily-quest reminder time.
  • Channels. Works with every channel you have configured — browser push, ntfy.sh, Pushover, Telegram, Email. Enable any one of them and the toggle becomes available.

Overdue task reminder

Sometimes tasks slip through the cracks — a due date passes, life happens, and before you know it there is a small pile of things you meant to do. Toggle Overdue task reminder in Settings → Notifications and Momo will send you a daily nudge as long as any tasks are overdue.

  • What counts as overdue. Any task with a due date in the past (up to 30 days back) that you have not yet completed, snoozed, or paused.
  • One task overdue → Notification title is “Überfällig: [task title]” with a prompt to check it off.
  • Several tasks overdue → Summary notification listing the first three, plus a count for the rest.
  • Silent on empty. No notification fires when you have nothing overdue — only when there is actually something to act on.
  • Paused and snoozed tasks are excluded. Tasks paused by Vacation Mode or snoozed to a future date won’t trigger the reminder.
  • Morning briefing users are automatically excluded — enable the briefing if you want a single consolidated morning push instead.
  • Delivery time. Set your own time for this reminder — a time picker appears under the toggle once you enable it. Defaults to 08:00. Great for an evening nudge (e.g. 20:00) while keeping your morning free.
  • Channels. Works with every delivery method you have set up — browser push, ntfy.sh, Pushover, Telegram, Email, Webhook.

Individual recurring-task reminders

Want each recurring task to stand out on its own? Toggle Send individual reminders for recurring tasks in Settings → Notifications and every recurring task that is due today gets its own dedicated notification — separate from the bundled “due today” reminder.

  • 1–3 recurring tasks due → Each task gets its own notification with its title, e.g. “🔁 Wäsche waschen”.
  • 4+ recurring tasks due → Bundled into a single summary to avoid flooding your notification shade.
  • Paused and snoozed tasks are excluded, just like the due-today reminder.
  • Morning briefing users don’t get these — the briefing already covers due tasks.
  • Delivery time. Set your own time — time picker appears under the toggle. Defaults to 08:00. Independent of the daily-quest and overdue reminder times.

This is ideal if you have a handful of weekly habits and want each one to pop up as a distinct, actionable reminder rather than being buried in a list.

Weekly review time

The weekly review notification fires every Sunday. You can now choose the exact time in Settings → Notifications → Weekly review time. The default is 18:00 — a good moment to reflect on the week before the evening winds down. Set it to any time that works for your Sunday routine.

Requirements

Push notifications require VAPID keys to be configured on the server. If you are self-hosting, see the Environment Variables guide for the VAPID_PUBLIC_KEY and VAPID_PRIVATE_KEY variables.

Notifications work in all modern browsers and through the PWA on both iPhone and Android.

Additional notification channels

Beyond browser push notifications, Momo supports additional notification channels. Go to Settings → Additional Notification Channels to configure them.

ntfy.sh — Receive notifications via ntfy.sh, a simple HTTP-based pub/sub service. Works on any device with the ntfy app (Android, iOS, desktop). Great for self-hosters who want notifications without configuring VAPID keys.

Setup:

  1. Install the ntfy app on your phone
  2. Choose a unique topic name (e.g. my-momo-notifications)
  3. Subscribe to that topic in the ntfy app
  4. In Momo: go to Settings → Additional Notification Channels and click + ntfy.sh
  5. Enter the same topic name and click Save
  6. Click Send test to verify it works

Self-hosters can point to their own ntfy server by expanding the Advanced section and entering the server URL.

Pushover — Receive instant push notifications via Pushover on iOS, Android, and desktop. Pushover is a paid service with a one-time purchase after a 30-day trial.

Setup:

  1. Create a Pushover account and install the app on your device
  2. Note your User Key from the Pushover dashboard
  3. Create a new Application/API Token at pushover.net/apps/build
  4. In Momo: go to Settings → Additional Notification Channels and click + Pushover
  5. Enter your User Key and App Token, then click Save
  6. Click Send test to verify it works

Telegram — Receive notifications via a personal Telegram bot. Free, works on every device with Telegram, and supports a tappable “Open Momo” link in each message.

Setup:

  1. In Telegram, open a chat with @BotFather and run /newbot. Follow the prompts to pick a name and username, then copy the Bot Token that BotFather sends you.
  2. Start a chat with your new bot and send it any message (this is required so the bot is allowed to message you).
  3. Open a chat with @userinfobot and copy the Chat ID it shows you. For group chats, use the negative ID shown there.
  4. In Momo: go to Settings → Additional Notification Channels and click + Telegram
  5. Paste the Bot Token and Chat ID, then click Save
  6. Click Send test to verify it works

Email — Receive notifications by email. The “+ Email” button only appears when the operator of your Momo instance has configured an SMTP server. The default address is the email on your Momo account, but you can override it.

Setup:

  1. In Momo: go to Settings → Additional Notification Channels and click + Email (only visible if the server has SMTP configured)
  2. Enter the address you want notifications delivered to (defaults to your account email)
  3. Click Save
  4. Click Send test to verify it arrives — check spam folder on first attempt

Self-hosters: see the Email Notifications (SMTP) section of the Environment Variables guide for the SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, SMTP_FROM and SMTP_SECURE variables. Mailpit is the easiest local-dev option.

Webhook — Send every Momo notification to any HTTP endpoint as a JSON POST. Perfect for integrations with Home Assistant, n8n, Zapier, Make, or custom apps.

Setup:

  1. In Momo: go to Settings → Additional Notification Channels and click + Webhook
  2. Enter the URL of your endpoint (must start with https://)
  3. Optionally enable Sign requests (HMAC-SHA256) and enter a signing secret. Momo will add an X-Momo-Signature: sha256=<hex> header to every request so your server can verify the origin.
  4. Click Save, then Send test to verify the endpoint receives the notification

Each request sends a JSON body like this:

{
  "event": "momo.notification",
  "title": "Daily Quest ready",
  "body": "Your task for today: Write morning pages",
  "url": "https://app.momotask.app/",
  "tag": "daily-quest",
  "timestamp": "2026-04-12T08:00:00.000Z"
}

To verify the HMAC signature on your server, compute HMAC-SHA256(secret, rawBody) and compare it (constant-time) to the hex value after sha256= in the X-Momo-Signature header.

Outbound webhooks (task automation)

Settings → Integrations has an Outbound Webhooks section that lets you connect Momo to any automation platform — Zapier, Make, n8n, Home Assistant, or your own backend. Every time a task changes, Momo fires an HTTP POST to your configured endpoints.

This is separate from the notification webhook channel above. Notification webhooks deliver personal alerts (“Daily Quest ready”). Outbound webhooks deliver structured task lifecycle events for automation.

Events

Event When it fires
task.created A new task is added
task.completed A task is marked done
task.deleted A task is deleted
task.updated A task’s title, priority, due date, or other fields change

Setting up an endpoint

  1. Go to Settings → Integrations and click + Add endpoint in the Outbound Webhooks section
  2. Give the endpoint a name (e.g. “n8n automation”)
  3. Enter your HTTPS URL — Momo only sends to https:// addresses
  4. Optionally add a signing secret — Momo will sign every request with HMAC-SHA256 so your server can verify it came from Momo (see below)
  5. Choose which events to subscribe to — leave all unchecked to receive every event
  6. Click Save, then Send test to check your endpoint receives the request

You can configure up to 10 endpoints per account.

Payload shape

Every request is a JSON POST with these headers:

Content-Type: application/json
X-Momo-Event: task.created
X-Momo-Signature: sha256=<hex>   (only when a signing secret is configured)

The body looks like this:

{
  "event": "task.created",
  "timestamp": "2026-04-18T10:23:00.000Z",
  "task": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "title": "Write weekly report",
    "type": "ONE_TIME",
    "priority": "HIGH",
    "topicId": "a1b2c3d4-...",
    "dueDate": "2026-04-20",
    "completedAt": null,
    "createdAt": "2026-04-18T10:23:00.000Z"
  }
}

Verifying signatures

If you set a signing secret, verify the signature in your server before trusting the payload:

Node.js

const crypto = require("crypto");

function isValidSignature(secret, rawBody, signatureHeader) {
  const expected = "sha256=" + crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader));
}

Python

import hmac, hashlib

def is_valid_signature(secret: str, raw_body: bytes, signature_header: str) -> bool:
    expected = "sha256=" + hmac.new(
        secret.encode(), raw_body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, signature_header)

Delivery history

Expand any endpoint in the list to see its last 50 delivery attempts — timestamp, event type, HTTP status, and response time. Use this to debug failed deliveries or confirm your automation received the event.

Delivery logs are automatically deleted after 30 days.

Notification history

Not sure if your notifications are being delivered? Go to Settings → Notification History to see the last 50 delivery attempts across all channels. Each entry shows:

  • Time — when the notification was sent
  • Channel — which channel was used (Web Push, ntfy, Pushover, Telegram, or Email)
  • Title — the notification title
  • Status — “Sent” (green) or “Failed” (red)

If a notification failed, click the entry to see the error message. This is especially useful when setting up a new channel or debugging why notifications stopped arriving.

Entries are automatically deleted after 30 days.

Morning briefing (daily digest)

Tired of getting multiple separate pings each morning? The Morning Briefing rolls everything into one compact daily digest:

  • Daily Quest — the task Momo picked for you today
  • Due tasks — recurring and one-time tasks due today
  • Streak — your current streak length
  • New achievements — anything you unlocked in the last 24 hours

How to enable it:

  1. Go to Settings → Morning Briefing (only visible once you have at least one notification channel configured)
  2. Toggle Enable morning briefing
  3. Pick your preferred briefing time (default: 08:00)

When the morning briefing is enabled, the individual daily-quest, due-today, and recurring-task reminders are automatically suppressed — you won’t get duplicate pings. The streak reminder (later in the day) still fires separately.

Even on a completely empty day, the briefing arrives with a friendly “nothing due — enjoy your free day” message. This is deliberate: you opted into a daily ritual, and Momo respects that.


Installing Momo as an App (PWA)

Momo is a Progressive Web App. You can add it to your phone’s home screen for a full-screen, app-like experience with push notifications.

iPhone (Safari)

  1. Open momotask.app (or your self-hosted URL) in Safari
  2. Tap the Share icon at the bottom of the screen
  3. Scroll down and tap Add to Home Screen
  4. Tap Add in the top-right corner

Momo now appears on your home screen. Push notifications work once you enable them in Settings.

Android (Chrome)

  1. Open the app in Chrome
  2. Tap the three-dot menu in the top-right corner
  3. Tap Install app (or look for an install banner that appears automatically)

Why bother?

Once installed, Momo opens in full-screen with no browser chrome. The home screen icon gives you faster access, and push notifications are more reliable from an installed PWA than from a regular browser tab.


Two-Factor Authentication

Momo can ask for a second factor every time you sign in — on top of your normal OAuth login. Two options are supported, and you can use one or both:

  • TOTP — a 6-digit code from an authenticator app (Aegis, 2FAS, Google Authenticator, Authy, 1Password, …). See Two-Factor Authentication →
  • Passkeys — Face ID, Touch ID, Windows Hello, Android biometrics, iCloud Keychain or a hardware security key (YubiKey, SoloKey). Passkeys additionally enable passwordless primary login — once registered, you can sign in with just your fingerprint or device PIN, skipping the OAuth provider entirely. See Passkeys →

In short:

  • Open Settings → Two-factor authentication and pick your method — enable TOTP, register a passkey, or both.
  • Save the 10 TOTP backup codes Momo gives you — they are your safety net if you lose your phone.
  • From then on, every new sign-in asks for a code or a passkey assertion.

If you self-host Momo, you can require a second factor for everyone by setting the REQUIRE_2FA=true environment variable. New and existing users will be guided through the setup the next time they sign in.


Active Sessions

The Active Sessions section in Settings shows every device currently signed in to your account. Each entry displays:

  • Browser and OS (e.g. “Chrome on Windows”, “Safari on iOS”)
  • IP address of the device
  • When the session was created and when it was last active

The session you are using right now is highlighted in green with a “This device” badge and cannot be revoked (no self-lockout).

Revoking sessions

If you see a session you don’t recognise — or you simply want to sign out everywhere else — you have two options:

  • Revoke a single session by clicking the red “Revoke” button next to it. That device is immediately signed out.
  • Sign out all other devices with the button at the bottom. Only your current session stays active.

This is the same pattern you know from GitHub, Google, or Apple. Check it whenever you sign in from a shared computer, or if you suspect someone else has access to your account.

Login notifications for new devices

Under the Active Sessions section you will find a “Notify on new devices” toggle. When enabled, you receive a notification — via every delivery channel you have set up — the moment a login is detected from a device that has not been seen before.

The detection compares a fingerprint of the browser’s User-Agent and IP address against all your existing sessions. The first time you ever sign in, no notification is sent (there is nothing to compare against yet). Subsequent logins from a new browser, a different computer, or an unfamiliar IP will trigger the alert immediately.

If you receive an unexpected alert, open the Active Sessions list and revoke the unfamiliar session straight away.


API Keys

Momo has a full REST API. Personal access tokens let you integrate Momo with other tools, scripts, or voice assistants like Alexa.

Creating an API key

Go to the API Keys page — either click your avatar in the navbar and select API Keys, or navigate there from Settings → Integrations. Click Create Key and configure:

  • Name — a label so you know what the key is for (e.g. “Home automation”, “Alexa skill”)
  • TypeRead-write (full access) or Read-only (GET requests only)
  • Expiry — optional date after which the key stops working

Copy the key immediately after creation — it is only shown once.

Revoking a key

Click Revoke next to any key to immediately deactivate it. Revoked keys cannot make requests.

Using the key

Pass the key as a Bearer token in the Authorization header of API requests:

Authorization: Bearer momo_your_key_here

The full API reference is available at /api-docs (Swagger UI) on your Momo instance.


Calendar Subscription (iCal Feed)

If you want your Momo tasks to show up next to your meetings in Google Calendar, Apple Calendar, Outlook or Thunderbird, you can subscribe to a private iCal feed instead of switching apps.

Setting it up

  1. Open Settings → Calendar subscription.
  2. Click Create feed URL. Momo generates a brand-new private URL and shows it to you once. Copy it immediately — for security reasons it is not stored anywhere you can retrieve it later. If you lose it, click Rotate token to generate a fresh one (the old URL stops working instantly).
  3. Paste the URL into your calendar app:
    • Google Calendar — in the sidebar click the + next to Other calendarsFrom URL → paste the URL.
    • Apple Calendar (macOS) — FileNew Calendar Subscription → paste the URL.
    • OutlookAdd calendarSubscribe from web → paste the URL.
    • ThunderbirdNew CalendarOn the NetworkiCalendar (ICS) → paste the URL.

Your calendar app will poll the feed every few hours and refresh automatically.

What appears in the feed

  • Every task that is not yet completed and has either a due date or (for recurring tasks) a next-due date.
  • Tasks appear as all-day events — Momo tasks don’t have a time of day.
  • Recurring tasks show up as a series in your calendar:
    • Interval: repeats every N days (e.g. every 7 days → weekly event)
    • Weekday: repeats on specific days, e.g. every Monday and Wednesday
    • Monthly: repeats on the same day of each month
    • Yearly: repeats on the same date each year
  • Snoozed tasks stay visible in the calendar even while hidden on your dashboard — the feed shows what’s on the plan, not what you need to act on today.
  • Each event title is the task title, the description contains your notes plus a direct link back into Momo, and the topic (if any) is set as the event category so you can colour-code them.

Security and privacy

  • The URL contains a 256-bit random token — not your email, user ID, or anything guessable. Anyone with the URL can read your tasks, so treat it like a password.
  • Momo stores only a hash of the token. If you lose the URL, you have to rotate it — it cannot be shown again.
  • Rotate the token any time you suspect leakage; the old URL stops working immediately.
  • Revoke it if you no longer want the feed — one click and the URL is dead.
  • Two-factor authentication (if you have it enabled) protects the rotate and revoke actions in the settings UI.

Limits

  • This is a one-way feed: changing events in your calendar does not update Momo. Add, complete, or reschedule tasks in Momo itself.
  • Calendar clients typically refresh every 1–24 hours. If you just completed a task and want your calendar to catch up faster, most clients offer a manual Refresh option.

Data Export and Account Deletion

Momo gives you full control over your data in compliance with GDPR Articles 15 and 20.

Exporting your data

Go to Settings → Data & Privacy and click Download your data. You will receive a JSON file containing:

  • All your tasks (including completed and deleted)
  • All your topics
  • Your full completion history
  • Wishlist items
  • Achievements and gamification data

You can import this file into another system or keep it as a personal archive.

Deleting your account

Go to Settings → Data & Privacy and scroll to the Danger Zone. After confirming, all your data is permanently and irreversibly removed from the database — tasks, topics, completions, wishlist items, achievements, push subscriptions, and API keys.

Note: Account deletion is immediate and cannot be undone. Export your data first if you want to keep a copy.


Settings Navigation

The Settings area is divided into six clearly labelled tabs. On desktop a persistent sidebar sits to the left of the content; on mobile it collapses into a horizontal scrollable tab strip at the top.

Tab What you find there
Account Display name, email, profile picture, UI language, timezone, linked OAuth providers
Notifications Web Push, notification channels (ntfy.sh, Pushover, Telegram, Email, Webhook), Morning Briefing, delivery history
Quest & Tasks Daily quest postpone limit, Vacation Mode, Emotional Closure
Security Two-factor authentication (TOTP + Passkeys), active sessions list, new-device login alerts
Integrations Calendar subscription (iCal feed), outbound webhooks, link to the API Keys page
Data & Privacy GDPR data export, account deletion (Danger Zone)

Opening /settings redirects to Account automatically.


Language and Theme

Changing the language

Go to Settings → Account and choose from:

  • German (de)
  • English (en)
  • French (fr)
  • Spanish (es)
  • Dutch (nl)

The selected language applies to all UI elements, labels, and system messages.

Setting your timezone

Go to Settings → Account and scroll to the Timezone section to choose your IANA timezone (e.g. “Europe/Berlin”, “America/New_York”). By default Momo detects your timezone from your browser, but you can override it if you are traveling, using a VPN, or if the browser detection is incorrect.

Your timezone affects all scheduled actions:

  • Daily Quest reminder — sent at your configured notification time in your local time
  • Due-today reminder — checks which tasks are due “today” in your timezone
  • Overdue reminder — checks which tasks have a past due date (up to 30 days back) in your timezone
  • Recurring-task reminder — checks which recurring tasks are due “today” in your timezone
  • Morning Briefing — delivered at your briefing time in your timezone
  • Weekly Review — sent on Sunday at 18:00 in your timezone

If your saved timezone differs from what the browser detects, a subtle hint below the dropdown shows you the mismatch. Click “Use browser timezone” to reset to the detected value.

Changing the theme

Use the theme toggle in the navbar to switch between:

  • Light — white backgrounds, dark text
  • Dark — dark backgrounds, light text
  • System — follows your operating system preference automatically

The theme preference is saved and persists across sessions.


Profile Editing

OAuth providers often set your display name to a username or abbreviation, and your email might be a no-reply address. You can update all of these in Momo.

Editing your profile

Go to Settings → Account. You can change:

  • Name — your display name shown in the navbar and throughout the app
  • Email — your contact email address (must be unique across all users)
  • Profile picture — click the avatar to upload an image from your device

Profile picture

When you upload an image, Momo automatically:

  • Resizes it to 200×200 pixels (center crop)
  • Converts it to WebP format for optimal file size
  • Stores it directly in the database (no external storage needed)

Supported formats: PNG, JPEG, GIF, WebP, BMP. Maximum upload size: 5 MB.

To remove your profile picture, click Remove picture while in edit mode. The app will show your name initial as a fallback.


Weekly Review

Visit /review from the avatar menu to see a summary of how your week went:

  • Completed — how many tasks you finished this week, with a comparison to last week (+3 / -2 / same)
  • Postponed — how many daily quests you pushed to another day
  • Coins earned — total coins collected through completions this week
  • Streak — your current streak and all-time best
  • New tasks — how many tasks you created this week
  • Top topics — the three topics with the most activity this week

A motivational message at the bottom reflects your performance level — from “Strong week!” to “New week, new chance.”

Weekly push notification

If push notifications are enabled, Momo sends a summary notification every Sunday at 18:00 in your local time. The notification includes your completion count, postponements, and streak. Tap it to open the full review page.


Statistics

Personal stats

Visit /stats from the navigation to see your personal numbers:

  • Overview — total tasks created, total completions, current streak, best streak
  • Streak history — a 90-day sparkline showing how your streak developed over time, with today’s value and the peak highlighted
  • Progress — your current level, coin balance, total coins earned, and a level progress bar
  • Activity — completions in the last 7 and 30 days, open tasks
  • Best weekdays — a bar chart showing which days of the week you complete the most tasks, with the best day highlighted
  • Energy this week — energy check-in summary (HIGH / MEDIUM / LOW counts) plus a 14-day mini-chart
  • Tasks by type and priority — progress bars breaking down your tasks
  • Topics — per-topic completion rate, sorted with the least-completed topics first so you can spot which topics you tend to avoid. Topics below 25% completion are highlighted in red, above 75% in green. Each topic also shows completions in the last 30 days
  • Achievements — all achievements with earned/locked status and unlock dates
  • Wishlist — bought, spent, open, and discarded counts

Stats are fully localized — they follow your chosen language (German, English, French, Spanish, or Dutch).

Habit Tracker

Open Habits from the sidebar (the sprout icon) to see a GitHub-style year grid for every recurring task you own. Each square is a single calendar day — the darker and greener the square, the more often you completed that habit on that day.

The page lists one card per recurring task. On each card you get:

  • A streak counter — the amber flame pill shows how many consecutive periods you have hit the habit, counted backwards from today. For a weekly habit, one period is one week; for a daily habit, one day; for a “every three days” habit, one three-day window. Your all-time best streak for the same habit shows up underneath as a quieter sub-label, and if your current streak just matched or beat your record, you get a “New best” flourish instead of a number
  • Three counters — total completions this year, in the last 30 days, and in the last 7 days
  • A full-year heatmap — 53 weeks across, 7 days down, starting on Monday (ISO weeks). Empty days are hollow; completed days fill in with the Momo green
  • A year selector at the top — click a past year to browse an earlier grid

How the streak counts. The period depends on the task’s recurrence rule:

  • Interval habits: one period = the configured interval in days (e.g. every 3 days → a 3-day window)
  • Weekday habits: one period = one calendar week (Mon–Sun)
  • Monthly habits: one period = one calendar month
  • Yearly habits: one period = one calendar year

The current period always gets a “grace” — a weekly habit does not visually reset the moment Monday morning begins, only when a full past period goes by without a completion. Multiple completions inside the same period count as one, not two. Snoozing a task does not affect the streak record — snooze pauses the reminder, not the history. And the streak is computed over your entire Momo history, not just the currently selected year, so the “best” number is a true all-time record.

The grid uses your actual completion events, not a theoretical “expected” schedule. If you have a task set to repeat every three days but you miraculously completed it seven days in a row, all seven days light up. If you skipped two months, you see the gap honestly — no fake streaks, no guilt dressed up as motivation.

Why a year view? Because habits are long-term. A single missed day feels catastrophic when you are looking at this week; it looks tiny when you are looking at an entire year of progress. The grid is there to remind you that consistency is a shape that only becomes visible over time.

Tip: Give a recurring task a short, imperative title like “Ten pushups” or “Take meds”. It reads better across the top of the card and fits neatly into the stat pills.

Admin view

If your account is listed in the ADMIN_USER_IDS environment variable, you can access /admin to see aggregate statistics for all users on the instance. This is useful for self-hosters who share Momo with family or a small team.

The Admin panel also shows a Version section at the top. Momo checks the GitHub Releases page once per 24 hours and displays:

  • A green confirmation if you are already on the latest version.
  • An amber banner with a “View changelog” link when a newer version is available.
  • A warning if the check failed (for example due to a network issue).

If your server cannot reach api.github.com, set DISABLE_UPDATE_CHECK=true in your environment to turn the check off entirely.


What to Try First

If you are new to Momo, the onboarding wizard walks you through the first steps automatically. After that, here is what to explore next:

  1. Check your Daily Quest on the dashboard
  2. Complete a task and watch the coins land
  3. Add a wishlist item with a coin threshold
  4. Try different priorities and task types (one-time, recurring)
  5. Explore the Habit Tracker to see your recurring tasks visualized

That is enough to make Momo part of your day. Everything else — streaks, achievements, API keys, Alexa — can wait until you are comfortable.


Getting Started guide — if you have not set up Momo yet, start here.