Skip to content

Releases: Clubedge/create-clubedge-app

Showcase (showcase-38336585838, CLI v0.17.0)

Choose a tag to compare

@github-actions github-actions released this 13 Oct 02:28
093ee9d

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

Choose a tag to compare

@yassine-ahmed yassine-ahmed released this 12 Oct 17:38
5911a23

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 projects

v0.16.0

Choose a tag to compare

@yassine-ahmed yassine-ahmed released this 12 Oct 03:13
771bc1f

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 /settings when 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 set SUPABASE_SECRET_KEY to 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 otel they go through /api/client-errors; with sentry they go to Sentry's browser SDK, loaded only when a DSN is set.
  • Sentry source maps: builds with SENTRY_AUTH_TOKEN, SENTRY_ORG, and SENTRY_PROJECT upload 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 projects

v0.15.0

Choose a tag to compare

@yassine-ahmed yassine-ahmed released this 11 Oct 23:47
f203c28

Phase 11: commands for living with a generated project. The default Starter stays v0.13.1.

What's new

  • status shows 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.
  • doctor checks Node.js and pnpm against the project's versions, installed dependencies, the lockfile, and the env file against the example. It then runs pnpm check:services, and --no-services skips 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 stripe and remove storage payments apply 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: upgrade lists 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 stripe

v0.14.1

Choose a tag to compare

@yassine-ahmed yassine-ahmed released this 11 Oct 17:44
9920e5c

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 upgrade

v0.14.0

Choose a tag to compare

@yassine-ahmed yassine-ahmed released this 11 Oct 16:15
53f5152

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.
    • otel exports over OTLP to any collector or vendor; sentry uses Sentry's Node.js SDK.
    • Nothing is sent until OTEL_EXPORTER_OTLP_ENDPOINT or SENTRY_DSN is set.
    • The rest of the app only calls small hooks in @clubedge/core, so the vendor SDK stays in one package.
  • --observability needs 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 otel

Existing projects can add it with pnpm clubedge add observability otel or pnpm clubedge add observability sentry.

v0.13.0

Choose a tag to compare

@yassine-ahmed yassine-ahmed released this 11 Oct 15:02
425d6db

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/run instead. Job code depends on a provider-neutral JobQueue interface.
  • --jobs needs 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-pool once pg is 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-boss

Existing projects can add it with pnpm clubedge add jobs pg-boss.

v0.12.0

Choose a tag to compare

@yassine-ahmed yassine-ahmed released this 11 Oct 12:42
052e8f0

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 a subscriptions table in sync. Billing code depends on a provider-neutral PaymentProvider interface, so other providers can be added without a refactor. Requires --auth supabase or --auth better-auth.
  • --payments needs 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 stripe

Existing projects can add it with pnpm clubedge add payments stripe.

v0.11.0

Choose a tag to compare

@yassine-ahmed yassine-ahmed released this 11 Oct 11:35
02108ed

Highlights

  • Deployment. Defaults to Starter v0.10.0 (commit 9d8fec71):

    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/ready checks the database, next to /api/health.

    --deploy comes 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

Choose a tag to compare

@yassine-ahmed yassine-ahmed released this 11 Oct 10:32
265a16d

Highlights

  • Email, password reset, and email verification. Defaults to Starter v0.9.0 (commit e858d0b5):

    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.
  • 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. --email is the first module to use this: the CLI has no email-specific code.

Fixes

  • Switching between modules that use different environment variables (for example smtp to resend) no longer leaves a doubled blank line in .env.local.