Developer Guide

Example Apps

Use the built-in Agent Apps as templates for your own development.

Overview

The AssistMe monorepo includes 12 fully implemented Agent Apps in the agent-apps/ directory. These serve as real-world examples and templates you can reference when building your own apps.

Available Examples

DirectoryAppDescription
native-noteAssistMe NoteSmart note-taking with AI organization
native-timeAssistMe TimeTime management with timeboxing and Pomodoro
native-learnAssistMe LearnSpaced repetition with FSRS algorithm
native-happyAssistMe HappyEmotional event logging and mood tracking
native-changeAssistMe ChangeBehavioral transformation with CBT frameworks
native-ruleAssistMe RuleCollaborative rules and daily check-ins
native-decisionAssistMe DecisionDecision frameworks (AHP, WRAP, etc.)
native-successAssistMe SuccessGoal decomposition and progress tracking
native-healthAssistMe HealthWellness tracking and health insights
native-kindAssistMe KindActs of kindness and social connection
native-bookingAssistMe BookingBooking and reservation system
native-tradeAssistMe TradePeer-to-peer marketplace

Project Structure

Each example app follows a consistent Expo Router structure:

native-{slug}/
├── package.json          # App metadata, version, dependencies
├── src/
│   ├── app/              # Expo Router file-based routing
│   │   ├── (auth)/       # Authentication screens
│   │   ├── (tabs)/       # Tab navigation screens
│   │   └── _layout.tsx   # Root layout with providers
│   ├── components/       # Reusable UI components
│   ├── hooks/            # Custom React hooks
│   ├── services/         # API and service layer
│   └── contexts/         # React context providers
├── app.json              # Expo configuration
└── tsconfig.json

Tech Stack

All example apps use the same stack:

  • Framework: Expo Router v6 + React Native 0.81 + React 19
  • State Management: TanStack Query (@tanstack/react-query)
  • Backend: Supabase (auth, database, storage)
  • Styling: NativeWind (Tailwind CSS for React Native)

Using Examples as Templates

1. Clone an Example

Copy the example closest to your needs:

cp -r agent-apps/native-note my-agent-app
cd my-agent-app

2. Update Package Info

Edit package.json with your app's name and version:

{
  "name": "my-agent-app",
  "version": "1.0.0"
}

3. Develop Locally

npm install
npx expo start

4. Build as Web Bundle

Use the build script or your own tooling:

# Using the monorepo build script
./scripts/agent-app-build.sh my-app

# Or manually with Expo
npx expo export --platform web
# Then inline JS/CSS into a single index.html

5. Register and Publish

Follow the Creating an Agent App and Submitting for Review guides.

How Built-in Apps Are Integrated

In the host app, each built-in app has a placeholder component in mobile-app/src/agent-apps/placeholders/. In production, these are replaced with actual app imports:

// mobile-app/src/agent-apps/registry.ts
import { registerMicroApp } from "@assistme/agent-app-sdk";

// Production: import the real component
// import { NoteApp } from "../../../agent-apps/native-note/src/MicroAppEntry";

registerMicroApp({
  slug: "note",
  name: "AssistMe Note",
  component: NoteApp,
});

Each placeholder receives bridge and hostContext as props, demonstrating the integration pattern that all Agent Apps follow.

Dual Build Target

Every example app supports two build targets from the same codebase with zero modifications:

  1. Nativeexpo run:ios / expo run:android for standalone testing
  2. Web Bundleexpo export --platform web for embedding in the host app

This means you can develop and test your app as a standalone app, then build and publish it as an Agent App without any code changes.