Skip to content

Commit e497842

Browse files
authored
Merge pull request #1471 from CodeForAfrica/chore-sync-repo-guidance
Sync repo docs with current state
2 parents 58fadd0 + a94b056 commit e497842

7 files changed

Lines changed: 61 additions & 38 deletions

File tree

.github/workflows/claude.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
name: Claude Code
22

3+
# Mention-triggered Claude Code assistant. The automatic Claude Code Review
4+
# workflow (`claude-code-review.yml`) was intentionally removed in #1463.
35
on:
46
issue_comment:
57
types: [created]

AGENTS.md

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -75,39 +75,49 @@ pnpm bump # Bump versions via scripts/bump.js
7575

7676
### Apps
7777

78-
| App | Description |
79-
| --------------------- | ------------------------------------------------------------------------------ |
80-
| `charterafrica` | Digital database for communities (Payload CMS v2) |
81-
| `civicsignalblog` | CivicSignal research blog |
82-
| `climatemappedafrica` | Climate data platform |
83-
| `codeforafrica` | Main CFA website (Payload CMS v2) |
84-
| `pesayetu` | Government accountability data (MUI v5 + `mui-styles` catalog) |
85-
| `roboshield` | Bot protection service |
86-
| `techlabblog` | TechLab engineering blog (MDX-based, first app migrated to per-app Dockerfile) |
87-
| `trustlab` | CSO/CBO digital threats platform (Payload CMS v3) |
88-
| `twoopstracker` | Social media analysis |
89-
| `vpnmanager` | VPN management |
78+
| App | Description |
79+
| --------------------- | -------------------------------- |
80+
| `charterafrica` | Digital database for communities |
81+
| `civicsignalblog` | CivicSignal research blog |
82+
| `climatemappedafrica` | Climate data platform |
83+
| `codeforafrica` | Main CFA website |
84+
| `pesayetu` | Government accountability data |
85+
| `roboshield` | Bot protection service |
86+
| `techlabblog` | TechLab engineering blog |
87+
| `trustlab` | CSO/CBO digital threats platform |
88+
| `twoopstracker` | Social media analysis |
89+
| `vpnmanager` | VPN management |
9090

9191
### Shared packages
9292

93-
| Package | Purpose |
94-
| ------------------------------- | ----------------------------------------------------------------- |
95-
| `commons-ui-core` | Base React components (MUI + Emotion) |
96-
| `commons-ui-next` | Next.js-specific helpers |
97-
| `commons-ui-payload` | Payload CMS integration helpers |
98-
| `commons-ui-testing-library` | Shared test utilities |
99-
| `eslint-config-commons-ui` | Shared ESLint flat config: base, Next.js, and TypeScript variants |
100-
| `jest-config-commons-ui` | Shared Jest config |
101-
| `playwright-config-commons-ui` | Shared Playwright config |
102-
| `hurumap-core` / `hurumap-next` | Hurumap data visualization library |
93+
| Package | Purpose |
94+
| ------------------------------- | ---------------------------------- |
95+
| `commons-ui-core` | Base React components |
96+
| `commons-ui-next` | Next.js-specific helpers |
97+
| `commons-ui-payload` | Payload CMS integration helpers |
98+
| `commons-ui-testing-library` | Shared test utilities |
99+
| `eslint-config-commons-ui` | Shared ESLint flat config |
100+
| `jest-config-commons-ui` | Shared Jest config |
101+
| `playwright-config-commons-ui` | Shared Playwright config |
102+
| `hurumap-core` / `hurumap-next` | Hurumap data visualization library |
103103

104104
### Key technology choices
105105

