Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 0 additions & 63 deletions .github/scripts/build-roadmap.mjs

This file was deleted.

45 changes: 0 additions & 45 deletions .github/workflows/roadmap-snapshot.yml

This file was deleted.

24 changes: 24 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,30 @@ Common areas: `web`, `firmware`, `pcb`, `enclosure`, `docs`, `pattern`. Use
tooling enforces it, it just keeps the history (and the Discord dev-log)
readable.

## Development workflow

Work happens on `dev`, then lands on `main` through a pull request.

```
work on dev → commit early and often → open a PR into main → merge
```

- **Commit freely on `dev`.** Commits are cheap save points; small and frequent
is good. Keep throwaway `wip:` commits here rather than on `main`.
- **Code changes go through a PR** (anything under `web/` or `firmware/`). A PR
runs CI (`web/` PRs must pass `next build`) and groups the change into one
clean Discord dev-log post. Trivial doc/typo fixes can be committed directly.
- **Bigger or riskier work** gets its own branch (`feat/…`, `fix/…`) off `dev`.
- **After a PR merges**, pull `main` back into `dev` so the branches don't
drift apart over time:

```
git checkout dev && git merge origin/main && git push origin dev
```

Releases are published from `main` (GitHub → Releases → *Generate release
notes*), which posts an announcement to Discord.

## Project Rules

Project rules and guidelines are currently under consideration and will be finalized in the future.
Expand Down
212 changes: 0 additions & 212 deletions web/public/roadmap.json

This file was deleted.

8 changes: 2 additions & 6 deletions web/src/app/roadmap/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,8 @@ export default function RoadmapPage() {

useEffect(() => {
let active = true;
// Prefer the static snapshot committed by the roadmap-snapshot Action
// (no runtime token, no rate limit). Fall back to the live API route if
// the snapshot hasn't been generated yet.
fetch('/roadmap.json', { cache: 'no-cache' })
.then((res) => (res.ok ? res.json() : Promise.reject(new Error('no snapshot'))))
.catch(() => fetch('/api/roadmap').then((res) => res.json()))
fetch('/api/roadmap')
.then((res) => res.json())
.then((payload: RoadmapData) => {
if (active) setData(payload);
})
Expand Down
Loading