# Bareship > Bareship is a production-ready, offline-first bare React Native template for teams and AI agents. Free under the MIT license. - Create an app: `npx create-bareship --bundle-id com.example.app --yes` (https://www.npmjs.com/package/create-bareship) - Template package: https://www.npmjs.com/package/bareship - GitHub: https://github.com/psingh2907/bareship - Maintainer: Praveen Singh, https://www.praveensingh.co.in - Every page in full: https://bareship.praveensingh.co.in/llms-full.txt ## Start here - [Environments](https://bareship.praveensingh.co.in/start-here/environments/): Three environments, each with its own app id, name, icon and .env file. They install side by side. - [FAQ](https://bareship.praveensingh.co.in/start-here/faq/): Answers to common questions about Bareship: accounts, platforms, Expo, updates, state, styling and package managers. - [Introduction](https://bareship.praveensingh.co.in/start-here/introduction/): What Bareship is, what it believes, who it's for, and what it leaves out. - [Quick start](https://bareship.praveensingh.co.in/start-here/quick-start/): Create an app from the template, run it on a simulator or emulator, and start building your own features. ## Build your app - [Built for AI agents](https://bareship.praveensingh.co.in/build/ai-agents/): How coding agents learn the project's rules, which skills and generators they use, and how they check their work. - [App icon and splash screen](https://bareship.praveensingh.co.in/build/app-icon-and-splash/): The app icon and the splash screen are generated from two files in assets/brand/. Replace them with your own, run two commands, and rebuild: every… - [Architecture](https://bareship.praveensingh.co.in/build/architecture/): How the code is organised and how data moves. The reasons are in the ADRs (0005, 0006, 0008). - [Add features, screens and API calls](https://bareship.praveensingh.co.in/build/generators/): pnpm gen writes the code for a new feature, screen or API call, already following the project's rules (folders, imports, translations, accessibility, tests)… - [Languages and right-to-left](https://bareship.praveensingh.co.in/build/languages/): The app ships in English and Hindi. Users pick a language in Settings, and the first launch follows the phone's language when the app has it. Right-to-left… - [Offline](https://bareship.praveensingh.co.in/build/offline/): Choose what each write does without a connection, and how saved data and queued writes behave. - [Project rules (AGENTS.md)](https://bareship.praveensingh.co.in/build/project-rules/): Guide for AI agents and new contributors. Read this before changing code. - [Styling](https://bareship.praveensingh.co.in/build/styling/): Unistyles 3 with the React Compiler on. For styles that depend on props or state, use a dynamic function (field: (state: FieldState) => ({ … }), used as… - [Testing and the mock backend](https://bareship.praveensingh.co.in/build/testing/): Jest + React Native Testing Library 14. render, fireEvent and userEvent are async: always await them. Prefer userEvent.setup() and getByRole /… ## Production - [Demo build (Android)](https://bareship.praveensingh.co.in/production/demo-build/): pnpm build:android:demo makes a release build that runs on its own, with sample data built in, so you can try sign-in, the feed, likes and offline mode on a… - [Going live](https://bareship.praveensingh.co.in/production/going-live/): The template runs without any accounts: it uses sample data, logs instead of reporting crashes, and keeps links and push local. This page lists what you add… - [Native changes](https://bareship.praveensingh.co.in/production/native-changes/): Every edit to android/ or ios/ beyond the React Native community template (0.87-stable) is listed here. Two reasons: upgrades (re-apply these after the… - [Releasing](https://bareship.praveensingh.co.in/production/releasing/): Release builds, version numbers and store uploads run through fastlane (ADR 0012). Building needs no accounts. Uploading needs a Google Play service account… ## Reference - [Best-practices audit](https://bareship.praveensingh.co.in/reference/best-practices-audit/): The code written before the agent skills were adopted (Phases 0–3 offline), checked against the vendored skills in .claude/skills/. Fix pending items when… - [Changelog](https://bareship.praveensingh.co.in/reference/changelog/): Notable changes to the template. Versions follow Semantic Versioning. Apps made from the template own their copy of the code, so a new version reaches an… - [Contributing](https://bareship.praveensingh.co.in/reference/contributing/): Thanks for helping. This file covers contributing to the template itself; AGENTS.md holds the rules for code written in it, and applies here too. Everyone… - [Decisions](https://bareship.praveensingh.co.in/reference/decisions/): Each file records one decision: the context, what we chose, what it costs, and what we rejected. The first set (0001–0012) comes from a questionnaire… - [0000. Record architecture decisions](https://bareship.praveensingh.co.in/reference/decisions/0000-record-decisions/): The template will be used by people who weren't in the room when its choices were made. Without a record, every choice gets re-litigated or silently undone. - [0001. Scope, audience and the two-track plan](https://bareship.praveensingh.co.in/reference/decisions/0001-scope-and-two-tracks/): Existing templates each solve part of the problem (see docs/research.md). We want one template that keeps their strengths and fixes their gaps, for both the… - [0002. Native baseline: RN 0.87, pure bare](https://bareship.praveensingh.co.in/reference/decisions/0002-native-baseline/): React Native 0.87.1 is the latest stable release (26 Aug 2026). It makes the strict TypeScript API the default and requires Node 22.11+, Gradle 9 / AGP 9… - [0003. pnpm and supply-chain policy](https://bareship.praveensingh.co.in/reference/decisions/0003-package-manager-and-supply-chain/): npm supply-chain attacks usually arrive through brand-new versions and install scripts. pnpm (11+) can refuse both by policy. - [0004. Environments and configuration](https://bareship.praveensingh.co.in/reference/decisions/0004-environments-and-config/): Most templates bake one .env into the JS bundle. Real apps need dev, staging and prod builds installed side by side, each with its own bundle id, name,… - [0005. Folder architecture and import boundaries](https://bareship.praveensingh.co.in/reference/decisions/0005-architecture-and-boundaries/): Templates organised by type (Ignite) or by atomic size (TheCodingMachine) spread one feature across many folders. Rules that only live in a README get… - [0006. State, data layer and offline](https://bareship.praveensingh.co.in/reference/decisions/0006-state-data-and-offline/): Most app state is a cache of server data. Mixing it with client state in one store is the most common architecture mistake in React Native apps. - [0007. Navigation](https://bareship.praveensingh.co.in/reference/decisions/0007-navigation/): React Navigation 8 is still in alpha (8.0.0-alpha.58 on 2026-09-29). Version 7 is stable and its static API is the shape v8 builds on. - [0008. UI system](https://bareship.praveensingh.co.in/reference/decisions/0008-ui-system/): A template's UI layer should be fast, themeable and easy to rebrand, without forcing a heavy component kit on its users. - [0009. Forms and i18n](https://bareship.praveensingh.co.in/reference/decisions/0009-forms-and-i18n/) - [0010. Production modules and the Firebase suite](https://bareship.praveensingh.co.in/reference/decisions/0010-production-modules-and-firebase/): Production apps (Bluesky, Expensify) ship observability, remote config, push, force-update and offline UI. Templates almost never do. - [0011. Developer tooling, docs and agents](https://bareship.praveensingh.co.in/reference/decisions/0011-developer-tooling/) - [0012. Testing, CI and delivery](https://bareship.praveensingh.co.in/reference/decisions/0012-testing-and-delivery/): docs/releasing.md. Checked 2026-10-12: bump on both platforms, the missing-credential messages, and a dry run of the build lanes' Gradle tasks and Xcode… - [0013. Agent device tools: agent-device by default, Argent for profiling](https://bareship.praveensingh.co.in/reference/decisions/0013-agent-device-tools/): Coding agents need to run the app, tap through it, check a change on screen and profile it. Two tools do this: Callstack's agent-device (a CLI plus skills,… - [0014. Native CI builds are opt-in](https://bareship.praveensingh.co.in/reference/decisions/0014-opt-in-native-ci/): 0012 - [0015. The template is named Bareship](https://bareship.praveensingh.co.in/reference/decisions/0015-name-bareship/): ADR 0001 kept the working name rn-template until a final name was chosen. That name can't be found: dozens of repositories and packages use it, so neither… - [0016. The website lives on a subdomain for now](https://bareship.praveensingh.co.in/reference/decisions/0016-website-on-a-subdomain/): ADR 0015 planned the website on bareship.dev, a domain that isn't registered yet. The maintainer already owns praveensingh.co.in, hosted on Vercel with DNS… - [0017. Ship English and Hindi; right-to-left is a switch per language](https://bareship.praveensingh.co.in/reference/decisions/0017-languages-hindi-and-opt-in-rtl/): The template shipped English and Arabic. Arabic was the demo language because it exercises the hard cases at once: a right-to-left layout and six plural… - [0018. A one-command installer: `create-bareship`](https://bareship.praveensingh.co.in/reference/decisions/0018-create-bareship/): Creating an app takes five steps: the React Native CLI's init with --skip-install (it can't install with pnpm), pnpm install, bundle install, pnpm bootstrap… - [0019. The logo is a boat whose mainsail is a B](https://bareship.praveensingh.co.in/reference/decisions/0019-logo-sail-b/): The first logo, three stacked layers (app, features, shared), was a placeholder. It looked like many stack, layer and database logos, and nothing in it said… - [Version matrix](https://bareship.praveensingh.co.in/reference/version-matrix/): Checked on 2026-10-10. Update this file whenever a native dependency is added or upgraded.