106-
- **MUI v6** for most apps; `pesayetu` and `twoopstracker` use the `mui-styles` pnpm catalog (MUI v5 + `@mui/styles`)
107-
- **Payload CMS 2.x** (catalog `payload`) for `charterafrica`, `codeforafrica`; **Payload CMS 3.x** (catalog `payload-v3`) for `trustlab`
108-
- **Apollo Client** for GraphQL; **SWR** for REST data fetching
109-
- **MDX** with remark/rehype pipeline for `techlabblog`
110-
- **SVGR** for SVG imports as React components
106+
- **UI stack**:
107+
- Current: MUI v6 + Emotion for most apps and shared UI packages.
108+
- Legacy:
109+
- MUI v5 + `@mui/styles` via the `mui-styles` catalog for `pesayetu` and `twoopstracker`.
110+
- **CMS stack**:
111+
- Current:
112+
- Payload CMS v3.x (`catalog:payload-v3`) for `roboshield`, `trustlab`, `commons-ui-payload`.
113+
- MDX with remark/rehype pipeline for `techlabblog`.
114+
- Legacy:
115+
- Payload CMS v2.x (`catalog:`) for `charterafrica`, `civicsignalblog`, `climatemappedafrica`, `codeforafrica`.
116+
- WordPress via WPGraphQL for `pesayetu`.
117+
- Netlify CMS markdown content for `twoopstracker`.
118+
- **Testing**:
119+
- Jest v30 shared through `jest-config-commons-ui`.
120+
- Playwright shared through `playwright-config-commons-ui`.
111121

112122
### Dependency management
113123

@@ -125,11 +135,11 @@ Reference catalog versions in `package.json` as `"some-pkg": "catalog:"` or `"so
125135
Docker is for **deployment image validation only** — use `pnpm dev` for development.
126136

127137
- **`docker/base.Dockerfile`** — shared Node 24 Alpine base images (`ui-builder-base`, `ui-runner-base`) with independent `BASE_TAG` versioning
128-
- **`docker/apps/<app>.Dockerfile`** — per-app multi-stage builds (pruned → deps → builder → runner)
138+
- **`docker/apps/<app>/Dockerfile`** — per-app multi-stage builds (pruned → deps → builder → runner)
129139
- **`docker-bake.hcl`** — orchestrates all build targets; app targets inherit from `_app-runner`
130140
- **`docker-compose.yml`** — local dev services; for migrated apps uses `image:` (not `build:`)
131141

132-
Only `techlabblog` has been migrated to the per-app Dockerfile pattern. Other apps still use the root `Dockerfile`. See `docker/README.md` for the migration pattern.
142+
Migration status is tracked in `docker/README.md`; keep that checklist as the single source of truth when migrating additional apps.
133143

134144
### CI/CD
135145

apps/climatemappedafrica/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ClimateMapped.AFRICA is a web application that provides a platform for users to
77
First, run the development server:
88

99
```bash
10-
yarn dev
10+
pnpm dev
1111
```
1212

1313
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

apps/pesayetu/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ PesaYetu helps journalists, researchers and activists transform their work with
77
First, run the development server:
88

99
```bash
10-
yarn dev
10+
pnpm dev
1111
```
1212

1313
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

apps/twoopstracker/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ Twoops Tracker
77
First, run the local CMS:
88

99
```bash
10-
yarn cms
10+
pnpm cms
1111
```
1212

1313
Then run the development server:
1414

1515
```bash
16-
yarn dev
16+
pnpm dev
1717
```
1818

1919
Open [http://localhost:3000](http://localhost:3000) with your browser to see the site and [http://localhost:3000/admin](http://localhost:3000/admin) to access the CMS.

apps/vpnmanager/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ if you are executing from ui directory.
7272
### Deployment
7373

7474
```sh
75-
docker-compose up --build vpnmanager
75+
docker compose up --build vpnmanager
7676
```
7777

7878
or

docker/README.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,21 @@ Docker-related platform artifacts live under `docker/`, not inside the app
1212
source trees. That includes Dockerfiles, Dokku `app.json`, and any future
1313
container/deploy metadata tied to the image rather than the application code.
1414

15-
## Current migrated app
16-
17-
- `techlabblog`
18-
- `trustlab`
15+
## Migration status
16+
17+
Apps checked below have migrated to the per-app Dockerfile pattern under
18+
`docker/apps/<app>/`. Unchecked apps still use the root `Dockerfile`.
19+
20+
- [ ] `charterafrica`
21+
- [ ] `civicsignalblog`
22+
- [ ] `climatemappedafrica`
23+
- [ ] `codeforafrica`
24+
- [ ] `pesayetu`
25+
- [ ] `roboshield`
26+
- [x] `techlabblog`
27+
- [x] `trustlab`
28+
- [ ] `twoopstracker`
29+
- [ ] `vpnmanager`
1930

2031
## Workflow
2132

0 commit comments

Comments
 (0)