Build template repository foundation #38

Closed
opened 2026-05-19 19:51:45 -05:00 by erik · 2 comments
Owner

Goal

Create the in-repo Slugkit template website foundation so it can run locally for CLI testing and be copied by slug init into standalone site projects.

Spec: docs/web-specs/00-template-repository-foundation.md

Requirements

  • Implement a Hono + TypeScript template website inside this repository in a directory that can later be copied without including CLI source.
  • Provide project scripts for development, build, test, lint, and format.
  • Add environment variable loading with a clear .env.example for foundation-level settings.
  • Add a public GET /health route that returns { "status": "ok" }.
  • Add a public placeholder GET / homepage that renders configured/default site identity.
  • Organize source files so future database, auth, API, public page, and federation work has obvious locations.
  • Keep the template understandable as a standalone website when copied out of the toolkit repository.
  • Add CI/CD workflow configuration that runs build, lint, and tests for pull requests and main-branch pushes.
  • Follow docs/CONTRIBUTING.md and docs/CODE_STANDARDS.md.

Acceptance criteria

  • The in-repo template dependencies install successfully.
  • The documented dev command starts the template website.
  • GET /health returns HTTP 200 with { "status": "ok" }.
  • GET / renders a placeholder public homepage.
  • Automated tests cover the health and home routes.
  • The template files are organized so slug init can copy them into a standalone site directory.
  • Documentation or README text explains that this is the in-repo site template used by slug init, not the CLI source.
  • CI/CD workflow exists for build, lint, and tests on pull requests and main-branch pushes.
  • Relevant lint/test/build checks pass.

Dependencies

  • None
## Goal Create the in-repo Slugkit template website foundation so it can run locally for CLI testing and be copied by `slug init` into standalone site projects. Spec: `docs/web-specs/00-template-repository-foundation.md` ## Requirements - Implement a Hono + TypeScript template website inside this repository in a directory that can later be copied without including CLI source. - Provide project scripts for development, build, test, lint, and format. - Add environment variable loading with a clear `.env.example` for foundation-level settings. - Add a public `GET /health` route that returns `{ "status": "ok" }`. - Add a public placeholder `GET /` homepage that renders configured/default site identity. - Organize source files so future database, auth, API, public page, and federation work has obvious locations. - Keep the template understandable as a standalone website when copied out of the toolkit repository. - Add CI/CD workflow configuration that runs build, lint, and tests for pull requests and main-branch pushes. - Follow `docs/CONTRIBUTING.md` and `docs/CODE_STANDARDS.md`. ## Acceptance criteria - [ ] The in-repo template dependencies install successfully. - [ ] The documented dev command starts the template website. - [ ] `GET /health` returns HTTP 200 with `{ "status": "ok" }`. - [ ] `GET /` renders a placeholder public homepage. - [ ] Automated tests cover the health and home routes. - [ ] The template files are organized so `slug init` can copy them into a standalone site directory. - [ ] Documentation or README text explains that this is the in-repo site template used by `slug init`, not the CLI source. - [ ] CI/CD workflow exists for build, lint, and tests on pull requests and main-branch pushes. - [ ] Relevant lint/test/build checks pass. ## Dependencies - None
Author
Owner

Synced from todu comment by @todu on 2026-05-20T01:31:29.252Z

Closing Summary

PR #39 merged: #39

Acceptance criteria evidence:

  • In-repo template dependencies install successfully: met — CI npm ci passed.
  • Documented dev command starts the template website: met — make dev is documented and wired to Procfile.dev for template/site.
  • GET /health returns HTTP 200 with { "status": "ok" }: met — route and test exist.
  • GET / renders a placeholder public homepage: met — route/template and test exist.
  • Automated tests cover health and home routes: met — template/site/src/__tests__/app.test.ts covers both routes.
  • Template files are organized for future slug init: met — template lives under template/site with route/template/service/db/auth/federation/style areas.
  • README explains this is the in-repo site template, not CLI source: met — root and template READMEs document this.
  • CI/CD workflow exists for build, lint, and tests on PRs and main pushes: met — .forgejo/workflows/ci.yml exists and passed.
  • Relevant checks pass: met — ./scripts/pre-pr.sh passed and Forgejo CI passed.

Readiness: READY

_Synced from todu comment by @todu on 2026-05-20T01:31:29.252Z_ ## Closing Summary PR #39 merged: https://forge.caradoc.com/erik/slugkit/pulls/39 Acceptance criteria evidence: - In-repo template dependencies install successfully: met — CI `npm ci` passed. - Documented dev command starts the template website: met — `make dev` is documented and wired to `Procfile.dev` for `template/site`. - `GET /health` returns HTTP 200 with `{ "status": "ok" }`: met — route and test exist. - `GET /` renders a placeholder public homepage: met — route/template and test exist. - Automated tests cover health and home routes: met — `template/site/src/__tests__/app.test.ts` covers both routes. - Template files are organized for future `slug init`: met — template lives under `template/site` with route/template/service/db/auth/federation/style areas. - README explains this is the in-repo site template, not CLI source: met — root and template READMEs document this. - CI/CD workflow exists for build, lint, and tests on PRs and main pushes: met — `.forgejo/workflows/ci.yml` exists and passed. - Relevant checks pass: met — `./scripts/pre-pr.sh` passed and Forgejo CI passed. Readiness: READY
Author
Owner

Synced from todu comment by @todu on 2026-05-20T01:30:56.008Z

PR Review: Approved

PR: #39

Summary

Reviewed the template foundation PR against the task acceptance criteria. The PR builds the in-repo template site under template/site, wires root workspace scripts to it, adds health/home routes with tests, documents template usage, and adds Forgejo CI for PRs and main pushes.

Acceptance Criteria

  • In-repo template dependencies install successfully.
  • Documented dev command starts the template website.
  • GET /health returns HTTP 200 with { "status": "ok" }.
  • GET / renders a placeholder public homepage.
  • Automated tests cover health and home routes.
  • Template files are organized for future slug init copying.
  • README text explains this is the in-repo site template, not CLI source.
  • CI workflow exists for build, lint, and tests on PRs and main pushes.
  • Relevant checks pass: ./scripts/pre-pr.sh and Forgejo CI succeeded.

Blocking Issues

None.

Warnings

None.

Verdict

Approved for merge.

_Synced from todu comment by @todu on 2026-05-20T01:30:56.008Z_ ## PR Review: Approved PR: https://forge.caradoc.com/erik/slugkit/pulls/39 ### Summary Reviewed the template foundation PR against the task acceptance criteria. The PR builds the in-repo template site under `template/site`, wires root workspace scripts to it, adds health/home routes with tests, documents template usage, and adds Forgejo CI for PRs and `main` pushes. ### Acceptance Criteria - [x] In-repo template dependencies install successfully. - [x] Documented dev command starts the template website. - [x] `GET /health` returns HTTP 200 with `{ "status": "ok" }`. - [x] `GET /` renders a placeholder public homepage. - [x] Automated tests cover health and home routes. - [x] Template files are organized for future `slug init` copying. - [x] README text explains this is the in-repo site template, not CLI source. - [x] CI workflow exists for build, lint, and tests on PRs and main pushes. - [x] Relevant checks pass: `./scripts/pre-pr.sh` and Forgejo CI succeeded. ### Blocking Issues None. ### Warnings None. ### Verdict Approved for merge.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/slugkit#38
No description provided.