MoveIt — Help

← Back to your board

Unfinished tasks move forward automatically. Every morning, yesterday's unfinished work is already sitting on today — you're stuck with it until it's done. That's the critical difference between MoveIt and every other to-do list, and everything else here builds on it.

🎥 Getting-started video coming soon

The board

Add a task

Each column is a day; today is highlighted blue. Type into any day's box and press Enter to add a task there. Scroll sideways for later days.

Tasks move forward automatically

Anything unfinished from a past day spills onto today automatically — you're stuck with it until it's done. A small grey number after a task counts the days it's been pushed; it turns red past 10.

Lock a deadline 📅

Click a task's 📅 to lock it to a date. Locked tasks (🔒, amber edge) never spill forward — a real deadline. On its deadline day the task text turns red. Shift+Option+click a task to quick-lock it to the day it's on.

Complete or postpone a task

Click the circle to complete a task — it leaves the board, and lives on the Completed tasks board (click your board's tab to open it), under a chart of your last thirty days. Click to bump it to tomorrow. Shift+click to move it forward one week.

For anything in between, hover the and press 19 to push it that many days out. Keep pressing without moving the mouse and it keeps going — 3 then 2 lands five days away.

Overflow

A day holds at most 7 pending tasks per board. Add an 8th and the day makes room: the task at the bottom of the list moves to the next free day, and the new one lands where you typed it. Locked tasks and the day's goal never move; if nothing can, the new task overflows instead.

Projects

Create as many boards as you like ("personal", "house", …) with the + button. A project with a red border has an item due that day.

More fun

Links in tasks

Any URL you type in a task becomes a clickable link that opens in a new tab.

Put them in order

Drag a task up or down inside its day and a solid blue line shows exactly where it will land. Drop it on the middle of another task instead and you get a series — same drag, and the line tells you which one you're about to do.

Or keep your hands on the keys: hover a task and press 19 to send it straight to that slot. 0 sends it to the bottom.

Repeat

Some things just come back. Hover a task and press r to cycle daily → weekly → monthly → off. There is only ever one copy on your board — tick it off and the next one appears on its own.

Goal for the day

One thing today is really for. Hover a task and press g — it turns orange and jumps to the top of its day, right under any deadline you've locked. Press g again to let it go.

Miss it and it carries to tomorrow still orange. That's the nudge.

Create lists

Start a task with the word list — "list movies to go see" — to create your own list with AI suggestions. Click a suggestion's to move it onto your list.

Dark mode 🌙

The ☀️/🌙 button in the header flips the whole app between light and dark — this help page follows along. The icon shows the mode you'd switch to.

Focus on one day 👻

The ghost in the header dims every day but the one you're on, so a thirty-day board stops shouting at you. Click any day to move the focus there. Completed tasks drop out of sight while it's on — what's left is what's left — and a series stays lit right across the days it touches, so a chain never looks broken.

Power moves

Chain a series

Drag a task onto another task to make it the next step in that series. Moving an earlier step moves every later step by the same amount. Chained tasks show a numbered circle 2 showing the total number of steps in that chain.

Unlink a step ✂️

Hovering a chained task reveals scissors — click to cut its link to the previous step. It becomes the start of its own series; nothing else moves.

Locked tasks don't advance past their due date

Instead, the day remains on your board and stays there until you either complete the task or advance it to a current day.

Subtasks

🧠 The assistant

With the header's brain switch on, adding a task instantly opens a pane of up to 7 specific steps — real decisions, real links, real prices, not "make a plan".

Those first steps arrive in seconds, drafted from reasoning alone, to get you thinking straight away. When you want the real thing, click Research these steps at the bottom of the pane: an agent goes and finds current prices, actual products and working links, and rewrites each step in place as the answers come back. A step that turns out not to make sense for your task gets replaced outright.

Researched steps stay marked in light blue, so you can always tell a finding from a first draft.

No Anthropic API key on the server? You get sensible placeholder steps instead — everything else works the same.

↻ Keeping seven steps

A pane holds seven steps, and ↺ tops it back up rather than starting over — anything you kept, or typed yourself, stays put.

To make room, tick a step off. Completed steps leave the pane, and the next ↺ fills the slots they freed. If all seven are still there, ↺ tells you the pane is full instead of spending anything.

Want more than seven? Hover a step and click to move it onto the board as a task of its own. It lands on the day the task sits on and leaves the pane, which frees a slot too.

↺ only ever drafts — it never spends money on research. Ask for that separately, once the seven steps are the seven you want.

💰 What research costs

Researching steps costs real money on your Anthropic account, so every board carries its own budget — $5 a month to start. Hover the 🔎 Research switch in the top bar to see what this board has spent, and Shift+click it to change the figure. Whole dollars only.

When a board runs out, you still get your drafted steps instantly — they just don't get researched, and the pane says so. Raise the budget and research picks up again.

Research is on request by default — nothing is spent until you click Research these steps, or on a single step. If you'd rather every new task be researched the moment you add it, flip the 🔎 Research switch on in the top bar — it tells you what that costs the first time, and you can tell it not to ask again. It's off to begin with because at roughly 10¢ a task, automatic research empties a $5 board in about a week.

Assign steps

Every step shows its suggested owner: 🧠 for the AI agent, 👩 for a human. Click the emoji to assign it. Click on an AI step to send the agent back out on that one step alone — useful when the first pass didn't dig deep enough on the thing you actually care about. Assigned tasks leave your board and appear on the assignee's; they can return them, which puts them back on yours today.

Add calendar events Beta

Bring in your calendar 📅

Click the calendar icon in the header and paste your calendar's private iCal address — Google, Proton, iCloud and Outlook each publish one. The next two weeks of real events land at the top of each day, above everything else, so the board shows the day you actually have. All-day entries and holidays are skipped. Events aren't tasks: you can't drag or move them, and once the day passes they're simply gone.

This one is still being figured out — especially the privacy side. MoveIt has no password yet, so anyone who can open your board can read your event titles, and your calendar address is kept on the server. Until that's settled, connect a work calendar or a spare one rather than the calendar you'd mind a stranger reading. You can disconnect at any time from the same calendar menu, which deletes the address and every imported event.

Finding your calendar link

Every provider hides it somewhere different, and all of them call it something slightly different. Look for the words secret, private, publish or iCal:

Google Calendar — Settings → the calendar's name in the left column → Integrate calendarSecret address in iCal format.

iCloud — on iCloud.com open Calendar, click the share icon beside a calendar, tick Public Calendar and copy the link. It starts webcal://, which is fine — paste it as-is.

Outlook / Microsoft 365 — Settings → Calendar → Shared calendarsPublish a calendar, then copy the ICS link (not the HTML one).

Paste whichever you get straight into the calendar menu. If the link is wrong or gets regenerated later, the menu tells you the sync failed rather than quietly emptying your board.

Proton Calendar 📅Paid plan

Proton works, with one catch worth knowing before you go looking for the setting.

In Proton Calendar, open SettingsCalendars, pick the calendar, and use its Share option to share with anyone — that creates a link ending in .ics. Paste that into the calendar menu.

Sharing a calendar link is a paid Proton feature. On the free plan the option simply isn't there, and there is no way around it — Proton publishes no calendar API, so this link is the only door in. If you can't find the setting, check your plan before assuming MoveIt is broken.

Anyone holding that link can read the calendar, so treat it like a password — and see the privacy note above, which applies here too.

Run your own copy

MoveIt is MIT-licensed and built to be forked: one vanilla-JS file for the frontend, a small Express API, SQLite with zero native dependencies, no build step. Fork it on GitHub, then:

git clone https://github.com/<you>/movealong.git
cd movealong/server
npm install
npm start          # open http://localhost:3000 — that's the whole setup

To deploy (Railway, Render, Fly, any Node host): run npm start from server/, attach a persistent volume, and point DB_PATH at it (e.g. DB_PATH=/data/movealong.db) so your data survives deploys. Node 18+ required.

Enabling real AI steps

  1. Get an Anthropic API key (console.anthropic.com) and set it as ANTHROPIC_API_KEY in your deployment's environment variables.
  2. Generate a private access key — any long random string. In your terminal:
    openssl rand -hex 24
    (or node -e "console.log(require('crypto').randomBytes(24).toString('hex'))")
  3. Set that string as AI_ACCESS_KEY in the same environment variables and redeploy.
  4. Open your deployed app, Shift+click the brain switch, and paste the same string. Do this once in each browser you use.
Why the access key matters: the app has no login, so without AI_ACCESS_KEY anyone who finds your URL can trigger AI calls billed to your Anthropic account. With it set, strangers get free placeholder steps and only your browsers spend real money. Rate limits (AI_LIMIT_PER_IP_HOUR, default 20; AI_LIMIT_GLOBAL_DAY, default 200) cap the worst case either way. Skip both keys entirely and the app still works with placeholder steps.
All environment variables are optional: ANTHROPIC_API_KEY (real AI), AI_ACCESS_KEY (protect your AI spend), AI_LIMIT_PER_IP_HOUR / AI_LIMIT_GLOBAL_DAY (rate caps), DB_PATH (database location), PORT (default 3000).