Skip to content

Changelog

What changed in the kit, in plain words.

The kit’s changes that reach your app, updated as each change lands on the kit.

An AI model reads each day’s commits, leaves out the ones that only matter inside the kit’s own code, and writes the rest in plain words. Each entry names the pull requests it came from.

Newest entries at 0eba5597c7ca

4 of the kit’s commits from Sep 30, 2026 come in as their authors wrote them. The two about email-link sign-in fold into one New entry, the sign-in page fix becomes a Fixed entry, and the test change is left out.

On main

Not in a tagged release yet. pnpm template:update takes it.

Before you update

  • Action

    · 0eba5597c7ca

    Move your test suites into custom folders

    Your own suites at the top of test/unit/ and test/nuxt/ now see the kit's shipped configuration, not yours. Move them into test/unit/custom/ and test/nuxt/custom/, and move any columns from test/unit/schema-cascades.test.ts to test/helpers/custom/schema-cascades.ts.

    Sources #36

Revision dad8e3d80b56

  • New

    PostHog now gets page-leave and dwell data

    PostHog receives page-leave events with dwell time, scroll depth and the previous path. Visits that leave the site no longer count as instant bounces, and locale prefixes no longer split per-page stats.

    Sources #34

  • New

    Coding agents can consult the documentation

    Claude Code, Cursor and VS Code are now wired to the documentation server, so an agent in your app can search the docs and design notes instead of guessing. Agent instructions say the code wins where the two disagree.

    Sources #35

v1.0.0

Released . pnpm template:update v1.0.0 takes it.

Revision 38da6579017d

  • Fixed

    Resend what Hyperdrive never sent to Postgres

    Statements that time out before reaching the database are now resent up to three times, one then two seconds apart, including a transaction's connect and begin. A saturated Hyperdrive still fails without retrying.

    Sources #30

  • Fixed

    Stop Sentry counting the Worker as a user

    Server errors no longer count as an affected user in Sentry. Each event now tells Sentry not to infer an IP address from the connecting Cloudflare address.

    Sources #29

  • Fixed

    Polish the account button, yearly badge and display names

    People without a name now show the local part of their address everywhere instead of 'No name (You)'. The yearly saving badge floats over the tab's corner, and the collapsed account button is evenly padded.

    Sources #32

Revision 52b3ae75da0f

  • Fixed

    Send button stays put after a refused send

    After a refused send, fields now validate as you type, so the error is gone before you press Send again. The button no longer moves out from under the pointer, and a click near its lower edge sends the form. A fresh form still waits until you leave a field.

    Sources #28

Revision 6b495b393895

  • Improved

    Remove blog button from 404 and 410 pages

    The 404 and 410 error pages no longer show a button that links to the blog.

    Sources #25

  • Improved

    Document image provider setting for deploys

    The example environment file now lists the NUXT_IMAGE_PROVIDER setting for deploys and has shorter comments.

    Sources #26

Revision 9e1aea26b243

  • Fixed

    Second dev server no longer stops when port 5432 is taken

    A second dev server no longer stops when 5432 is taken: PGlite moves to the next free port and points the database commands and Drizzle Studio at it. The example ports moved to 5442 and 5450, outside the automatic range; a pinned port that is taken still stops the dev server.

    Sources #22 #24

  • Fixed

    Dev server no longer warns about unresolved packages

    Running the dev server no longer shows a warning about ten packages it could not resolve in advance. Existing projects pick this up on their next install.

    Sources #23

Revision 70f495b3c02d

  • Fixed

    App jobs now type-check in tests

    An app's own jobs could fail type-checking as soon as a test imported them. They now check like the kit's own jobs do.

    Sources #15

  • Fixed

    Content survives type-checking while the dev server runs

    Running type-check while a dev server was up could wipe the content database and make every content page fail until a restart. The content update keeps the running server's data intact.

    Sources #16

  • Fixed

    Sample blog image no longer redirects the blog page

    Under a dev server, visiting /blog redirected to /blog/ because a sample image sat in a folder of that name. The image has moved, so the blog page answers directly.

    Sources #18

  • Fixed

    Animations no longer fail your test run

    A browser-testing update made motion-v animations raise unhandled errors under vitest, so any app that animated could fail its suite. The update is held back until the underlying bug is fixed.

    Sources #21

Revision 131069ce30cb

  • New

    Email-link sign-in now proves the account's address

    Email-link sign-in now proves an account's address, and a link can only prove the address it was sent to. Until it proves that address, an account can't add a sign-in method, buy, or invite or promote members, and suspended accounts are refused before the link proves anything.

    Sources #10 #12

  • Fixed

    License now names the licensee

    The license document now names the person or company it is issued to, not only at checkout.

    Sources #8

  • Fixed

    Signed-in visitors are sent on from the magic link page

    Visitors who are already signed in are now sent on from the magic link page instead of being held there.

    Sources #13

Revision db3a51ec9e7c

  • Fixed

    Polar payments now use a fixed API version and verify webhooks with any secret

    Checkouts and refunds no longer break when Polar changes its API; if the fixed version is rejected, the kit falls back and reports the problem. Webhook signatures are now verified for any secret format, and error reporting gives up on a stalled tracker after three seconds.

    Sources #7

Revision 3217573eb935

  • New

    Let Stripe be the merchant of record

    A new flag makes Stripe the merchant of record: Stripe handles tax, fraud, disputes and receipts, and you no longer owe the tax yourself. Stripe must approve the account, and products need eligible tax codes. Turning it on with Stripe Tax makes checkout refuse to run.

    Sources #4

  • New

    New Nuxter logo and favicon

    The kit now ships the Nuxter mark: an N built from a diagonal band between two blocks, which also reads as a percent sign. In the app the mark uses your primary colour, and the favicon follows the colour scheme.

    Sources #6

  • Improved

    Default resources named after Nuxter

    The default Cloudflare database, Hyperdrive, avatars bucket and queues now use the Nuxter name instead of the kit's working title. Package and analytics labels follow.

    Sources #5

  • Fixed

    OAuth-only sign-in works with passkeys and TOTP off

    Turning off passkeys no longer breaks the login page, and turning off TOTP no longer breaks the build. Apps can also drop the pro plan or a locale from the config without code edits, and the docs mark which directories belong to the app.

    Sources #3

Revision f71de0f86878

  • New

    Initial release of the kit

    The starter kit is now available to build your product on.

    Sources f71de0f

Updates

Already a customer?

One command brings every change on this page into your app.

pnpm template:updatetakes each update as one commit.