chore: germantax customer project
This commit is contained in:
49
apps/app/README.md
Normal file
49
apps/app/README.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# `_app_template_` (scaffold-resident)
|
||||
|
||||
Skeleton for every user app. **Lives in the scaffold container, not the user's repo.** Users never see this directly — the scaffold instantiates from it when a new app is needed.
|
||||
|
||||
## How it gets instantiated
|
||||
|
||||
`pikku create-app <name>` (landed in #58) reads this directory from the scaffold's known path (`/opt/fabric/_app_template_/` inside the container) and:
|
||||
|
||||
1. Copies every file to `apps/<name>/` in the user's repo
|
||||
2. Substitutes placeholders — `app`, `@germantax/app`, `7104`, `App`, `0.0.1`, `2026-04-17T11:42:52Z`
|
||||
3. Adds to yarn workspaces, runs `yarn install`
|
||||
4. Regenerates Caddyfile to route to the new app's dev server
|
||||
5. Stamps `package.json` → `fabric.templateVersion` with the current skeleton version (for 3-way merge on later `upgrade-app`)
|
||||
|
||||
On first scaffold boot against an empty `apps/` dir, the scaffold auto-runs `create-app app` to seed the default.
|
||||
|
||||
## Placeholders
|
||||
|
||||
| Placeholder | Example | Notes |
|
||||
|---|---|---|
|
||||
| `app` | `admin` | Dir name + workspace slug |
|
||||
| `@germantax/app` | `@germantax/admin` | `package.json` `name` |
|
||||
| `7104` | `7105` | Next free port from 7104+ |
|
||||
| `App` | `Admin` | `<title>`, app header |
|
||||
| `0.0.1` | `0.0.1` | Version at instantiation — ancestor for `upgrade-app` |
|
||||
| `2026-04-17T11:42:52Z` | ISO timestamp | Audit |
|
||||
|
||||
## What's here
|
||||
|
||||
- Vite + Mantine + TypeScript + ESLint + Stylelint config
|
||||
- Root providers wiring (`main.tsx`) — react-query, router, i18next, Pikku RPC
|
||||
- Theme entry (`src/theme.css`) — imports `@germantax/components/themes/default.css`, allows local overrides
|
||||
- Default routes: `/login`, `/logout`, `/hello`
|
||||
- Auth config scaffold (Auth0 active; GitHub / Google / Microsoft / Passwordless as `.ts.inactive` templates)
|
||||
- EN locale baseline
|
||||
|
||||
## What's NOT here
|
||||
|
||||
- **Widgets / components / themes** → `@germantax/components` in the user's template repo (shared across every app)
|
||||
- **Backend functions** → `@germantax/functions`
|
||||
- **App-specific pages / wirings** — land in the instantiated `apps/<name>/src/pages/` after creation
|
||||
|
||||
## Upgrading an app to this skeleton version
|
||||
|
||||
```sh
|
||||
pikku upgrade-app app # 3-way merge (see #57)
|
||||
```
|
||||
|
||||
Uses `package.json` → `fabric.templateVersion` as the ancestor. Untouched files update; edited files get conflict markers or interactive diff.
|
||||
Reference in New Issue
Block a user