Changelog

What's new in Shipfast. Updates ship continuously — the most recent releases are at the top.

Security

Fix: publisher pages are owner-private

  • A `publisher`-access page is now readable only by its owner (and admin). Previously any logged-in user could open another publisher's page by its URL, even though it never appeared in their dashboard — page serving now matches the listing's scope.
  • Authenticated non-owners get a `404` (existence not leaked); anonymous viewers are still sent to login so an owner can authenticate via a share link.
New

Page tags

  • Attach up to 3 PascalCase tags per page (e.g. `MachineLearning`, `LeetCode`).
  • Tags can be set at publish time and edited later from the publish/edit dialog.
  • Tags group pages: they appear in the rail next to "All pages", ordered by how many pages use them, with a count on each.
  • Dashboard: tag chips on each card; click a tag (card or rail) to filter the page list (shareable `?tag=` URL).
  • Published pages show crawlable tag chips linking back to the filtered dashboard.
  • API: `tags` accepted on `POST /api/pages`, returned by `GET /api/pages`, filterable via `?tag=` (AND-ed); new `PATCH /api/pages/:slug/tags` and `GET /api/tags` (counts).
  • Tag document counts are maintained in Postgres (new `tags` + `page_tags` tables, kept in sync by a trigger), split by access level so publisher-gated pages never count toward the public view; falls back to deriving counts when no database is configured.
  • Invalid tags return a clear `400` naming the offending tag and the rule it broke.
New

Adding support for version history

  • Edit and re-publish any page; the live URL stays the same.
  • Up to 5 prior versions kept per page; restore in one click (reversible).
  • Optional labels on each re-publish.
  • Version metadata in Postgres (new `page_versions` table); snapshots in S3.
  • Dashboard: new History modal with Preview + Restore; in-UI restore confirmation.
  • Icon refresh: dashboard wired to the `public/icons` sprite; action buttons are icon-only.
  • Fix: access-only updates no longer create duplicate snapshots.
Improved

Mobile-friendly AI assistant

  • Fixed the in-page AI assistant panel on small viewports.
  • Improved drag handle behaviour on touch devices.
New

File uploads + dashboard redesign

  • Upload files directly when publishing a page — no more copy-paste only.
  • Dashboard redesign: no more scrolling to find your pages, cleaner cards.
New

Bring your own LLM

  • In-page AI assistant powered by your own API key (Anthropic, OpenAI, Gemini).
  • Added LiteLLM gateway support for self-hosted proxies.
  • Keys are stored only in your browser — never sent to Shipfast servers.
New

Page view counter

  • Every published page now tracks views, shown on the dashboard.
  • Iframe previews are excluded so dashboard thumbnails don't inflate numbers.
New

Initial release

  • Publish self-contained HTML pages to clean `/p/slug` URLs.
  • Google sign-in, per-user page library, and instant sharing.