Changelog

Fresh off the board.

This release adds image cards (paste or drag-drop a photo onto the board), per-note due dates with an urgency pill, a ⌘K search palette with recents and multi-field matching, share-link board invites replacing the old username invite flow, a root / redirect to your last-opened board, an account settings drawer, per-board new-card color modes, and an edge-proximity chrome reveal. Analytics script configuration was also updated for per-project subdomains.

Breaking changes

  • /dashboard is now the boards list — / is reserved for last-board redirectThe boards list route has moved from / to /dashboard. Any bookmarks or links pointing to / will now redirect to the last-opened board rather than the list. Update any hardcoded links accordingly. "dashboard" is also now a reserved workspace slug and cannot be claimed. e08b656

New

  • Image cards let you paste or drag photos directly onto the boardPressing ⌘V or dragging an image onto the canvas creates an image-first note at the cursor. Natural dimensions are stored on the attachment and capped to a 2×2-card bounding box on first paint; you can resize with corner handles (hold Shift to lock aspect ratio, double-click to reset). A source_url field is captured from clipboard HTML when available, and a Trash button appears on hover. Image cards also appear in the search palette, dashboard thumbnails, and activity feed. 9a09ff1
  • Per-note due dates with an urgency pill on card frontsNotes now have an optional due_date set via a calendar picker on the back of the card. Text card fronts show a day-count pill tinted by urgency so overdue and soon-due items stand out at a glance. 9a09ff1
  • ⌘K search palette with recents, multi-field matching, and orderingA global ⌘K shortcut opens a search palette shared across the dashboard and board pages. Empty queries show your 5 most-recently-active boards and 5 recent notes; results match note content, description, assigned user, and checklist items. Boards are ordered by last activity, the current board is excluded from recents, and completed or archived notes appear struck through. 8dd1d10 fbe19be
  • Account settings drawer and per-board new-card color modesProfile details (avatar, name, email) have moved off the board into a dedicated account drawer accessible from the home screen. Board settings now include a color mode for new cards — fixed, last-used, or random — with a user-level default shown as inline circles alongside the color swatches. e6b559b 6e05ad7
  • Edge-proximity chrome reveal on boardsThe top chrome band (including the search dock and corner buttons) now reveals when the cursor approaches the top edge of the board, keeping the canvas uncluttered the rest of the time. 6390c81

Improved

  • Share-link invites replace the broken username invite flowEach board now has a /join/:token share link: anyone who follows it and signs in via Neologin is added as a collaborator. The board owner can copy or reset the link from the Collaborators section of board settings. The old username-based invite (which required an existing account and exact slug) has been removed. 6e05ad7
  • Root / now redirects signed-in users to their last-opened boardVisiting / takes you straight back into your most recent board. If there is no last board, the board has been deleted, or access has been revoked, you land on /dashboard instead. The boards list has moved from / to /dashboard permanently. e08b656
  • Unified keyboard shortcut styling and Shift+? help dialogAll keyboard shortcut chips across the app now use a single .keycap CSS class so they can't drift out of sync. ⌘K (Find a board or note) has been added to the shortcuts list, Shift is spelled out to match the existing Ctrl convention, and pressing Shift+? anywhere opens the help dialog globally. b5165f2

This release replaces the post-login home screen with a two-column dashboard featuring a tabbed activity feed and a visual stack rail, adds a search palette, swaps the baked-in passkey auth for the @neologin/sdk integration, and wires up Surrge analytics via environment config.

Breaking changes

  • New required env vars for @neologin/sdk — existing deployments must update configSwitching to @neologin/sdk introduces new environment variables in src/config.ts (and .dev.vars / config/deploy.yml). Deployments that do not add the required Neologin config will fail to start or authenticate users. Check src/config.ts for the full list of expected vars. 561bd8f

New

  • New dashboard with tabbed activity feed and board stack railThe home screen at / is now a two-column layout: a tabbed activity feed (Today / Yesterday / Past week / Past month, up to 20 entries each, empty tabs hidden) on the left, and a featured-stack rail on the right showing your top 4 boards as fanned sticky-note stacks and the rest as compact rows. A search palette and adaptive column layout were added in a follow-up pass. b078454 0e52a57
  • Surrge analytics added via environment configA surrge config block (url and domain) can now be set via environment variables; when surrge.url is present the layout injects the track.js script automatically. No code branch is needed — omitting the env vars disables analytics entirely. 45f7e00

Improved

  • Authentication replaced with @neologin/sdkThe custom passkey implementation has been removed and replaced with the @neologin/sdk integration. All Neologin-specific wiring lives in index.tsx and src/config.ts; the rest of the app reads c.get("username") and is auth-provider-agnostic. A migration script (bin/migrate-users-to-neologin.ts) is provided to move existing users. 561bd8f 821fc02