Zero-Config CLI and DevTools for React Native Module Federation + Expo.
ESAD is a unified toolkit designed to abstract all the complexity from Super App development using Re.Pack (Rspack) and Expo. It provides a professional, linear workflow from scaffolding to deployment.
Creates the project root, a programmable esad.config.js, and the Host Application.
npx @codemoreira/esad init my-projectCreate new Federated Modules or a Local Registry/CDN.
esad create my-module # Creates a new module (Feature)
esad create --type cdn # Scaffolds a local registry for testingThe dev command is the single entry point for development. It automatically detects if it should run the Host or a Module.
Run the Host App (Interactive):
esad devAllows selecting Android, iOS, or Bundler Only. Automatically patches native files.
Run a specific Module:
esad dev my-module --port 9000Starts the module server and updates the Host's local mapping automatically.
Prepare and push your features to the registry.
Build for Production:
esad build my-module --platform androidExecute Programmable Deploy:
esad deploy my-module --version 1.0.0Wrap your configuration to enable ESAD's smart resolution and redirection logic:
import { withESAD } from '@codemoreira/esad/plugin';
export default withESAD({
type: 'module', // or 'host'
id: 'my-mini-app'
});Share state across the Host and all Remote Modules reactively:
import { useESADState } from '@codemoreira/esad/client';
const [user, setUser] = useESADState('user');ESAD templates provide a high-end starting point:
- 🚀 Rspack + Re.Pack: Blazing fast builds.
- 📱 Professional Architecture: Modular structure (
src/api,src/components,src/navigation). - 🛤️ Dynamic Navigation: Pre-configured Module Viewer with Suspense and ErrorBoundary support.
- 🔐 State-Driven Auth: Built-in login and session management via the ESAD SDK.
- 🔧 Automated Native Patching: Zero-config injection into Android/iOS projects.
For technical diagrams and the full lifecycle, see ESAD_ARCHITECTURE.md.