create-smoodly-app 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -1
- package/dist/index.js +3 -2
- package/package.json +1 -1
- package/templates/next/package.json +1 -1
- package/templates/next-intl/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,7 +14,10 @@ sign in. Spec: `docs/superpowers/specs/2026-09-04-create-smoodly-app-design.md`.
|
|
|
14
14
|
scaffolds the next-intl layout: the site under `app/[locale]/`, `i18n/`,
|
|
15
15
|
`proxy.ts`, translated URLs per locale. Flag: `--locales en,fi`.
|
|
16
16
|
3. Where content lives: a **local Supabase stack** (`supabase init` +
|
|
17
|
-
`supabase start` inside the app
|
|
17
|
+
`supabase start` inside the app, with the services Smoodly never uses
|
|
18
|
+
excluded — storage, image proxy, edge functions, analytics, realtime,
|
|
19
|
+
the pooler — so the stack stays small beside any other you run; needs
|
|
20
|
+
the Supabase CLI and Docker; when
|
|
18
21
|
another project holds the default `543xx` ports the new one moves to the
|
|
19
22
|
next free block, `553xx` and so on, and says so) or a
|
|
20
23
|
**hosted project** (URL, publishable key, secret key; then an offer to
|
|
@@ -61,6 +64,25 @@ multilingual one with `--locales en,de`.
|
|
|
61
64
|
|
|
62
65
|
## Follow-ups (logged 2026-09-06)
|
|
63
66
|
|
|
67
|
+
- Local mode on a fresh multilingual install (0.0.5, 2026-09-06) failed at
|
|
68
|
+
`supabase start` with `supabase_storage_<app> container is not ready:
|
|
69
|
+
unhealthy` — the storage container logged `Started Successfully` and the
|
|
70
|
+
CLI still stopped the stack. Five local stacks (57 containers) were
|
|
71
|
+
sharing 7.8 GB of Docker memory at the time, the same pressure that
|
|
72
|
+
made the repo's live suites flake on 2026-09-05. Smoodly never uses
|
|
73
|
+
storage, so the CLI could start the app's stack with
|
|
74
|
+
`supabase start -x storage-api,imgproxy,edge-runtime,logflare,vector,realtime`
|
|
75
|
+
(the container names `supabase start --help` lists; CI already excludes
|
|
76
|
+
most of these for the repo stack), and the "Finish by hand" text could
|
|
77
|
+
mention `supabase stop` on other projects. Retried the same day with
|
|
78
|
+
the other four stacks stopped (`supabase stop --project-id <name>`):
|
|
79
|
+
`npx create-smoodly-app@0.0.5 --supabase local --locales en,fi --yes`
|
|
80
|
+
came up with every container healthy, storage included, and the app
|
|
81
|
+
built and served `/admin` 200, `/` and `/fi` 404 — so the cause is
|
|
82
|
+
memory pressure, not the CLI. Fixed the same day: `run.ts` starts the
|
|
83
|
+
app's stack with `-x storage-api,imgproxy,edge-runtime,logflare,vector,realtime,supavisor`
|
|
84
|
+
(`LOCAL_START_ARGS`), and the "Finish by hand" text carries the same
|
|
85
|
+
flags. Kept: db, kong, auth, PostgREST, Studio and pg-meta, mailpit.
|
|
64
86
|
- **A non-interactive run without `--locales` needs `--yes`.** The
|
|
65
87
|
"Multilingual site?" prompt is asked whenever `--locales` is absent, and
|
|
66
88
|
with no TTY (a CI step, stdin at EOF) the CLI exits 13 having created
|
package/dist/index.js
CHANGED
|
@@ -378,6 +378,7 @@ function parseStatusEnv(output) {
|
|
|
378
378
|
}
|
|
379
379
|
|
|
380
380
|
// src/run.ts
|
|
381
|
+
var LOCAL_START_ARGS = ["start", "-x", "storage-api,imgproxy,edge-runtime,logflare,vector,realtime,supavisor"];
|
|
381
382
|
async function run(answers2, deps) {
|
|
382
383
|
if (answers2.supabase === "hosted" && !answers2.hosted) {
|
|
383
384
|
throw new Error("hosted answers need the project's keys");
|
|
@@ -420,7 +421,7 @@ async function run(answers2, deps) {
|
|
|
420
421
|
await deps.fs.writeFile(configPath, shiftBlock(toml, base));
|
|
421
422
|
deps.log(`Ports ${DEFAULT_BASE / 100}xx are busy (another Supabase project running?), using ${base / 100}xx.`);
|
|
422
423
|
}
|
|
423
|
-
await sh("supabase",
|
|
424
|
+
await sh("supabase", LOCAL_START_ARGS);
|
|
424
425
|
ctx.keys = parseStatusEnv((await sh("supabase", ["status", "-o", "env"], { capture: true })).stdout);
|
|
425
426
|
break;
|
|
426
427
|
}
|
|
@@ -466,7 +467,7 @@ ${renderEnv(keys).split("\n").filter((l) => !l.startsWith("#")).join("\n").trimE
|
|
|
466
467
|
].join("\n");
|
|
467
468
|
switch (step) {
|
|
468
469
|
case "supabaseLocal":
|
|
469
|
-
return [`cd ${answers2.name} && supabase init && supabase
|
|
470
|
+
return [`cd ${answers2.name} && supabase init && supabase ${LOCAL_START_ARGS.join(" ")}`, "", envLines, "", editorLines].join("\n");
|
|
470
471
|
case "supabaseInit": {
|
|
471
472
|
const commands = answers2.hosted?.linkAndPush ? [`cd ${answers2.name} && supabase init && ${linkCommand(answers2)} && supabase db push`] : [`cd ${answers2.name} && supabase init`, "", `When you are ready: ${linkCommand(answers2)} && supabase db push`];
|
|
472
473
|
return [...commands, "", envLines, "", editorLines].join("\n");
|
package/package.json
CHANGED