Enterprise low-code platform mobile runtime built with Expo, React Native, and TypeScript.
Metadata-driven runtime — interprets ObjectUI metadata (Views, Forms, Dashboards, Actions) from an ObjectStack server and renders them as native mobile components. No hardcoded business logic.
✅ All Core Phases Complete (0–6, 9–10) |
- Tests: 540/540 passing (63 suites) ✅
- Coverage: ~85% ✅
- SDK:
@objectstack/client@3.0.0,@objectstack/spec@3.0.0 - Next Steps: See ROADMAP.md →
What's Complete:
- ✅ Full authentication system (better-auth)
- ✅ All major view renderers (List, Form, Detail, Dashboard, Kanban, Calendar, Chart, Map, Timeline, Report, Page)
- ✅ Offline-first architecture with sync queue
- ✅ File upload/download, analytics, i18n, production monitoring, security, CI/CD
- ✅ 23 custom hooks covering all 13 SDK API namespaces
- ✅ Spec v3.0.0 core + UI alignment (automation, packages, SDUI, widgets, theme tokens)
See ROADMAP.md for complete details.
| Category | Technology |
|---|---|
| Framework | Expo SDK 54 (Managed Workflow) |
| Navigation | Expo Router v6 (file-based routing) |
| Language | TypeScript (strict mode) |
| Styling | NativeWind v4 (Tailwind CSS for React Native) |
| UI Components | shadcn/ui pattern (components/ui/) |
| Icons | lucide-react-native |
| Client State | Zustand |
| Server State | @objectstack/client-react (TanStack Query) |
| Auth | better-auth + @better-auth/expo |
| Offline Storage | expo-sqlite |
| Metadata Cache | react-native-mmkv |
# Install dependencies
pnpm install
# Copy environment variables
cp .env.example .env.local
# Start development server
pnpm start├── app/ # Expo Router pages
│ ├── _layout.tsx # Root layout (providers, auth guard)
│ ├── (auth)/ # Authentication screens
│ ├── (tabs)/ # Main tab navigation
│ └── (app)/ # Dynamic app CRUD screens
├── components/
│ ├── ui/ # Design system primitives
│ ├── renderers/ # ObjectUI rendering engine
│ ├── actions/ # Action system
│ ├── common/ # Shared components
│ ├── query/ # Query builder UI
│ ├── batch/ # Batch operation UI
│ ├── views/ # Saved views UI
│ └── sync/ # Offline sync UI
├── hooks/ # Custom React hooks
├── lib/ # Core libraries
├── stores/ # Zustand state stores
└── docs/ # Documentation
| Command | Description |
|---|---|
pnpm start |
Start Expo development server |
pnpm run lint |
TypeScript check + ESLint |
pnpm test |
Run Jest tests |
pnpm run format |
Format with Prettier |
Comprehensive project documentation is available in the docs/ directory:
| Document | Description |
|---|---|
| 🗺️ Roadmap | → START HERE - Project status, spec compliance, development phases, next steps |
| 🧪 E2E Testing | Maestro test flows, execution guide, troubleshooting |
| Architecture | System architecture, layer design, provider hierarchy |
| UI/UX Design | Design system, view renderers, field types |
| 🎨 UX Design Review | UX audit, industry benchmarks, improvement roadmap (Phases 14–20) |
| Data Layer | Offline-first architecture, sync queue, caching |
| API Integration | SDK usage, authentication, hook reference |
| Security | Auth security, data protection, network security |
| Testing | Testing strategy, unit/integration tests |
| Deployment | Build system, EAS Build, OTA updates, CI/CD |
| Contributing | Development workflow, coding standards, PR process |
The app uses a CSS-variable-based design token system with light and dark mode support. Color tokens are defined in global.css and consumed via Tailwind classes. See UI/UX Design for the full specification.