How flutterindiadev1/sdui_flutter works
SDUI Flutter Sanity lets an app request a screen by slug, retrieve its Sanity-authored component tree, render it as Flutter widgets, and keep it current with realtime updates and cached configuration. Sanity Studio supplies page and component schemas; the Flutter runtime provides configuration, fetching, caching, component/action extension points, and rendering. The README also documents CLI generation of components, actions, and seed data. Runtime source excerpts were not provided, so uncertain internal call wiring is omitted; links reflect documented behavior and sampled schema structure.
Main entry points: sdui_view.dart Screen view · sdui_engine.dart SDUI engine · generate.dart Generator entry · uiElements.ts UI schemas
Components 22
Content authoring
- Sanity Studio
sanity_studio/sanity.config.js - Page schema
sanity_studio/schemas/pageConfig.ts - UI schemas
sanity_studio/schemas/components/uiElements.ts - Schema registry
sanity_studio/schemas/index.ts
Flutter runtime
- SDUI engine
lib/sdui_core/sdui_engine.dart - SDUI config
lib/sdui_core/config/sdui_config.dart - Screen view
lib/sdui_core/view/sdui_view.dart - Config controller
lib/sdui_core/controller/config_controller.dart - Sanity client
lib/sdui_core/client/sanity_client.dart - Realtime listener
lib/sdui_core/client/realtime_listener.dart - Config cache
lib/sdui_core/cache/config_cache.dart - UI node
lib/sdui_core/models/ui_node.dart
Extensions
- Component registry
lib/sdui_core/registry/component_registry.dart - Custom components
lib/sdui_core/registry/sdui_component.dart - Action model
lib/sdui_core/registry/sdui_action.dart - Action handlers
lib/sdui_core/registry/sdui_action_handler.dart
CLI generation
- Generator entry
bin/generate.dart - Component generator
lib/sdui_cli/component_generator.dart - Action generator
lib/sdui_cli/action_generator.dart - Seed generator
lib/sdui_cli/seed_generator.dart
Other components
- Flutter app
- Sanity CMS
Connections 26
- Sanity Studio → Page schema: authors pages
- Sanity Studio → UI schemas: authors components
- Schema registry → Page schema: registers
- Schema registry → UI schemas: registers
- Page schema → Sanity CMS: defines page content
- UI schemas → Sanity CMS: defines UI content
- Flutter app → SDUI engine: initializes
- Flutter app → Screen view: requests screen
- Screen view → Config controller: loads config
- Config controller → Sanity client: fetches config
- Sanity client → Sanity CMS: queries GROQ
- Screen view → Config cache: caches config
- Screen view → Realtime listener: subscribes updates
- Realtime listener → Sanity CMS: receives SSE
- Screen view → UI node: renders tree
- SDUI engine → SDUI config: uses settings
- SDUI engine → Component registry: registers components
- Component registry → Custom components: resolves types
- SDUI engine → Action handlers: registers handlers
- Custom components → UI node: builds from node
- Action handlers → Action model: handles actions
- Flutter app → Generator entry: runs generator
- Generator entry → Component generator: dispatches component
- Generator entry → Action generator: dispatches action
- Generator entry → Seed generator: dispatches seed
- Component generator → UI schemas: generates schema