Render Protocol
An open-source, server-driven UI framework for modern mobile platforms — starting with SwiftUI and Flutter, expanding to Jetpack Compose. Enable dynamic, schema-driven UIs powered by backend configuration and AI — without sacrificing native performance.
🎯 Vision
Build a platform-agnostic UI rendering protocol — not a web abstraction layer — that embraces native frameworks and performance.
Schema-Driven Rendering
Render native UI directly from Protobuf schema definitions across platforms.
Backend-Controlled Updates
Push UI changes from the server without requiring app redeployments.
AI-Compatible Schemas
LLMs can generate valid, renderable UI schemas that clients safely render.
Clean Separation
Strong boundaries between design, logic, and presentation layers.
Mobile-First
First-class support for mobile-only experiences across iOS and Android.
🧠 Core Principles
🔀 Architecture & Data Flow
graph TD
subgraph Spec ["📐 Specifications"]
Proto["render-protocol-spec<br/>(Protobuf Schemas)"]
end
subgraph CodeGen ["⚙️ Code Generation (Buf)"]
direction LR
GenSwift["RPGeneratedSwift"]
GenDart["rp_generated_dart"]
GenKotlin["rp-generated-kotlin<br/>(Planned)"]
end
subgraph Utils ["🧰 Shared Utilities"]
direction LR
UtilSwift["RPUtilsSwift"]
UtilDart["rp_utils_dart"]
UtilKotlin["rp-utils-kotlin<br/>(Planned)"]
end
subgraph Server ["🖥️ Backend"]
ServerApp["render_protocol_server"]
DB["rp_database_service"]
end
subgraph Admin ["🛠️ Admin Panel"]
Terminal["render-protocol-terminal<br/>(Planned)"]
end
subgraph Clients ["📱 Client SDKs"]
direction LR
Swift["RenderProtocolSwift<br/>(SwiftUI)"]
Flutter["fl_render_protocol<br/>(Flutter)"]
Compose["render-protocol-compose<br/>(Compose — Planned)"]
end
Proto --> GenSwift
Proto --> GenDart
Proto --> GenKotlin
GenDart --> ServerApp
UtilDart --> ServerApp
ServerApp --> DB
GenDart --> Terminal
UtilDart --> Terminal
Terminal <-->|manages| ServerApp
GenSwift --> Swift
UtilSwift --> Swift
GenDart --> Flutter
UtilDart --> Flutter
GenKotlin --> Compose
UtilKotlin --> Compose
ServerApp <-->|gRPC| Swift
ServerApp <-->|gRPC| Flutter
ServerApp <-->|gRPC| Compose
style Spec fill:#4a90d9,stroke:#2c5f8a,color:#fff
style CodeGen fill:#6c5ce7,stroke:#4a3db0,color:#fff
style Utils fill:#00b894,stroke:#00806a,color:#fff
style Server fill:#e17055,stroke:#b34530,color:#fff
style Admin fill:#636e72,stroke:#2d3436,color:#fff
style Clients fill:#fd79a8,stroke:#c44d7b,color:#fff
📦 Repositories
| Repository | Description | Status |
|---|---|---|
| render-protocol-spec | Canonical Protobuf schemas — UI component definitions and gRPC API
service contracts. Versioned (v1, v2) with Buf-managed
code generation for Swift, Dart, Kotlin, C++, JS, and Python. |
🟢 Active |
| Repository | Platform | Description | Status |
|---|---|---|---|
| RenderProtocolSwift | SwiftUI | Native Swift SDK with modular architecture — includes schema rendering, networking (gRPC), caching, state management, and component registries. Ships with an example app. | 🟢 Active |
| fl_render_protocol | Flutter | Flutter SDK mirroring the Swift architecture — widget rendering, networking, caching, and component registries. Includes an example app. | 🟢 Active |
| render-protocol-compose | Jetpack Compose | Kotlin/Compose renderer for Android. | 🔴 Not Started |
| Repository | Language | Description | Status |
|---|---|---|---|
| RPGeneratedSwift | Swift | Auto-generated Swift Protobuf & gRPC stubs from
render-protocol-spec. Consumed as a dependency by
RenderProtocolSwift.
|
🟢 Active |
| rp_generated_dart | Dart | Auto-generated Dart Protobuf & gRPC stubs from
render-protocol-spec. Consumed by fl_render_protocol and
render_protocol_server.
|
🟢 Active |
| rp-generated-kotlin | Kotlin | Auto-generated Kotlin Protobuf & gRPC stubs for
render-protocol-compose.
|
🟠 Planned |
| Repository | Language | Description | Status |
|---|---|---|---|
| RPUtilsSwift | Swift | Shared utility package — component factories, style resolvers, widget helpers, and action handlers for SwiftUI. | 🟢 Active |
| rp_utils_dart | Dart | Shared utility package — component factories, style resolvers, widget helpers, and action handlers for Flutter & server. | 🟢 Active |
| rp-utils-kotlin | Kotlin | Shared utility package for Jetpack Compose — component factories, style resolvers, and action handlers. | 🟠 Planned |
| Repository | Stack | Description | Status |
|---|---|---|---|
| render_protocol_server | Dart (gRPC + Shelf) & Swift (gRPC + Vapor) | Backend reference implementation — gRPC & REST APIs, middlewares,
mock data, and Docker support. Houses internal services like
rp_database_service, with more upcoming.
|
🟡 In Progress |
| render-protocol-terminal | TBD | Admin panel for managing and configuring server-driven UIs. | 🔴 Not Started |
🗺️ Roadmap
Phase 1 — Foundations Current
- ✅ Define platform-generic UI schema in Protobuf (14 components, 4 API services)
- ✅ Set up Buf-managed code generation pipeline
- ✅ Client-side renderers for SwiftUI & Flutter
- ✅ Component registries and factory pattern
- 🔧 Networking, caching, and schema validation
- 🔧 Authentication handshake flow
Phase 2 — AI & Tooling
- ○ LLM-friendly schema definitions
- ○ UI generation during user interaction
- ○ Schema introspection & validation tools
- ○ Drag-and-drop UI builder (backend-driven)
Phase 3 — Ecosystem
- ○ Jetpack Compose parity
- ○ Admin panel for UI management
- ○ Performance instrumentation
- ○ Advanced state & event handling
- ○ Terminal/CLI tooling
🤖 AI-First Thinking
- 🔍 An LLM can reason about supported UI components
- 💬 Generated responses can return UI instead of text
- 🛡️ Client SDKs can safely render AI-generated layouts
- 💭 Conversational UIs
- 🎛️ Adaptive screens
- 📍 Context-aware layouts