RNJet Boilerplate

A production-ready React Native boilerplate and CLI toolkit that bootstraps fully-configured apps in a single command.
Built with Clean Architecture, New Architecture (Fabric + JSI), i18next, MMKV, and React Navigation v7 — all wired up and ready to ship.
Published as an npm package (@jonathantri/rnjet), RNJet eliminates weeks of setup so teams can focus on building features from day one.

Tech Stack & Tools

Android

iOS

React Native

icon

TypeScript

CLI Tool

npm Package

Key Features

Module Generator CLI

Instantly scaffold modules, components, screens, and services with a single CLI command. Standard-compliant naming conventions are enforced automatically, keeping the codebase consistent from day one without any manual configuration.

New Architecture (Fabric + JSI)

Built from the ground up to support React Native's New Architecture — Fabric renderer and JSI bindings included out of the box. Near-native performance levels with direct C++ interop, no migration required.

Clean Architecture — Feature-Based Structure

Enforced separation of concerns with a modular, feature-based folder structure. Domain, data, and UI layers are clearly separated — scales cleanly from solo projects to large teams without the codebase becoming chaotic.

i18n with i18next — Built In

Full internationalization support with i18next and type-safe translation keys. English and Bahasa Indonesia included. Adding any new language takes just minutes — no additional setup needed.

MMKV Storage — Faster Than AsyncStorage

Ultra-fast synchronous storage powered by MMKV with AES-256 encryption. No async/await complexity, no performance overhead — orders of magnitude faster than AsyncStorage for key-value data.

React Navigation v7 — Pre-Configured

Production-ready navigation with typed screens, nested stacks, and a custom useNavigate hook — fully wired and ready to extend. Supports deep linking and tab-based layouts out of the box.

Development Journey

Project Vision & Motivation

Every React Native project starts the same way — setting up navigation, configuring themes, wiring up an API layer, integrating storage, and adding internationalization. Developers routinely lose the first two weeks of every new project to this repetitive boilerplate work, before a single product feature is written.

RNJet was built to solve that exact problem. The goal was to create a single CLI command that bootstraps a fully production-ready React Native starter kit, with Clean Architecture, New Architecture support, i18next, MMKV, and React Navigation v7 all pre-configured and wired up. Not a minimal template, and not an over-opinionated framework — but the right set of tools for real production apps.

Beyond the boilerplate, RNJet ships with a module generator CLI that lets developers scaffold new features, screens, components, and services in seconds. Published as an npm package (@jonathantri/rnjet), the tool is open source and actively maintained, giving the React Native community a reliable, scalable starting point that grows with any team or project size.

Challenges Faced

Designing a Flexible yet Opinionated Architecture

Most boilerplates either do too little — leaving everything to the developer — or too much, imposing decisions that are nearly impossible to override. Striking the right balance between pre-configured structure and developer freedom was the core design challenge throughout the build.

New Architecture Compatibility

Supporting React Native's New Architecture (Fabric + JSI) required ensuring every library and native module in the stack was compatible. Many popular packages still had incomplete New Architecture support, requiring careful selection and validation of each dependency.

Building a Reliable CLI with Cross-Platform Support

The module generator CLI needed to work reliably across macOS, Linux, and Windows environments — handling different file systems, shell environments, and platform-specific edge cases. Ensuring consistent templating and code generation across all platforms required significant testing and iteration.

Solutions Implemented

Curated, Production-Tested Tech Stack

Each library in RNJet was hand-picked based on production use across real projects. The stack is opinionated enough to eliminate decision fatigue, but modular enough that developers can swap or extend any layer without fighting the boilerplate.

New Architecture First, Zero Migration

RNJet was designed on New Architecture from day one, not retrofitted. All dependencies are validated for Fabric and JSI compatibility, so projects generated with RNJet never need a painful migration path.

TypeScript-First CLI with Automated Scaffolding

The CLI was built with TypeScript and tested across multiple platforms. It generates fully typed, convention-compliant module scaffolding, reducing cognitive overhead and enforcing naming standards automatically — so the team stays consistent as the project grows.

Projects Showcase

project-rnjet

Key Learnings & Takeaways

Developer Tools Are Products

>

Building RNJet reinforced that CLI tools and boilerplates deserve the same product thinking as end-user apps.

>

Developer experience, clear documentation, sensible defaults, and intuitive commands are just as important as code quality.

>

A tool that developers enjoy using gets adopted; one that frustrates them gets abandoned regardless of technical merit.

Architecture Decisions Compound Over Time

>

Designing a starter kit forces you to think deeply about architectural decisions that most projects defer until it's too late.

>

Every structural choice in RNJet — folder organization, layer separation, module boundaries — was made knowing it would need to scale across many different project types and team sizes.

>

This experience deepened my appreciation for intentional architecture as a long-term force multiplier.

Open Source Requires Sustained Commitment

>

Publishing RNJet on npm and maintaining it as an open source project comes with responsibility beyond the initial release.

>

Keeping dependencies updated, responding to issues, writing clear documentation, and shipping improvements require ongoing effort.

>

This project gave me firsthand experience with what it takes to build and maintain an open source tool that others rely on.

Future Improvements

Interactive CLI Mode

Adding an interactive project initialization mode where developers can select features to include — state management library, authentication setup, analytics integration — making the boilerplate even more flexible for different project requirements.

Automated Testing Setup

Integrating pre-configured Jest and Detox setups directly into the boilerplate, so projects start with a working test suite and E2E testing scaffolding — reducing the barrier to writing tests from the very beginning of a project.

Expanding UI Component Library

Continuously adding more production-ready, highly customizable UI components to the boilerplate. The goal is to provide a comprehensive suite of pre-built elements out of the box so developers can assemble complex interfaces even faster.

Let’s Build Something Amazing Together

Ready to take your ideas to reality? I’m always excited to work on new challenges and create innovative solutions.