Repository navigation
Releases: Clubedge/create-clubedge-app
Release list
Showcase (showcase-38336585838, CLI v0.17.0)
Walkthrough videos and screenshots for starter.clubedge.live, recorded with the published CLI v0.17.0 in this run. The site pins a release in showcase.lock.json. Only the newest 3 showcase releases are kept.
v0.17.0
Phase 14: the default Starter moves to v0.15.0. The CLI's own code is unchanged; everything new comes from the Starter.
What's new in generated projects
- A docs-style dashboard in both Next.js and TanStack Start, with the layout and colors of the Clubedge docs.
- Sidebar: a section switcher (Dashboard, plus Settings when an auth provider is selected), the dashboard's sections with the one in view highlighted, links to the setup guide and the repository, and an account card with Settings and Sign out. It collapses with its button or Ctrl/⌘+B.
- The page in a rounded card that scrolls on its own, under a top bar with Home, GitHub, and a light and dark switch.
- Phones: a slim top bar opens the sidebar as a drawer from the right.
pnpm dlx @clubedge/create-clubedge-app my-app
pnpm clubedge upgrade # existing projectsv0.16.0
Phase 13: the default Starter moves to v0.14.0. The CLI's own code is unchanged; everything new comes from the Starter's manifest.
What's new in generated projects
- Account settings page at
/settingswhen an auth provider is selected. Users can set a display name, change their password, which signs out their other sessions, and delete their account. Deletion is blocked while a subscription is active. Supabase projects setSUPABASE_SECRET_KEYto allow deletion. - Browser error reporting with observability on. Uncaught errors, unhandled rejections, and render errors caught by the new error pages are all reported. With
otelthey go through/api/client-errors; withsentrythey go to Sentry's browser SDK, loaded only when a DSN is set. - Sentry source maps: builds with
SENTRY_AUTH_TOKEN,SENTRY_ORG, andSENTRY_PROJECTupload the browser source maps to Sentry, then delete them so they are never served. - Auth emails through the jobs queue when both email and background jobs are selected, with retries and backoff.
pnpm dlx @clubedge/create-clubedge-app my-app --auth better-auth --observability sentry
pnpm clubedge upgrade # existing projectsv0.15.0
Phase 11: commands for living with a generated project. The default Starter stays v0.13.1.
What's new
statusshows the project's Starter release, framework, modules, and Git state, whether a newer Starter release exists, and the command to run next. It asks npm for the newest release and still works offline.doctorchecks Node.js and pnpm against the project's versions, installed dependencies, the lockfile, and the env file against the example. It then runspnpm check:services, and--no-servicesskips that. It exits with an error when a check fails, so it also works in CI.- Several modules in one change:
add email resend payments stripeandremove storage paymentsapply as one merge. Requirements are checked after every change, so related changes such as Supabase Auth with Supabase Storage work together. - Conflict summary: after a change, each conflicted file is listed with its number of conflict blocks.
- Upgrade summary:
upgradelists the Starter releases it crosses, with the sections of their release notes, before merging.
Fixes
- A finished command no longer exits with an error when Windows briefly locks the downloaded Starter's temporary folder.
CI
- Generated projects are tested on macOS as well as Linux and Windows.
- The release workflow waits up to 15 minutes for npm to serve a new version.
pnpm clubedge status
pnpm clubedge doctor
pnpm clubedge add email resend payments stripev0.14.1
Patch release. Defaults to Starter v0.13.1.
Fix
- In projects with background jobs or observability, a configuration error at startup, such as a missing
DATABASE_URL, no longer stops the server. Pages that need no database keep working, and the error is reported once.
Existing projects can pick up the fix with:
pnpm clubedge upgradev0.14.0
Defaults to Starter v0.13.0, which adds observability.
What's new
- Observability (
--observability otel|sentry).- Every request is traced, along with calls through the email, storage, and payments composition roots.
- Server errors and failed background jobs are reported once each, with the request's method and path.
otelexports over OTLP to any collector or vendor;sentryuses Sentry's Node.js SDK.- Nothing is sent until
OTEL_EXPORTER_OTLP_ENDPOINTorSENTRY_DSNis set. - The rest of the app only calls small hooks in
@clubedge/core, so the vendor SDK stays in one package.
--observabilityneeds no CLI code: the flag, help text, and prompt come from the Starter's manifest.
Tests
- CI generates an observability project, and the change-modules job adds the observability module to an existing project.
- The release smoke test includes
--observability otel.
pnpm dlx @clubedge/create-clubedge-app my-app --observability otelExisting projects can add it with pnpm clubedge add observability otel or pnpm clubedge add observability sentry.
v0.13.0
Defaults to Starter v0.12.0, which adds background jobs.
What's new
- Background jobs (
--jobs pg-boss). Jobs are stored in the project's PostgreSQL by pg-boss and run by a worker inside the app server, with retries, timeouts, and cron schedules. On Vercel and Netlify, where no server keeps running, a scheduler calls/api/jobs/runinstead. Job code depends on a provider-neutralJobQueueinterface. --jobsneeds no CLI code: the flag, help text, and prompt come from the Starter's manifest.
Fixes
- Generated lockfiles are no longer rejected as broken when pruning an optional peer leaves a package with no dependencies, such as
pg-pooloncepgis pruned for--jobs none. Such entries are now written as{}, the way pnpm writes them.
Tests
- CI generates a jobs project, and the change-modules job adds the jobs module to an existing project.
- The release smoke test includes
--jobs pg-boss.
pnpm dlx @clubedge/create-clubedge-app my-app --jobs pg-bossExisting projects can add it with pnpm clubedge add jobs pg-boss.
v0.12.0
Defaults to Starter v0.11.0, which adds payments.
What's new
- Payments (
--payments stripe): Stripe Checkout, the customer portal, and verified webhooks that keep asubscriptionstable in sync. Billing code depends on a provider-neutralPaymentProviderinterface, so other providers can be added without a refactor. Requires--auth supabaseor--auth better-auth. --paymentsneeds no CLI code: the flag, help text, and prompt come from the Starter's manifest.- CI and the release smoke test now generate and check payments projects, and the change-modules job adds the payments module to an existing project.
pnpm dlx @clubedge/create-clubedge-app my-app --auth better-auth --payments stripeExisting projects can add it with pnpm clubedge add payments stripe.
v0.11.0
Highlights
-
Deployment. Defaults to Starter
v0.10.0(commit9d8fec71):pnpm dlx @clubedge/create-clubedge-app my-app --deploy fly # or railway, render, vercel, netlify pnpm clubedge add deploy vercel # in an existing project
--deploy docker|fly|railway|render|vercel|netlify: each option adds that platform's config. Migrations run before release where the platform supports it, and during the build on Vercel and Netlify.- A migrator in the production image:
node /app/migrate.mjs, for release and pre-deploy commands. - A manual deploy workflow: with
docker, it publishes the image to your repository's GitHub Container Registry. - A readiness endpoint:
/api/readychecks the database, next to/api/health.
--deploycomes from the Starter's manifest; the CLI has no deploy-specific code. -
Tested: CI generates Fly.io and Vercel projects, and the release smoke test generates a Netlify one.
v0.10.0
Highlights
-
Email, password reset, and email verification. Defaults to Starter
v0.9.0(commite858d0b5):pnpm dlx @clubedge/create-clubedge-app my-app # --email smtp is the default pnpm dlx @clubedge/create-clubedge-app my-app --email resend pnpm clubedge add email resend # in an existing project
- Email module:
--email smtp|resend|none. Local projects use Mailpit or the Supabase inbox, and without a provider, emails are printed to the log in development. - Password reset: "Forgot password?" for both Supabase Auth and Better Auth.
- Email verification: for Better Auth, optionally required before sign-in.
- Email module:
-
Modules come from the Starter. Any
--<module> <option>flag is validated against the Starter's manifest, and the help text and the customize prompt list the Starter's own modules.--emailis the first module to use this: the CLI has no email-specific code.
Fixes
- Switching between modules that use different environment variables (for example
smtptoresend) no longer leaves a doubled blank line in.env.local.