Changelog
Listed below are the key changes in each update release of Notom, the newest release is listed first.
v0.34.0 - 2026-06-27
Changed
- Inbound request spans now record the client user_agent.original attribute (via tamlib bump), so traffic can be segmented by user-agent in tracing - e.g. distinguishing search-engine crawlers from human visitors.
Fixed
- The PostHog analytics proxy now forwards the real visitor IP and user-agent (via libposthog bump); they were previously masked, so geo, device and bot attribution in PostHog were inaccurate.
v0.33.0 - 2026-06-21
Changed
- MCP tool permissions are now derived from the request verb rather than a hand-maintained per-RPC list; the permissions gating each tool are unchanged.
v0.32.0 - 2026-06-21
Changed
- URL notes now open in a read-only view showing the page title, link and crawled summary, rather than an editable form; category remains editable.
v0.31.0 - 2026-06-18
Changed
- User count reported to Central now excludes service accounts (bots), so the dashboard reflects real users.
v0.30.1 - 2026-06-17
Fixed
- Changelog page now shows the correct product name (was a stale codename) and has a page description.
v0.30.0 - 2026-06-17
Changed
- Public content review: the "Use with AI" page is now linked from the nav and footer on all pages; copy and SEO tidy-ups across the marketing pages, docs and policies (meta descriptions added, view labels and product name corrected, testimonial sections reframed as illustrative).
Fixed
- Comparison hub structured data (/vs and /for) referenced the old preview domain instead of notom.app.
v0.29.0 - 2026-06-17
Changed
- Updated workspace library dependencies to their latest versions.
v0.28.0 - 2026-06-16
Changed
- Internal: MCP tools are now generated from the notes service methods via a shared libapi bridge (input schemas derived from the API definitions), reducing hand-maintained boilerplate. No change to the available tools.
v0.27.0 - 2026-06-16
Changed
- Updated workspace library dependencies to their latest versions (including libcentral - Status/QueryStats pull endpoints and running pull handlers as the system service account).
v0.26.0 - 2026-06-16
Changed
- Updated the "Connect your AI assistant" guide: Claude connectors are added on claude.ai in a desktop browser (the phone app inherits them), note the paid-plan requirement, and the "Allow" authorisation step.
v0.25.5 - 2026-06-16
Fixed
- The AI-assistant authorisation screen is now styled and reliably completes when you press Allow, including in apps that block third-party cookies (it previously could loop on the consent step).
v0.25.4 - 2026-06-16
Fixed
- Pressing "Allow" on the AI-assistant authorisation screen now completes the connection instead of reloading the page (the consent step lost the session on the cross-site form submission).
v0.25.3 - 2026-06-16
Fixed
- Signing in to connect an AI assistant now completes successfully end to end - approving access returns you to your assistant connected, with your notes and to-dos available (several steps of the sign-in were failing).
v0.25.2 - 2026-06-16
Fixed
- The "Allow access" screen when connecting an AI assistant now displays correctly (it was a blank page), so you can approve the connection and finish signing in.
v0.25.1 - 2026-06-16
Fixed
- Connecting an AI assistant by signing in now works: dynamic client registration no longer fails for clients (Claude, ChatGPT, …) that omit optional fields, which previously returned "registration failed".
v0.25.0 - 2026-06-16
Added
- gRPC/Connect API: a notom.notes.v1 service (GetNote, ListNotes) mounted at /api (enable with api_enable), callable over gRPC and Connect-JSON. Authenticated with a libtwad API key (X-API-Key or Authorization: Bearer twk_...) or an OAuth bearer token, running as the authenticated user in their space.
- OpenAPI v3 spec for the API services, served at /api/openapi.json (generated from the protos, describing the Connect JSON endpoints).
- API notes service expanded to the full set of typical interactions: CreateNote and UpdateNote (plain text in), GetNote/ListNotes, and the "one thing to do right now" via GetNext (the most-imminent open action) and CompleteNext. Available over gRPC, Connect-JSON and in the OpenAPI spec.
- MCP server for notom at /mcp/notes (streamable-HTTP), exposing the notes operations as permission-gated tools: list_notes, get_note, create_note, update_note, get_next (the one thing to do now) and complete_next. Authenticated with a libtwad API key or OAuth bearer; tools are filtered per caller permission.
- AI assistants (Claude, ChatGPT, Cursor, …) can now connect to notom by signing in: an OAuth 2.1 / OIDC server with dynamic client registration (enable with oauth_enable), so connecting needs only the URL https://notom.app/mcp/notes and a sign-in, no key to copy. API keys can also be scoped read-only or read-and-write and optionally pinned to one space.
- New "AI assistants & API" settings page (/settings/api-keys): create an API key (shown once), choose read-only or read-and-write access and optionally pin it to a space, see your keys and revoke them. Shown in the account menu when api_enable is on.
- New guide "Connect your AI assistant" (/docs/connect-ai/) with step-by-step instructions for Claude, ChatGPT and Cursor, plus a public page (/ai) explaining how to use notom from your AI assistant.
v0.24.0 - 2026-06-16
Changed
- Updated workspace library dependencies (libcentral, libtwad) to their latest versions.
Fixed
- Note and action creation events now always record the space the note/action belongs to. Previously a creation path with a non-space-scoped token (e.g. the PWA share-target) logged the event with a nil space, so the events log was missing the space id for some note/action creations. Space is now mandatory on these events.
v0.23.0 - 2026-06-16
Changed
- Updated the libcentral dependency to its latest version.
v0.22.0 - 2026-06-15
Added
- ADHD landing pages now lead with real app screenshots (capture box, notes list, Actions, and the One focus view), with light/dark variants. The marketing nav gains a "Who it's for" link and a light/dark/system theme switcher on every page, and the homepage feature grid adds a sixth card ("Capture from any app"). ADHD copy simplified and the hub now states "for ADHD brains" up top.
Changed
- Action due times now read by calendar day - "today", "tomorrow at 9am", "Mon at 2pm" - instead of 24h countdowns ("in 20h"), so same-day items read calmly as "today" and next-day items are no longer confusingly shown as "in 20h". The defer control now always shows its "Defer" label (was icon-only on narrow screens).
Fixed
- Cookie consent banner now renders correctly (centred card, rounded corners, dimmed backdrop) instead of falling back to the browser default (top-left, bordered). libconsent ships dialog-positioning CSS and template classes that were never wired into the app Tailwind build; they are now included.
v0.21.0 - 2026-06-15
Changed
- SEO: robots.txt now also disallows /admin (auth-gated admin UI should not be crawled).
- ADHD landing page (/for-adhd) restructured from one long scroll into a short hub linking four focused single-idea sub-pages (/for-adhd/capture, /no-setup, /auto-actions, /one-thing) - better for the audience it targets. Each is in the sitemap with a four-deep breadcrumb trail.
v0.20.0 - 2026-06-15
Changed
- Telemetry: product-prefixed service.name for readable SigNoz service list.
v0.19.0 - 2026-06-15
Changed
- Telemetry: three-tier service identity (product=notom, app=notom, instance.id).
v0.18.0 - 2026-06-15
Changed
- Switch telemetry export to config-driven OTLP (SigNoz) via otlp.InitFromConfig.
v0.17.0 - 2026-06-15
Added
- Defer actions: snooze an action to a preset (in 3 hours / tomorrow morning / this weekend / next Monday) or a custom date-time. Deferring drops the action off the do-now and One pickers until the chosen time, then it reappears. Presets resolve to natural anchor times (e.g. 9am) in your timezone. Available from the Actions list, the do-now card, and the One page, alongside a new inline edit form.
Changed
- OTLP telemetry config keys renamed:
grafana_endpoint_trace/grafana_endpoint_metric/grafana_endpoint_log/grafana_apikeyare replaced byotlp_traces_endpoint/otlp_metrics_endpoint/otlp_logs_endpoint/otlp_headers. Operators must update config before deploy; the old keys are no longer read.
v0.16.0 - 2026-05-31
Added
- Search: dedicated
/s/{spaceID}/searchpage with a type-filter dropdown and URL-preserved query state (q + kind round-trip via history.replaceState, so reload / back-forward / pasted links all restore the filter). - One: dedicated
/s/{spaceID}/onefocus page showing the single most-imminent open action big, with a Done button. Hit Done and the next-most-imminent slides in via the realtime channel. - 13 public SEO landing pages: 6 comparisons (vs Notion / Apple Notes / Google Keep / Evernote / Obsidian / Todoist) and 7 audience pages (for ADHD / founders / freelancers / parents / writers / students / recovering Notion users). Each carries hero, pillar sections, comparison table or typical-day scenario, who-it-fits cards, FAQ + JSON-LD FAQPage, and cross-links to siblings.
- /vs and /for index/hub pages linking to the comparison and audience pages, plus a CollectionPage + ItemList JSON-LD schema for each.
- BreadcrumbList JSON-LD on every secondary marketing page (Home > Compare > vs Notion etc.) for SEO-friendly SERP breadcrumbs. Wired centrally via the seo plugin so adding a new marketing page only requires an entry in the URL -> leaf-name map.
- Health providers for the SSO signin-state queue (twad) and the consent audit log table (consent), exposed via the app /health endpoint. Warn/fail thresholds defend against brute-force on /auth//login and silent draining bugs.
Changed
- Actions page reworked: grouped view (Overdue / Today / This week / Later / No date / Completed) when the filter is broad, relative-time display ("2 days overdue", "in 3h", "tomorrow at 9am") alongside absolute date, in-place htmx capture (no full reload), source-note link on inferred actions, and per-tab counts that stay in lockstep with the displayed list. Default tab renamed from "Upcoming" to "Open" (the
?filter=upcomingURL is still accepted as an alias). The "Today" boundary uses the users timezone, not the servers, and "Week" is now strictly the next 7 days from now (no longer silently includes overdue). - Authenticated chrome: sticky body-scroll navbar replaces the old inner-scroll layout. Mobile nav-tab labels collapse to icons on narrow viewports (with title tooltips); avatar no longer pushed against the viewport edge.
- Marketing-page screenshots are now theme-aware via
<picture>+ a MutationObserver ondata-theme, so each visit fetches only the variant that matches the active theme (rather than always pulling both light and dark assets). - Sitemap.xml now lists 22 URLs (was 6), covering the 15 new SEO landing pages, the 2 hub pages, and /contact, with priorities reflecting editorial importance (core 0.8 / hubs 0.7 / leaves 0.6).
- Cookie consent banner: category labels shortened ("Marketing measurement" -> "Marketing", "Remember my preferences" -> "Preferences", "Help us improve" -> "Improvement") so the dialog fits comfortably on narrow viewports. Descriptions reworded to match.
- Em-dashes stripped from all user-facing marketing copy, page titles, the notes "Note added" toast, and inline JS comments emitted in served HTML. Voice consistency across public content.
- All 4 existing marketing pages (index, how-it-works, pricing, contact) now use a shared footer partial; the footer gains links to /vs and /for so the new SEO landing pages are discoverable from anywhere on the site.
- How-it-works and pricing pages each carry an inline "Coming from another tool?" cross-link to the relevant vs-* comparison pages.
Removed
- Sidebar drawer in the authenticated chrome (drawer wrapper,
{{define "menuitem"}},{{define "sidebar"}}, and the$hideSidebarflag are all gone). The app has no side nav; the markup was unused. ui/assets/robots.txtdeleted. The seo plugin already serves/robots.txtdirectly with proper dev (Disallow: /) vs prod (real Robots) gating, so the static asset was dead and confusing.
Fixed
- Vertical scroll on mobile was broken by a leftover
body { overflow-y: hidden }rule from the previous inner-scroll layout. Rule removed; scroll restored on all viewports. - og:description and twitter:description now reflect each pages own description on shared links. Previously every marketing-page link shared on Twitter/LinkedIn/etc. showed the same generic site-wide blurb in the social-card preview, because the apps FnOutput was clobbering the per-page description before the seo plugins finalize() could pull it from rc.Head().
- SSO signin self-heals stale parent-domain neighbours of the binding cookie, so signin no longer intermittently fails with "invalid state binding" after a deployment that previously set the cookie with a Domain= attribute. Same fix shape as the earlier auth-cookie self-heal.
Security
- HSTS (max-age=1 year, includeSubDomains), X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, and X-Frame-Options: SAMEORIGIN are now set on every response via the new
web.SecurityHeadersmiddleware. CSP is intentionally not set globally - a useful CSP needs per-app allow-lists and nonces.
v0.15.3 - 2026-05-30
Fixed
- more fix scrolling!!!
v0.15.2 - 2026-05-30
Fixed
- Fixed broken vertical scrolling
v0.15.1 - 2026-05-30
Fixed
- Mobile layout fixes
v0.15.0 - 2026-05-30
Changed
- Various layout/content tweaks
Fixed
- Fixed login errors caused by libtwad cookie changes
v0.14.0 - 2026-05-29
Changed
- Removed Anthropic/Claude references -> just AI
- Slight font size increase
Fixed
- Fixes/improvements to SEO
v0.13.0 - 2026-05-29
Changed
- Further visual refinement
Fixed
- Fixed SSO login error due to recent libtwad security improvements
v0.12.0 - 2026-05-29
Added
- Large continued developments in all areas
v0.11.0 - 2026-05-04
Changed
- minor content/labelling tweaks
v0.10.0 - 2026-05-04
Added
- Added admin area
v0.9.0 - 2026-05-04
Changed
- More visual tweaks
v0.8.0 - 2026-05-03
Added
- Many changes
Changed
- Various UI fixes/tweaks, incl. to settings and page header
v0.7.0 - 2026-04-26
Added
- lots
v0.6.0 - 2026-04-20
Added
- Customisable behaviour for actions added on adding URLs
v0.5.1 - 2026-04-20
Fixed
- Various UI and URL-handling fixes
v0.5.0 - 2026-04-19
Changed
- Tweaked mobile padding/spacing
v0.4.0 - 2026-04-19
Added
- Added AI inference of Todo actions
Changed
- Various UX improvements
Fixed
- Various dark mode fixes
v0.3.0 - 2026-04-19
Added
- Background jobs for pulling URL title/summary
v0.2.0 - 2026-04-19
Added
- Google/MS/Apple signin support, and make Github optional
v0.1.0 - 2026-04-18
Added
- Initial build
- Posthog