← Home System Overview Architecture Data Pipeline Health System Usage System Workflows MCP Tools

System Overview — ManyAI Mobile

Blueprint · Last updated 2026-05-02

Purpose

ManyAI is a React Native mobile application that acts as a multi-provider AI router. It intelligently routes user prompts to the best available free AI provider, implementing an automatic fallback chain that cycles through up to 8 providers before giving up. The core promise: you always get an answer, even when individual providers are rate-limited or down. It is shareware — free to use, supported by donations.

Tech Stack

ComponentTechnology
FrameworkReact Native (Expo SDK)
RoutingExpo Router v3 (file-based)
LanguageTypeScript
StorageAsyncStorage
Image handlingexpo-image-picker
OTA updatesexpo-updates
Version1.0.5

Navigation (3 Tabs)

The app uses a bottom tab navigator (expo-router Tabs). Tab bar is dark-themed (#16213e background, #4ECDC4 active tint).

TabFilePurpose
Homeapp/(tabs)/index.tsxMain chat interface
Savedapp/(tabs)/saved.tsxSaved responses management
Settingsapp/(tabs)/explore.tsxAPI keys, providers, models

Provider System (13 Providers)

Providers are defined in lib/providers/providers.ts. The routing order (ROUTING_ORDER) defines priority. pickProvider() first tries task-best providers, then any capable provider, then falls back to Pollinations.

ProviderFree TierVisionKey RequiredNotes
CerebrasYesNoYesFastest inference
GroqYesNoYesFast, reliable general
GeminiYesYesYesBest for summarization, translation
MistralYesNoYesBest for coding, creative
SambaNovaYesNoYesBest for deep reasoning
OpenRouterYesNoYesMulti-model gateway
Hugging FaceYesNoYesMassive model selection
CohereYesNoYesStrong summarization
Cloudflare AIYesNoYesKey format: accountId:apiToken
FireworksYesNoYesStrong with DeepSeek V3
OpenAIYes*YesYes*Requires billing setup
AnthropicNoYesYesPaid only, no free tier
PollinationsAlwaysNoNoUltimate fallback, always available

Vision-capable providers (accept image input): Gemini, OpenAI, Anthropic

Key Features

Storage (AsyncStorage Keys)

KeyContents
manyai_keys_*API keys per provider
manyai_provider_orderUser-customized provider priority
manyai_enabled_*Per-provider enabled toggle
manyai_model_*Per-provider selected model
manyai_saved_*Saved responses by category
manyai_categoriesList of user-created categories
manyai_onboardedFlag — hide help modal after first launch

Routing Logic (pickProvider)

1. Build available = keys present + pollinations (always)
2. If image attached: filter to VISION_PROVIDERS only
3. First pass: iterate ROUTING_ORDER, skip excluded/disabled,
               prefer bestFor[taskType] match
4. Second pass: iterate ROUTING_ORDER, return first capable provider
5. Final fallback: return 'pollinations' if candidate
6. If all exhausted: return null → show error message

API Shapes Supported (callProvider.ts)

Request timeout: 30 seconds per attempt.