diff --git a/README.md b/README.md
index 1dd03e41..7bc53f69 100644
--- a/README.md
+++ b/README.md
@@ -1,22 +1,28 @@
# Mob
+
+
BEAM-on-device mobile framework for Elixir. OTP runs inside your iOS and Android apps — embedded directly in the app bundle, no server required. Screens are GenServers; the UI is rendered by Compose and SwiftUI via a thin NIF.
[](https://hex.pm/packages/mob)
[](https://hexdocs.pm/mob)
+> [!WARNING]
> **Status:** Early development. Android emulator and iOS simulator confirmed working. Not yet ready for production use.
## What it is
-```
-Your Elixir app (GenServers, OTP supervision, pattern matching, pipes)
- ↓
- Mob.Screen (GenServer — your logic lives here)
- ↓
- Mob.Renderer (component tree → JSON → NIF call)
- ↓
-Compose (Android) SwiftUI (iOS) ← native rendering, native gestures
+```mermaid
+flowchart TD
+ A["Your Elixir app
(GenServers, OTP supervision, pattern matching, pipes)"]
+ B["Mob.Screen
(GenServer — your logic lives here)"]
+ C["Mob.Renderer
(component tree → JSON → NIF call)"]
+ D1["Compose (Android)
native rendering, gestures"]
+ D2["SwiftUI (iOS)
native rendering, gestures"]
+
+ A --> B --> C
+ C --> D1
+ C --> D2
```
You write Elixir. The native layer handles rendering. The BEAM node runs on the device — connect your dev machine to the running app over Erlang distribution, inspect state, and hot-push new bytecode without a restart.