Starter templates: a headless CMS with no starting point
- Dominant language
- C#
- Stars
- 6
- Forks
- 7
- Avg merge
- 4h 42m
- Merged PRs (30d)
- 307
Description
**Blocked by #182 for the TypeScript targets, and by #186 for the .NET one.**
## Why starters
barakoCMS is headless, so the frontend is the consumer's problem, and that is the hardest moment of adopting it. A starter that fetches real content, handles auth and deploys removes it.
## Why not yet
A starter is mostly a client plus some screens. Building one before the client layer settles means the starter *contains* the client, and then the starter becomes the de facto client for everyone who copies it.
| target | client | state |
|---|---|---|
| Next.js, React | `@baryodev/barako-client` | exists, and baryo.dev is the proof |
| React Native, Expo | the same package | zero dependencies and isomorphic, so it *should* work. **Nobody has run it** |
| MAUI, Blazor | none | #186 |
| native iOS, Android | none | out of scope: React Native and MAUI already reach mobile |
## The one to build first
**Next.js.** The client exists, baryo.dev already renders from it in production, so the starter is assembly rather than invention.
**React Native second, and it needs a check before it is promised.** "Isomorphic and zero dependencies" should mean it runs under Metro and Hermes. Should is not verified. Run the client in a bare Expo app before anyone writes a starter around it, because if it needs a polyfill, that is a client change and not a starter change.
## What makes a starter good rather than present
- **It fetches real content** from a real instance on first run, not fixtures. The moment worth engineering is the one where someone sees their own content appear.
- **It shows the auth path**, because that is the part people get wrong and the part the base client exists for.
- **It says what it is not.** A starter that quietly includes a design system, a state library and an ORM is a template someone has to delete their way out of.
- **CI builds it on a schedule**, against the published client. A stale starter is worse than none: it fails on step three and the reader concludes the project is abandoned. This is the same failure that left three BaryoDev repos red for days without a commit.
## Where they live
Decide before building: separate repos, a `starters/` directory here, or templates behind `create-baryo-app`. Each is defensible and they have different discovery and maintenance properties. Not settled.
Design: `docs/2026-08-18-client-layer-design.md`.
Contributor guide
Assessment
This issue has not been assessed yet.