Skip to content

feat(create-lumibase): scaffold a working Next.js website with CMS, Studio and seed content #332

Description

@khuepm

Parent: #331. Scope approved by khuepm on 2026-09-06; supersedes the dependency-only proposal below.

Outcome

A real first website: Next.js consumer + reachable LumiBase CMS/Studio + seeded content. Do not add a package merely to raise download counts. Keep create-lumibase as the single implementation shared by npm create and lumibase init.

Acceptance

  • Generated consumer uses lumibase as a runtime dependency and documented SDK imports; preserve @lumibase/sdk compatibility.
  • A new user outside the monorepo can install without workspace:*, provision/connect CMS and Studio using explicit prerequisites, and see seeded content in the website.
  • Document exact backend/Studio artifact, runtime, credentials/bootstrap steps and URLs; never claim a minimal Hono/D1 scaffold is the full PostgreSQL CMS. The first contract is Next.js with explicitly documented CMS/Studio provisioning; detailed provisioning choice must be frozen before implementation.
  • User can edit content in Studio and verify a published change through a public/least-privilege client. Preview/review wiring requiring an editor delta is audited and tracked as U1, not replaced with fake/mock production data.
  • Seed/bootstrap is repeatable and site-scoped; no admin token reaches the browser or public client. A second tenant cannot read the first tenant content.
  • npm create and lumibase init produce equivalent behavior; include doctor/types guidance where actually supported.
  • Packed artifact cold-install evidence is supplied to v1 RC: validate unified npm packages and scaffolder compatibility #448; no claim of published-install success until that exact registry artifact is tested.
  • EN/VI docs/specs and setup/shell-impact review accompany the final accepted behavior. docs: clarify create-lumibase starter vs full CMS vs lumibase CLI onboarding #333 consumes verified commands and URLs.

Dependencies / ownership

Lane A after #450 is accepted; #334 follows the frozen consumer contract. Not dispatched now. Exact provisioning contract and file grants are required before coding. No root manifest/lockfile/workflow/Studio/shared-doc changes without coordinator allocation. Existing Docker/Cloudflare scaffold paths retain regression coverage.

Historical dependency-only proposal — superseded, retained for context

Parent: #331

Problem

Today packages/create-lumibase/templates/default/package.json.hbs and the Cloudflare template only depend on hono / drizzle-orm / zod / etc. — no lumibase or @lumibase/*. Scaffolded projects never enter the “must install LumiBase” loop.

Proposed work

  • Add lumibase as a devDependency in scaffold templates (once the CLI is published).
  • Add @lumibase/sdk as a dependency where the template is meant to talk to a CMS API — or document clearly when the starter-server template should omit the SDK vs when a consumer template must include it.
  • Optionally emit a starter lumibase.config.json and npm scripts for types / doctor.
  • Keep create-lumibase as the single scaffold implementation; lumibase init already delegates so the two entrypoints cannot drift.

Acceptance

  • Generated package.json references the agreed LumiBase packages for the chosen template path.
  • README / post-scaffold next-steps mention lumibase doctor / lumibase types where applicable.
  • No drift between npm create lumibase and lumibase init.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions