Repository navigation
docs: add changes over obytes starter page - #160
devs-rootstrap wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The documentation contains broken published-site links and inaccurate claims about default-branch build compatibility and 401 response handling.
3 open issues
What changed in this PR
Overall Review: ai:minor
This documentation-only PR gives developers a central reference for Rootstrap’s changes to the Obytes starter, making template evaluation and project onboarding easier.
Changes:
- Adds a categorized comparison page covering setup, authentication, CI, tooling, coding assistants, and updates.
- Adds navigation links in the documentation sidebar and README.
| File | Description |
|---|---|
README.md |
Links to the new comparison page. |
docs/src/content/docs/changes-over-obytes.md |
Documents Rootstrap-specific changes with supporting PR references. |
docs/astro.config.mjs |
Registers the page after Overview with a new badge. |
Review effort: Balanced
| This template is a fork of the [Obytes starter](https://github.com/obytes/react-native-template-obytes). We keep everything that makes the original great and periodically merge its new releases, but we also adjust it to the way we build apps at Rootstrap. This page lists those adjustments so you can quickly tell what is different without digging through the pull request history. | ||
|
|
||
| :::note | ||
| The list below only covers changes we made on top of the upstream starter. For the features that come from Obytes, check the [Overview](/overview) page and the [upstream changelog](https://github.com/obytes/react-native-template-obytes/releases). Every item links to the pull request that introduced it in the [template repository](https://github.com/rootstrap/react-native-template). |
|
|
||
| - **`create-rootstrap-rn-app` CLI.** The CLI was renamed and republished under our own npm package, and it clones the latest release of this repository instead of the upstream one ([#17](https://github.com/rootstrap/react-native-template/pull/17), [#18](https://github.com/rootstrap/react-native-template/pull/18)). A manual GitHub Action publishes new CLI versions to npm ([#23](https://github.com/rootstrap/react-native-template/pull/23)). | ||
| - **Project clean-up on creation.** The CLI removes template-only files (docs site, CLI, docs and CLI deploy workflows, license), renames `README-project.md` to `README.md`, sets the project name in `env.js`, the Expo config slug and the README, and strips the template warning from the pull request template ([#62](https://github.com/rootstrap/react-native-template/pull/62), [#64](https://github.com/rootstrap/react-native-template/pull/64), [#65](https://github.com/rootstrap/react-native-template/pull/65), [#66](https://github.com/rootstrap/react-native-template/pull/66)). | ||
| - **Git branches out of the box.** New projects are initialized with an initial commit on `develop` plus `qa` and `main` branches, matching the branch-to-environment mapping used by the build workflow ([#158](https://github.com/rootstrap/react-native-template/pull/158)). |
|
|
||
| - **Axios interceptors with automatic case conversion.** Request bodies are converted to `snake_case` and responses to `camelCase`, including nested objects, so the TypeScript code always uses `camelCase` ([#6](https://github.com/rootstrap/react-native-template/pull/6), [#28](https://github.com/rootstrap/react-native-template/pull/28), [#119](https://github.com/rootstrap/react-native-template/pull/119)). | ||
| - **Devise Token Auth support.** The interceptors inject the `access-token`, `client`, `uid`, `expiry` and `Authorization` headers on every request and capture them from responses, so the template works out of the box with a Rails API using Devise Token Auth ([#85](https://github.com/rootstrap/react-native-template/pull/85), [#116](https://github.com/rootstrap/react-native-template/pull/116)). | ||
| - **`AuthProvider` context.** A React context keeps tokens in a dedicated MMKV instance, exposes `isAuthenticated` / `ready` / `logout` to the UI and handles `401` responses, complementing the Zustand store inherited from upstream ([#116](https://github.com/rootstrap/react-native-template/pull/116)). |
5f7e673 to
ebe8089
Compare
| @@ -0,0 +1,72 @@ | |||
| --- | |||
| title: Changes over Obytes Starter | |||
| description: A concrete list of what Rootstrap changed or added on top of the Obytes React Native / Expo starter. | |||
There was a problem hiding this comment.
I think this is a bit explicit. Make it sound more natural.
There was a problem hiding this comment.
Like it better but what about using like a team player tone? "What our talented team of engineers at Rootstrap have added so far on top of the Obytes starter?"
There was a problem hiding this comment.
@fernandatoledo Good call, updated in 6baeb6a. The description now reads: "What our talented team of engineers at Rootstrap has added so far on top of the Obytes starter." I kept it as a statement rather than a question since it shows up as the page summary/meta description.
There was a problem hiding this comment.
Keep the user-facing changes first, as that's what people would like to read first. Leave the infra/misc/chore changes in the end of the list. I think titles are good as they are now.
There was a problem hiding this comment.
@asdolo Reordered in d9dc89c, titles untouched. "Authentication and networking" now opens the page (screens and routes listed before the interceptors and query key factory), followed by "Project setup and CLI", "Environments, EAS and CI", "Code quality and tooling", "Coding assistants" and "Keeping the template and your projects up to date". Within sections, workflow/repo-chore items were kept at the end; no items were added or removed.


Jira board reference:
What does this do?
Adds a new documentation page, Changes over Obytes Starter (
docs/src/content/docs/changes-over-obytes.md), with a concrete list of what we changed or added on top of the Obytes starter, grouped by area:Every bullet names the specific change and links to the merged pull request that introduced it. The page is registered in the Starlight sidebar right after "Overview" (with the
newbadge) and linked from the documentation list inREADME.md.Why did you do this?
There was no quick way for someone evaluating the template to tell how it differs from the Obytes starter; the information only lived in individual pull request descriptions. A client asked exactly this question, so the differences are now documented in one place that we can keep up to date as the template evolves.
Who/what does this impact?
Documentation only. No application code, workflows or configuration are affected. Anyone comparing this template with the upstream starter, and the team when onboarding new projects or answering client questions.
Layer 2: Risk Classification
Author applies a risk label when opening the PR. When in doubt, escalate.
risk:lowrisk:mediumrisk:highSetup
risk:low,risk:medium,risk:highlabels in the repoHow did you test this?
Documentation-only change; verified by building the docs site locally and checking the generated page (sidebar entry, internal links and all pull request links present).
Notes:
Assumptions
Verification
pnpm lint,pnpm type-check,pnpm lint:translations,pnpm test: passing (28 suites, 139 tests).cd docs && pnpm build): the new page is generated correctly (dist/changes-over-obytes/index.html), but the full build still stops on a pre-existing issue unrelated to this change:getting-started/rules-and-conventions.mdxembeds.eslintrc.js, which no longer exists since the ESLint migration (Feat/prettier to antfu #147). A few other embeds point to files that were moved or removed (src/components/card.tsx,src/api/posts/*,src/components/login-form.test.tsx). Thedeploy-docsworkflow has been failing for the same reason since v1.8.0. Worth a follow-up.cd docs && pnpm install --frozen-lockfilefails withERR_PNPM_BROKEN_LOCKFILE(duplicate keyhast-util-from-html@2.0.3) on the committed lockfile; the lockfile was left untouched in this PR.Preview locally
Then open
/react-native-template/changes-over-obytes/.Screenshots / Previews
Not applicable (documentation only).