Changelog

Everything that has shipped, newest first. Widgets update in place, so an embed you already pasted into Notion picks up most changes on its next load.

Last updated 2026-08-15

  1. Fixed

    Notion Button — the grey button is readable in the dark

    Notion's default colour is the only one in its palette with a translucent background. Over a white page that settles into a very light grey and the near-black label reads cleanly; over a dark page it settled into mid-grey, and the same near-black label dropped to a contrast of 3:1 — different pixels, but not text anyone was going to read.

    In dark mode the button now uses the colour that translucent grey resolves to on a light page, so the default button looks the same in both themes — which is already true of every other Notion colour, all of which are opaque. Buttons with a colour set are unchanged.

    See the widget →
  2. New

    D-Day Pro — every date, nearest first

    The free D-Day widget counts one date, which is right until you have four. Pro takes a list and sorts it by whatever happens next — dates ahead count down, dates behind count up, and a thousandth day arriving on Friday outranks a birthday next month.

    Milestones are worked out for you: every hundred days and every anniversary, whichever comes first, with how far away it is. Birthdays repeat every year rather than receding, 29 February stays in February, and Korean day-1 counting is a per-date switch. The list is edited on the site and the embed only reads it — which is what lets the embed be locked to your account.

    See the widget →
  3. New

    Budget Tracker Pro — your ledger lives in Notion

    The free Budget Tracker keeps a bounded number of entries and shows the current month, which is right for "what's left this month" and wrong for keeping a year of records. Pro moves the ledger into a Notion database you own: each expense becomes a row, and the widget's total is a query over that database rather than over anything we store.

    So the history accumulates where Notion's filters and charts can reach it, a row added in Notion shows up in the widget, and there is no entry cap. The widget still can't delete rows — a destructive write authorized by a public embed URL isn't something you would notice and undo — so corrections happen in Notion.

    Which column is which is yours to choose — amount, date, and whether the note goes in the row title or a text column of its own — pre-filled with a sensible guess, because a database with Spent beside Income beside Budget makes a guess exactly that.

    See the widget →
  4. New

    New widget: Budget Tracker

    Set a monthly budget, then type expenses straight into the embed — amount, short note, done. The headline is what you have left, with a bar for how much of the budget is gone and the month's entries listed underneath.

    The month comes from your device's clock rather than a stored field, so it rolls over by itself at local midnight and nothing is deleted when it does — last month's total stays visible underneath. Won, dollars, euros and yen, switchable inside the widget.

    See the widget →
  5. Fixed

    The rest of the date widgets roll over too

    Last week's midnight fix covered Habit Tracker Pro, Today and Age. Going through the others found the same fault in Mini Calendar, D-Day, Quote of the Day, Habit Tracker and the year and month progress bars: left open in a Notion page, each kept showing the day it was opened.

    The calendar had a second, quieter version of it. Its pages are pre-rendered, and the highlighted day was baked in at build time — so a freshly loaded calendar ringed the day of the last deploy, not today. It now marks the real date, and a calendar left open on the last of the month turns the page by itself unless you have paged somewhere else.

  6. Fixed

    Notion Button: early-morning presses no longer land on yesterday

    The date on each row came from the server's clock, which runs in UTC. A press between midnight and 09:00 in Seoul — or any evening press in the Americas — was therefore filed under the wrong day.

    The date is now computed in the time zone recorded when you set the button up. Opening the setup page once applies it to buttons made earlier; until then they behave exactly as before.

    See the widget →
  7. Fixed

    Widgets no longer get stuck on yesterday

    A widget in a Notion page left open across midnight kept showing the previous day. On Habit Tracker Pro that wasn't only cosmetic: ticking a habit in that state recorded it against yesterday rather than today.

    Widgets now roll over on their own at midnight — no reload needed, and a laptop closed for days comes back on the right date. Today and Age had the same fault and are fixed with it.

    See the widget →
  8. New

    Notion Button — one click, one row in your own database

    Connect your Notion workspace, pick the database to log into, and every press adds a row to it. Built for the kind of record that only needs "done": a walk, a workout, a glass of water, a dose of medication.

    Connect a database you already keep. There is no schema to match — the widget reads yours and writes the button's name into the title property, today's date into the date property, and the memo into the text property. Picking the database shows you that mapping before you embed anything.

    The memo and the colour are changed inside the embed itself. Once you have one button, 'New button' makes another on the same workspace without reconnecting Notion. A Pro widget.

    See the widget →
  9. Improved

    Pomodoro: set your own focus and break lengths

    The focus and break durations are now editable inside the widget — click the "Focus 25m · Break 5m" line under the buttons and type your own. Anything from 1 to 180 minutes of focus and 1 to 60 of break.

    The setting saves to the cloud, so it follows the embed across devices and reloads. Embeds pasted before this update have no saved state to attach to; the widget will tell you so if you change a duration, and re-embedding from the gallery fixes it.

    See the widget →
  10. Improved

    A small olivtwig.co mark on embeds, and much lighter embed pages

    Embedded widgets now carry a faint "olivtwig.co" link in the bottom-right corner. It is the only thing on an embed that tells a visitor where the widget came from. It hides itself on narrow embeds and on widgets whose content fills the frame, so it never sits on top of anything.

    Embed pages also got a lot lighter — from about 139KB to 40KB — by no longer shipping the long-form detail-page text and the analytics script that embeds never used. Nothing about how the widgets behave has changed.

  11. Improved

    D-Day: optional Korean-style "day 1" counting

    Korean anniversary counting includes the start date, so "100 days" means the 100th day counting from day one — 99 days elapsed. The widget counted the plain difference, which read a day short to anyone used to an anniversary calculator.

    There is now a "Start from day 1" switch in the date editor. On, the target day itself shows D+1 and the 100th day lands exactly on D+100; off, the target day is D-Day and the next day is D+1. It is on by default on the Korean widget and off elsewhere. Counting down is unchanged.

    This release also fixes an off-by-one for viewers west of UTC, whose D+ count could read one day high.

    See the widget →