A vibe-coded calendar for the Nso people of the Western highlands of Cameroon in central Africa.
# NSO Day Keeper
This repository contains a small Vite + React + TypeScript app configured to be built and deployed to GitHub Pages (project site) and includes PWA support.
This README documents how to build and run locally, how CI is configured to publish to `gh-pages`, and how to (un)publish the site in GitHub Pages settings.
## Quick links
- Project site (expected):
njodzeven.github.io
## Requirements
- Node.js 20+ (LTS recommended)
- npm 9+ (or npm 10 as present in newer Node)
- Git
## Local development
1. Install dependencies
```bash
npm ci
```
2. Start dev server
```bash
npm run dev
```
3. Build for production
```bash
npm run build
```
4. Preview the production build locally
```bash
npm run preview
```
Notes:
- The `build` script runs TypeScript project build and then `vite build`.
- The output directory is `dist`.
## CI / Deployment (GitHub Actions)
This repository contains a workflow at `.github/workflows/deploy.yml` that:
- Runs on push to `master` and on published releases.
- Installs dependencies with `npm ci`.
- Builds the project into `./dist`.
- Uses `peaceiris/actions-gh-pages` to publish `./dist` to the `gh-pages` branch.
Key configuration in the workflow:
- `permissions: contents: write` — allows the workflow to push to `gh-pages` using the provided `GITHUB_TOKEN`.
- `publish_dir: ./dist` and `publish_branch: gh-pages` — where to find build output and which branch to publish.
- `force_orphan: true` — the action creates/overwrites the `gh-pages` branch as an orphan to ensure a clean deployed branch.
You do not need to re-create the workflow after unpublishing; the workflow file and `gh-pages` branch remain in the repo.
## GitHub Pages site configuration
Because this repository is a project site (not a user/org site), Pages must be served from the `gh-pages` branch root.
To confirm or set Pages settings in the GitHub web UI:
1. Go to the repository on GitHub.
2. Click `Settings` in the repo navigation. …