Changelog

Every shipped change to StashSync.app, newest first. RSS.

  1. Fixes a sync issue where switching the document owner could clear synced data; the Yjs document is now recreated on owner change instead of wiping its shared maps.

    Read full notes →
  2. Removes the client-side share HTML rendering path; share snapshots are now generated exclusively server-side, simplifying the sharing flow and reducing client bundle weight.

    Read full notes →
  3. Fixes the OG image to point at the app worker instead of an edge runtime, and changes profile subdomain redirects from 301 to 307 to prevent browsers caching stale redirect targets.

    Read full notes →
  4. Clears the files/folders maps and bookmark metadata cache from the Yjs document on account switch, preventing stale data from one account bleeding into another.

    Read full notes →
  5. Corrective re-tag following v1.4.3; no functional changes.

    Read full notes →
  6. Adds canonical URL tags, an Open Graph site name, and dynamically generated OG images to public profile pages for better SEO and social sharing previews.

    Read full notes →
  7. Fixes the middleware profile rewrite to skip reserved subdomains, preventing app routes from being incorrectly treated as user profile pages.

    Read full notes →
  8. Inlines NEXT_PUBLIC_PUBLIC_DOMAIN at build time so subdomain URL generation works correctly in the Cloudflare Workers runtime.

    Read full notes →
  9. Adds the ability to pin files for offline access via the browser Cache API, and launches public note sharing under per-user subdomains.

    Read full notes →
  10. Replaces three separate first-run interruptions (demo modal, shortcuts modal, and DriverJS tour) with a single guided onboarding modal that walks new users through a linear flow.

    Read full notes →
  11. Prevents an ERR_FAILED error when the browser's Cache API is unavailable in offline contexts.

    Read full notes →
  12. Replaces the topbar search input with a command palette trigger, and fixes a shortcut conflict that prevented typing N or B in the palette's search field.

    Read full notes →
  13. Prevents a Clerk JS error that could occur when navigating to the app root while the device is offline.

    Read full notes →
  14. Bumps React to 19.1.7 and Next.js to 16.2.6 to pick up upstream security fixes, and adds release summaries for the v1.2.35–v1.3.0 range.

    Read full notes →
  15. Introduces an API Keys settings tab for managing integration keys, adds a REST API endpoint reference panel, and adds MCP server configuration guidance for AI assistant integrations.

    Read full notes →
  16. Adds customizable tour popover button texts, a backup history list with download support, and contextual help links throughout the app.

    Read full notes →
  17. Redesigns the Toast notification component with a new variant structure, and reskins driver.js tour popovers to match the app's design system.

    Read full notes →
  18. Adds search functionality to the StashPicker and TagPicker, improves the BookmarkEditor toolbar, and unifies button styles behind a shared Button component.

    Read full notes →
  19. Reworks the Trash view with filters and bulk actions, introduces a select-mode toggle and floating bulk action pill across all views, and improves the Settings modal layout.

    Read full notes →
  20. Reworks the cloud backup UX with enhanced frequency options and splits bookmark import/export into its own dedicated settings tab.

    Read full notes →
  21. Makes the note editor layout responsive on small screens for a better mobile editing experience.

    Read full notes →
  22. Refactors onboarding to remove the inline demo data loader, simplifying the first-run flow.

    Read full notes →
  23. Overhauls the sidebar UI/UX, unifies all settings into a single two-panel modal, replaces add-forms with inline search-and-create, and adds item count badges to stash/tag navigation entries.

    Read full notes →
  24. Fixes an issue where pressing Escape while the command palette was open would close the Note Editor instead of dismissing the palette.

    Read full notes →
  25. Adds a recent items list to the Command Palette and improves keyboard navigation within it.

    Read full notes →
  26. Completely overhauled the embedded note renderer to faithfully reproduce all content types, and added an in-editor features inventory document.

    Read full notes →
  27. Improves accessibility across embedded content components, enhances the EmbedBookmarkCard preview handling, and increases the maximum width of the Tiptap editor container.

    Read full notes →
  28. Simplifies the bookmark data model by removing unused fields, and cleans up related demo content.

    Read full notes →
  29. Adds demo content for new users, unifies the onboarding flow into a single modal, and adds ini language support to the code block syntax highlighter.

    Read full notes →
  30. Extends the note editor with find-and-replace, note/bookmark embeds, emoji picker, and several new Tiptap extensions.

    Read full notes →
  31. Adds table insertion, inline/block math rendering, callout blocks, and a reworked block controls toolbar to the note editor.

    Read full notes →
  32. Syncs the stash filter with the sidebar selection, adds a /file slash command in the note editor, and highlights search matches in the command palette.

    Read full notes →
  33. Adds an untag action icon to the bulk action bar and improves its layout for better responsiveness and accessibility.

    Read full notes →
  34. Replaces the inline pin button with a context-aware row actions menu on note and bookmark items, and overhauls the dashboard list view layout.

    Read full notes →
  35. Fixes the post-checkout redirect URL so that it correctly points to the production app URL in production and to localhost during development.

    Read full notes →
  36. Enhances the sync status toast with a manual reconnect button and visual improvements for a better offline-recovery experience.

    Read full notes →
  37. Adds Markdown import and export for notes, switches LemonSqueezy billing to production mode, and fixes an invalid store ID.

    Read full notes →
  38. Fixes a critical data mapping error in the Yjs provider and improves wiki-link detection to avoid false positives.

    Read full notes →
  39. Disables file upload and management features when the app is offline, and fixes a crash when both the network and the RSC cache are unavailable.

    Read full notes →
  40. Prevents an incorrect offline redirect when a user creates or duplicates a note while the app is in offline mode.

    Read full notes →
  41. Removes the unused Clerk webhook secret variable from the deployment workflow to clean up CI configuration.

    Read full notes →
  42. Integrates Sentry for real-time error tracking and performance monitoring across the application.

    Read full notes →
  43. Migrates note navigation to client-side SPA-style routing so that notes open and navigate without triggering full network requests, improving offline reliability.

    Read full notes →
  44. Adds manual reconnect support to the Yjs WebSocket provider and bypasses the Clerk token cache on reconnect to ensure fresh authentication.

    Read full notes →
  45. Fixes the service worker's failure to recognize the Clerk proxy domain as an authenticated origin, and improves the WebSocket reconnection flow after going offline.

    Read full notes →
  46. Precaches authentication route shells at service worker install time so that the sign-in and sign-up pages are available offline.

    Read full notes →
  47. Enhances the offline experience with live sync status indicators and user feedback when notes are created while offline.

    Read full notes →
  48. Serves all /notes/* routes from a shared app shell when the device is offline, enabling seamless navigation within the notes section without a network connection.

    Read full notes →
  49. Fixes a CI shell script incompatibility when extracting the build ID on POSIX-strict environments.

    Read full notes →
  50. Replaces the Serwist-based service worker with a custom native service worker implementation for greater control over caching and offline behaviour.

    Read full notes →
  51. Improves service worker caching strategy for React Server Component payloads and removes outdated caches on activation.

    Read full notes →
  52. Fixes a bug where the service worker was incorrectly caching Clerk authentication API responses, causing stale auth state.

    Read full notes →
  53. Excludes Cloudflare-specific configuration files from the service worker precache manifest to prevent caching conflicts.

    Read full notes →
  54. Adds a dedicated packaging step for the Cloudflare Workers build to prevent duplicate Next.js compilation runs.

    Read full notes →
  55. Incremental update to the build process for stability and correctness.

    Read full notes →
  56. Updates the Next.js build process to integrate Serwist for service worker generation, and removes duplicate build steps.

    Read full notes →
  57. Improves button contrast with darker blue shades and updates the Note Editor tour description to accurately reflect the rich-text editor experience.

    Read full notes →
  58. Adds a service worker and caching strategies to enable StashSync.app to function as a Progressive Web App, supporting installation and offline use.

    Read full notes →
  59. Replaces SVG favicons with ICO format for broader browser and OS compatibility.

    Read full notes →
  60. Introduces interactive guided tours to help new users discover key features of the Dashboard and Note Editor.

    Read full notes →
  61. Introduces account deletion, enables WebSocket sync for Free-tier users, and adds automatic bookmark metadata fetching on the Dashboard.

    Read full notes →
  62. The first public release of StashSync.app, introducing core features and full-stack infrastructure.

    Read full notes →
  63. Internal pre-release test build of StashSync.app, used to validate the deployment pipeline before the first public launch.

    Read full notes →