Skip to content

docs: add changes over obytes starter page - #160

Open
devs-rootstrap wants to merge 3 commits into
masterfrom
docs/rootstrap-changes-over-obytes
Open

devs-rootstrap wants to merge 3 commits into
masterfrom
docs/rootstrap-changes-over-obytes

Conversation

@devs-rootstrap

Copy link
Copy Markdown
Collaborator

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:

  • Project setup and CLI
  • Authentication and networking
  • Environments, EAS and CI
  • Code quality and tooling
  • Coding assistants
  • Keeping the template and your projects up to date

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 new badge) and linked from the documentation list in README.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.

Label When to use
risk:low Config, copy, minor UI tweaks. Low blast radius.
risk:medium Feature work, refactors touching multiple files.
risk:high Auth, payments, migrations, security-sensitive code.

Setup

  • Create risk:low, risk:medium, risk:high labels in the repo
  • Add risk criteria to contributing guide or PR template
  • Add reminder in PR template to apply the label before requesting review
  • Define who can override/escalate (suggested: tech lead)

How 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).

  • Tested on iOS
  • Tested on Android
  • Tested on a small device
  • Tested on a real device
  • Tested all flows related with this PR changes
  • Tested accessibility
  • Added tests

Notes:

Assumptions

Verification

  • pnpm lint, pnpm type-check, pnpm lint:translations, pnpm test: passing (28 suites, 139 tests).
  • Docs build (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.mdx embeds .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). The deploy-docs workflow has been failing for the same reason since v1.8.0. Worth a follow-up.
  • cd docs && pnpm install --frozen-lockfile fails with ERR_PNPM_BROKEN_LOCKFILE (duplicate key hast-util-from-html@2.0.3) on the committed lockfile; the lockfile was left untouched in this PR.

Preview locally

cd docs && pnpm install && pnpm dev

Then open /react-native-template/changes-over-obytes/.


Screenshots / Previews

Not applicable (documentation only).

@devs-rootstrap devs-rootstrap added the risk:low Config, copy, minor UI tweaks. Low blast radius. label Oct 28, 2026
@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

💯 Test Coverage

Lines Statements Branches Functions
Coverage: 56%
56.23% (347/617) 59.18% (174/294) 48.76% (118/242)

😎 Tests Results

Tests Skipped Failures Errors Time
139 0 💤 0 ❌ 0 🔥 31.048s ⏱️
👀 Tests Details • (56%)
File% Stmts% Branch% Funcs% LinesUncovered Line #s
All files56.2359.1848.7656.9 
report-only-changed-files is enabled. No files were changed in this commit :)

@asdolo
asdolo marked this pull request as ready for review October 28, 2026 01:53
Copilot AI balanced review requested due to automatic review settings October 28, 2026 01:53
@asdolo
asdolo requested a review from a team as a code owner October 28, 2026 01:53

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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)).
@devs-rootstrap
devs-rootstrap force-pushed the docs/rootstrap-changes-over-obytes branch from 5f7e673 to ebe8089 Compare October 28, 2026 01:56
@@ -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.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a bit explicit. Make it sound more natural.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@asdolo Reworded the description in d9dc89c. It now reads: "What Rootstrap changed and added on top of the Obytes React Native / Expo starter." The intro paragraph was left as is since it already reads naturally.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?"

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:low Config, copy, minor UI tweaks. Low blast radius.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants