@yosr-ai/template-next-fullstack 0.1.0-alpha.5 → 0.1.0-alpha.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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @yosr-ai/template-next-fullstack
2
2
 
3
+ ## 0.1.0-alpha.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 9a2dfd0: Postgres + Docker Compose publishes 5432, waits on `pg_isready`, sets app `DATABASE_URL` to the `postgres` service, and documents a host `db:push` schema step before `docker compose up --build`. Prisma images copy the schema before install so `prisma generate` works.
8
+ - 7b41bfb: Yosr Seed CLI packages use the Yosr Seed License from 0.1.0; the template stays MIT; generated projects belong to you. Alphas through 0.1.0-alpha.5 remain MIT.
9
+ - 700d8bd: npm-facing READMEs for users without the private repo, homepage and bugs email on the packages, and a contact address on the Yosr Seed License.
10
+
3
11
  ## 0.1.0-alpha.5
4
12
 
5
13
  ### Patch Changes
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Wael Zohny / Yosr AI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,16 +1,11 @@
1
1
  # `@yosr-ai/template-next-fullstack`
2
2
 
3
- The Yosr Seed next-fullstack template. License: MIT. Node.js: `>=24`. CLI usage is in the [repository README](https://github.com/getyosr/yosr-seed#readme).
3
+ The **Yosr Seed** next-fullstack template. License: **MIT**. Node.js `>=24`.
4
4
 
5
- For template authors; not rendered. Layout follows the template format spec.
5
+ You normally get this package through [`create-yosr-seed`](https://www.npmjs.com/package/create-yosr-seed) / [`yosr-seed`](https://www.npmjs.com/package/yosr-seed); you do not need to install it by hand to create a project.
6
6
 
7
- - `seed.template.json`: manifest. Started from `examples/next-fullstack/seed.template.json`; dependency versions pinned from the npm registry on 2026-10-19. `x-prototype.stubbedFeatures` is empty. The selftest stub is fixture-only.
8
- - `files/`: the base. It is a real Next.js app that installs, lints, type-checks, builds and tests on its own (checked). Files sit at the **default** layout's concrete paths (`src/features`, `src/shared`, `src/server`); the renderer relocates them for other layouts. `gitignore` is renamed to `.gitignore` on render (npm strips `.gitignore` from published packages).
9
- - `features/orm-drizzle/`: Postgres + Drizzle overlay (replaces the in-memory notes store). `database: none` is the base without this overlay.
10
- - `features/orm-prisma/`: Postgres + Prisma overlay (same role as Drizzle: schema, client, notes store via `replaces`). `prisma generate` runs on install. The generated client is not committed.
11
- - `features/deploy-vercel/`: README section only.
12
- - `features/deploy-docker/`: Dockerfile, `.dockerignore`, and `compose.yaml` for `deploy: docker`. The `next-config` anchor turns on `output: "standalone"` only when `YOSR_STANDALONE=1`, which the Dockerfile sets for the image build. Local `next start` does not use standalone output. `features/deploy-docker-postgres/` adds a Postgres service to that compose file when `database` is `postgres`. The image build is a non-required gate step (`--image`).
13
- - `style/errors-result/`: variant tree for `errors.pattern = result`.
14
- - `rules/`: agent-rule fragments and the architecture note source.
7
+ ## Bugs and feedback
15
8
 
16
- Anchors (`@seed:anchor <name>`) must be alone on their line; inserted content takes the anchor line's indentation; anchors are removed from output.
9
+ Email **wzohny@gmail.com**. The source repository is private, so there is no public issue tracker.
10
+
11
+ Site: [seed.yosr.ai](https://seed.yosr.ai)
@@ -6,6 +6,7 @@ ENV NEXT_TELEMETRY_DISABLED=1
6
6
  ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
7
7
 
8
8
  COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
9
+ # @seed:anchor docker-pre-install
9
10
  RUN corepack enable && __seed_pmInstallCi__
10
11
  COPY . .
11
12
  # Standalone output is for this image only. Local `next start` leaves this unset.
@@ -1,6 +1,9 @@
1
+ # @seed:anchor compose-header
1
2
  services:
2
3
  app:
3
4
  build: .
4
5
  ports:
5
6
  - "3000:3000"
7
+ # @seed:anchor app-config
6
8
  # @seed:anchor services
9
+ # @seed:anchor compose-root
@@ -6,6 +6,7 @@ ENV NEXT_TELEMETRY_DISABLED=1
6
6
  ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
7
7
 
8
8
  COPY package.json package-lock.json ./
9
+ # @seed:anchor docker-pre-install
9
10
  RUN npm ci
10
11
  COPY . .
11
12
  # Standalone output is for this image only. Local `next start` leaves this unset.
@@ -0,0 +1,6 @@
1
+ environment:
2
+ # Local-dev default. Hostname is the compose service name `postgres`, not localhost.
3
+ DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
4
+ depends_on:
5
+ postgres:
6
+ condition: service_healthy
@@ -0,0 +1,2 @@
1
+ # Local Docker Compose with Postgres. See README → Docker for the schema step.
2
+ # The Postgres password below is a local-dev default only — change it for anything beyond local use.
@@ -0,0 +1,2 @@
1
+ volumes:
2
+ postgres_data:
@@ -1,4 +1,16 @@
1
1
  postgres:
2
2
  image: postgres:18.6-alpine
3
3
  environment:
4
+ # Local-dev default password only — change for anything beyond local use.
4
5
  POSTGRES_PASSWORD: postgres
6
+ # Change the left side if a local Postgres already uses 5432.
7
+ ports:
8
+ - "5432:5432"
9
+ volumes:
10
+ # Postgres 18+ stores data under a versioned subdir of /var/lib/postgresql.
11
+ - postgres_data:/var/lib/postgresql
12
+ healthcheck:
13
+ test: ["CMD-SHELL", "pg_isready -U postgres"]
14
+ interval: 5s
15
+ timeout: 5s
16
+ retries: 5
@@ -0,0 +1,20 @@
1
+ ## Docker
2
+
3
+ Postgres is wired in `compose.yaml` (`DATABASE_URL` uses the `postgres` service hostname). Local-dev password is `postgres` — change it for anything beyond local use.
4
+
5
+ 1. Start Postgres and create tables (from the project root, with Node deps installed):
6
+
7
+ ```text
8
+ docker compose up -d postgres
9
+ DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres __seed_pmRun__ db:push
10
+ ```
11
+
12
+ 2. Build and run the app:
13
+
14
+ ```text
15
+ docker compose up --build
16
+ ```
17
+
18
+ Then open http://localhost:3000.
19
+
20
+ For a bare `docker run` of the image, pass `-e DATABASE_URL=...` yourself. The image does not read `.env.local` (see `.dockerignore`).
@@ -0,0 +1,3 @@
1
+ # Prisma postinstall needs the schema before `pnpm install` / `npm ci`.
2
+ COPY prisma ./prisma
3
+ COPY prisma.config.ts ./
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "@yosr-ai/template-next-fullstack",
3
- "version": "0.1.0-alpha.5",
3
+ "version": "0.1.0-alpha.6",
4
4
  "description": "Yosr Seed next-fullstack template.",
5
5
  "license": "MIT",
6
- "repository": {
7
- "type": "git",
8
- "url": "git+https://github.com/getyosr/yosr-seed.git",
9
- "directory": "packages/template-next-fullstack"
6
+ "homepage": "https://seed.yosr.ai",
7
+ "bugs": {
8
+ "email": "wzohny@gmail.com"
10
9
  },
11
10
  "type": "module",
12
11
  "exports": {
@@ -16,6 +15,7 @@
16
15
  "files": [
17
16
  "README.md",
18
17
  "CHANGELOG.md",
18
+ "LICENSE",
19
19
  "seed.template.json",
20
20
  "files",
21
21
  "features",
@@ -2,7 +2,7 @@
2
2
  "$schema": "../../../docs/engineering/schemas/seed.template.schema.json",
3
3
  "schemaVersion": "0.1",
4
4
  "name": "next-fullstack",
5
- "version": "0.1.0-alpha.5",
5
+ "version": "0.1.0-alpha.6",
6
6
  "title": "Next.js full-stack (TypeScript)",
7
7
  "description": "Prototype of Yosr Seed's first base template (Next.js + TypeScript, Tailwind + shadcn/ui, Vitest + Playwright smoke test). Implemented: base files with the ADR 0006 defaults, the orm-drizzle and orm-prisma overlays (database=postgres), database=none (base without either overlay), deploy=docker (standalone image, compose Postgres only when database=postgres), Auth.js, Clerk, tRPC, Stripe, and a recorded AI delta for domain-features. x-prototype.stubbedFeatures is empty. Dependency versions pinned from the npm registry on 2026-10-19 (Prisma adapter on 2026-10-28, Clerk on 2026-10-28, tRPC on 2026-10-29, Stripe on 2026-10-29).",
8
8
  "license": "MIT",
@@ -901,6 +901,34 @@
901
901
  "Dockerfile"
902
902
  ]
903
903
  },
904
+ {
905
+ "id": "deploy-docker-prisma",
906
+ "description": "Combination overlay: copy Prisma schema before the Docker install stage so postinstall can generate the client.",
907
+ "when": {
908
+ "all": [
909
+ {
910
+ "option": "deploy",
911
+ "equals": "docker"
912
+ },
913
+ {
914
+ "option": "orm",
915
+ "equals": "prisma"
916
+ }
917
+ ]
918
+ },
919
+ "after": [
920
+ "deploy-docker",
921
+ "deploy-docker-npm"
922
+ ],
923
+ "patches": [
924
+ {
925
+ "op": "insert",
926
+ "target": "Dockerfile",
927
+ "anchor": "docker-pre-install",
928
+ "source": "features/deploy-docker-prisma/snippets/docker-pre-install.Dockerfile"
929
+ }
930
+ ]
931
+ },
904
932
  {
905
933
  "id": "deploy-docker-postgres",
906
934
  "description": "Combination overlay: adds a Postgres service to the compose file.",
@@ -920,11 +948,36 @@
920
948
  "deploy-docker"
921
949
  ],
922
950
  "patches": [
951
+ {
952
+ "op": "insert",
953
+ "target": "compose.yaml",
954
+ "anchor": "compose-header",
955
+ "source": "features/deploy-docker-postgres/snippets/compose-header.yaml"
956
+ },
957
+ {
958
+ "op": "insert",
959
+ "target": "compose.yaml",
960
+ "anchor": "app-config",
961
+ "source": "features/deploy-docker-postgres/snippets/app-config.yaml"
962
+ },
923
963
  {
924
964
  "op": "insert",
925
965
  "target": "compose.yaml",
926
966
  "anchor": "services",
927
967
  "source": "features/deploy-docker-postgres/snippets/postgres-service.yaml"
968
+ },
969
+ {
970
+ "op": "insert",
971
+ "target": "compose.yaml",
972
+ "anchor": "compose-root",
973
+ "source": "features/deploy-docker-postgres/snippets/compose-volumes.yaml"
974
+ },
975
+ {
976
+ "op": "insert",
977
+ "target": "README.md",
978
+ "anchor": "readme-sections",
979
+ "source": "features/deploy-docker-postgres/snippets/readme-docker.md",
980
+ "position": "before"
928
981
  }
929
982
  ]
930
983
  }