Ceryo
TestFlightThe all-in-one mobile companion: organise, learn, track and live, all in one place.



The context
Ceryo is a super-app: a modular mobile application bringing together planning, learning, a content library, real-time messaging, budget, health, travel and places, a rich editor and an AI assistant, all in an Apple-grade, fluid, offline-first experience where every screen must load instantly and behave like a system app.
My role
Solo, end-to-end product design, architecture and full-stack development: Rails backend (API, business services, jobs, real time, AI and payment integrations), React Native mobile app (screens, navigation, data hooks, native health and in-app-purchase integrations), web platform and showcase, design system, tests, CI and self-hosted containerized deployment.
Key features
- Augmented search engine: real-time web search, multi-source synthesis and a personal encyclopedia with semantic search and an automated editorial pipeline.
- Ceryo Assistant: an AI copilot with five LLMs to choose from, in orchestrator mode (acting across every module) and architect mode (project planning).
- Arena, gamified learning: quizzes, real-time duels, scheduled battle royales, teams, ELO, leagues, XP, streaks, badges and an evolving mascot.
- Spaces, themed communities: posting, feed, reactions, polls, roles and moderation, monetization and live events.
- Budget: expense tracking with AI categorization, recurring subscriptions, wallets and savings goals.
- Sport & Health: adaptive programs, body-composition tracking and wearable sync (Apple HealthKit, Android Health Connect).
- Travel & Studio: day-by-day itineraries, travel budget, and a unified creation workshop (notes, documents, spreadsheets, canvas) with an embedded rich editor.
- Cross-cutting: real-time chat and messaging, missions and trophies, push notifications, payments (Stripe subscriptions and in-app purchases), roles and permissions, FR→EN i18n.
Technical challenges
- Unified multi-provider LLM gateway: a single interface for five providers with different formats, normalizing messages, function-calling and SSE streaming, routing by task type, an automatic fallback chain and per-request cost estimation.
- Multi-domain real time: nine Action Cable channels covering presence, messaging, community events and synchronized competitive games, backed by Redis.
- Mobile 'Batch Snapshot' pattern: each screen consumes a single endpoint returning all of its data, with a dedicated hook and skeleton, on-touch prefetch and a per-screen freshness policy: zero waterfall loading.
- In-database semantic search: pgvector enabled and exploited (1536-dimension embeddings, cosine IVFFlat index) for the encyclopedia and search, with no external vector engine.
- Autonomous editorial automation: around sixty recurring jobs orchestrate ingestion, synthesis, sport sync and event lifecycles, designed to run unattended.
- Reliability of third-party data pipelines: robustness of multi-provider aggregation (cross-provider deduplication, alias resolution, live scores, handling of free API tiers).
Scale
A platform-sized product, built solo.
- A rich mobile app backed by a full server: platform-scale ambition, carried solo.
- Brings together in a single app worlds that usually live apart: budget and wealth, communities, sport and coaching.
- Around twenty business domains treated in depth, not a thin shell.
- Available on TestFlight and exercised by real users, on infrastructure owned end to end.
Results
A complete mobile app, in early access on TestFlight and ready for the App Store.
- Apple-grade mobile experience: smooth animations, haptic feedback and a canonical art direction carried across every screen.
- End-to-end full-stack command: React Native, real-time Rails and a sophisticated AI layer, all built solo.
Tech stack 07 families · 26 technologies
The tech stack
Every technology in this project, wired into the rest of my practice: the wider a neuron, the more projects it has proven itself on.
Full inventory
Architecture
- Monorepo hybride (Rails + React Native)
- API REST versionnée /api/v1
- ~25 modules métier par domaine
- Pattern Batch Snapshot
- Gateway LLM multi-provider
Backend
- Ruby on Rails 7.1
- PostgreSQL
- pgvector
- Redis
- SolidQueue
- Devise+JWT
- Omniauth
- Pundit
- Stripe
- Action Cable
- ruby-openai
Core
- LLM Gateway 5 fournisseurs (OpenAI, Anthropic, Gemini, xAI, Mistral)
- routage + fallback + suivi de coût
- streaming SSE unifié
- RAG & embeddings pgvector (1536 dim)
- agents IA (orchestrateur, architecte)
Mobile
- React Native 0.76
- Expo 52
- React Navigation
- TanStack Query
- Reanimated 3
- FlashList
- Firebase
- Stripe RN
- react-native-iap
- HealthKit/Health Connect
- MMKV
- Keychain
Frontend
- TypeScript
- TipTap
- Hotwire (Turbo/Stimulus)
- SASS
Quality
- RSpec/Vitest
- RuboCop
- Brakeman
- SimpleCov / WebMock / VCR
- Playwright
- Docker multi-stage
- Kamal 2 → Hetzner
- CI GitHub Actions
Architecture
- Monorepo hybride (Rails + React Native)
- API REST versionnée /api/v1
- ~25 modules métier par domaine
- Pattern Batch Snapshot
- Gateway LLM multi-provider
Backend
- Ruby on Rails 7.1
- PostgreSQL
- pgvector
- Redis
- SolidQueue
- Devise+JWT
- Omniauth
- Pundit
- Stripe
- Action Cable
- ruby-openai
Core
- LLM Gateway 5 fournisseurs (OpenAI, Anthropic, Gemini, xAI, Mistral)
- routage + fallback + suivi de coût
- streaming SSE unifié
- RAG & embeddings pgvector (1536 dim)
- agents IA (orchestrateur, architecte)
Mobile
- React Native 0.76
- Expo 52
- React Navigation
- TanStack Query
- Reanimated 3
- FlashList
- Firebase
- Stripe RN
- react-native-iap
- HealthKit/Health Connect
- MMKV
- Keychain
Frontend
- TypeScript
- TipTap
- Hotwire (Turbo/Stimulus)
- SASS
Quality
- RSpec/Vitest
- RuboCop
- Brakeman
- SimpleCov / WebMock / VCR
- Playwright
- Docker multi-stage
- Kamal 2 → Hetzner
- CI GitHub Actions
In pictures

The home dashboard

Budget & wealth

The communities

Sport & coaching
Next project
GodMode
ActiveA native dashboard to drive all my local projects and AI models, in a single click.
