In March I wrote about why I built Planify even though better apps already exist. I ended it with: "The refactor is coming."
It came. And it got a lot bigger than a refactor.
The goal hasn't changed
Planify exists for one reason: to get back the planning habit I had with a pen and a notebook. Every evening, plan tomorrow. Every Saturday, review the week. It worked on paper. Once everything moved to the laptop, it fell apart.
What I want is one place where that habit fits:
- the tasks I need to do,
- the calendar where they actually happen,
- the notes that explain them,
- and the time I really spent on them.
Today that's four apps for most people: Linear or Todoist, Google Calendar, Notion, a timer. Every switch between them is friction, and friction is what killed my notebook system in the first place.
Planify isn't trying to beat any of those apps. It's trying to remove the gaps between them, for one person: me.
What's new since v2
Projects
Tasks now live in projects with a start and a target date. Each project gets its own board and a side panel with its progress, the time tracked on it and the days left.

A board that reads at a glance
"My tasks" is a kanban across every project. Priority, tags and due date are chips you can edit right on the card. Overdue tasks show up in red, so they stop hiding.

Dark mode got real attention too. Same board, same chips, nothing washed out.

Notes, sessions and links
- Notes: Notion-style pages, nested as deep as I want (Semester > Course > Chapter), with LaTeX, tables, code, toggles and covers. The editor is Plate.
- Time tracking: press ▶ on any task and a timer runs in the title bar (you can see "Draft the launch…" in the screenshots). The
/timepage shows the week by project. - Links: a page belongs to a project, a task points to the page it came from, and an event can block time for a task. Everything is connected, nothing is copied.
- Google Calendar and Google Tasks: two-way sync, with a webhook in production.
Under the hood
I moved from Cloudflare Workers to Vercel + Supabase. The free Workers plan caps CPU at 10 ms per request, and a Next.js app goes over that easily. Postgres goes through Prisma, files through Supabase Storage, and a daily cron sends reminders.
The three features I wanted most
These are the ones that turn Planify from "a board and a calendar" into a planner.
1. Drag a task into your day
The calendar's side panel now has a To plan list: every open task that has no time blocked yet. Drag one onto the calendar and it becomes a time block linked to that task. Drop it on a day instead, and the task becomes due that day.

This is time blocking, the way Sunsama or Akiflow do it. The link between a task and its block already existed; what was missing was the gesture.
2. Type it the way you'd say it
Ctrl K now understands plain English and French:
réunion mardi 17h #website !urgent
Dentist tomorrow 2:30pm for 45 min
Standup every weekday 9h30-9h45
It reads the date, the time, the duration, the project, the tags, the priority and the repeat, and shows you what it understood before you press Enter.

A time on its own creates an event. Add a #project or a !priority and it becomes a task, with its time block already in the calendar.
This was the most fun part to write: no library, about 300 lines and a test file. French has a lot of ways to say "tomorrow at 5".
3. Repeats
A real agenda needs recurring events. Every day, every weekday, every week, every two weeks, every month, every year, with an optional end date.

You can edit one occurrence or the whole series. You can delete one, the following ones or all of them. Dragging an occurrence moves only that one.
Tasks repeat too: complete "Pay rent" and next month's "Pay rent" shows up on its own.
What's honest to say
- These three features are on a branch. They ship once my production env is ready.
- The Google sync is covered by tests, but I haven't run the full flow with a real account yet. That's next.
- Drag and drop needs a mouse for now.
What's next
- Validate Google sync with a real account.
- Plan my day: pick tasks in the morning, get warned when the day is overloaded, and compare planned vs. actual time in the evening. Planify already has both numbers.
- Push notifications through a PWA: the first step towards mobile.
Same rule as last time: ship it, use it, break it, fix it. Repeat.
Comments
Sign in with GitHub to join the conversation.