Dart Desk is a headless CMS for product teams who ship in public — typed schemas, a calm editor, one source of truth for every surface.
Declare content models as annotated Dart classes. Field options, validation, hotspots, min/max, relations — all in the type system.
Your team works in a focused studio with realtime presence, branching previews, and a schema-aware editor that refuses bad input.
One source of truth for Flutter app, kiosk, web, and signage. Typed Dart client over Serverpod — end-to-end types, no codegen drift.
@DeskModel(title: 'Home screen')@MappableClass(discriminatorValue: 'homeConfig')class HomeConfig extends CmsContent {final ImageReference? heroImage;final String heroEyebrow;final String heroHeadline;final CtaAction primaryCta;final List<FeaturedDish> featuredDishes;final StoreCallout storeCallout;}
class HomeScreen extends StatelessWidget {final HomeConfig config;final BrandTheme theme; const HomeScreen({super.key,required this.config,required this.theme,}); @overrideWidget build(BuildContext context) {return AuraTheme.wrap(theme,child: MobileFrame(child: Column(children: [HeroBanner(image: config.heroImage,eyebrow: config.heroEyebrow,headline: config.heroHeadline,primaryCta: config.primaryCta,),FeaturedCarousel(dishes: config.featuredDishes),StoreCalloutCard(data: config.storeCallout),]),),);}}