Dartvel, home
Docs
Features
Studio
Cloud
Compared

Search the site

GitHub
pub.dev

WHAT WORKS TODAY

Twenty-four shipped sections.

Seventy-nine more are partial, and each card says what is missing.

Every card summarises an entry in docs/spec-status.json, and CI fails when they disagree.

Read spec-status.json

SHIPPED

Shipped, each backed by tests in the repo.

UI

DVBox and DVText

Pages

@DVPage

One layout primitive with a modifier chain.

A private annotated function becomes a page.

Routing

Files, lib/routes.dart, GoRouter

State

Signals

File pages and lib/routes.dart share one typed router, with a stack per tab.

Signals from context.signal, reactive models and DV.global.

Missing

Typed targets for routes inside DVGoRoutes.

Models

@DVModel

Forms

Model.Form()

One annotated class gives you the typed client, form, table and admin, regenerated by dartvel dev on save.

Article.Form() creates a record and article.Form() edits one, with an input per field.

Backend

@DVBackendFunction

Streaming Functions

Server-sent events

A Dart function becomes an HTTP endpoint with a generated typed client.

Return a Stream and the function is served as SSE, with a typed client that reads it.

Authorization

DV.Auth.authorization

Authentication

Passkeys, SAML, LDAP, Web3

Typed policies over models, functions and pages.

Passwords, OAuth with PKCE, magic links, one-time codes, passkeys, SAML 2.0, LDAP and Sign-In with Ethereum.

Missing

Biometric sign-in.

Database

SQLite by default

APIs

dartvel import openapi

Zero-config SQLite locally, plus Postgres and MySQL with TLS.

Import an OpenAPI spec or a Postman collection as models and typed functions.

SEO

Head tags and a sitemap

PWA

Installable and offline

dartvel build web writes title, description, canonical and Open Graph tags.

dartvel build web writes the manifest, icons and service worker.

Search

Meilisearch, OpenSearch, Algolia

Internationalization and Localization

Queries with highlights and facet counts.

Typed keys, CLDR plurals

Missing

A live Algolia test, since it has no local server.

Translation keys are typed and extracted to ARB.

Accessibility

Audited at build time

Dartvel Studio

Visual page builder

dartvel build web fails on a control with no name, an empty heading or a skipped heading level.

Drag and drop, an inspector, undo and export to an ordinary @DVPage.

Admin, Devtools, and Scaffolding

Deployment

dartvel build web-server

dartvel inspect, dartvel mcp

One graph of your routes, models, functions and jobs.

Missing

dartvel build web-server makes one file that runs your backend and web app on Linux, macOS or Windows.

Building for another OS, and deploying to a cloud with your credentials.

CSRF Protection

On by default

Reversible Transactions

DV.transaction

Every state-changing call to a generated function needs a CSRF token, and the generated client sends it.

context.afterCommit and context.compensate undo what ran when a later step fails.

Background and Durable Work

@DVJob

Static Web Generation

dartvel build web

A backend function dispatches a generated job and answers at once.

One HTML page per route, with head tags, structured data and text a crawler can read.

PARTIAL

Partly built, with the gap named.

Module Sources

dartvel add

Native Binding Graph

Five binding kinds

dartvel add mounts a Dartvel project or wraps a Dart package from pub, git or a path.

Missing

The set is closed and checked.

Missing

A .proto source, Node on phones, and the JVM anywhere but Android.

The five kinds themselves.

Styling

Fluent modifiers

Cache

DV.Cache

Padding, corners, colour, type, shadows, blur and rotation on one DVModifier chain.

Get, set, has and delete with read-through, tags and stale reads, on memory, a database, Redis or Memcached.

Missing

Missing

Hover, pressed, dark and breakpoint variants, and scale-valued padding and colour.

A cache shared between a device and the server, and invalidation generated from model writes.

AI

DV.AI

Testing

dartvel test

A local adapter, structured outputs, embeddings and provider extension points.

Fakes for auth, queues, mail, storage and AI, plus generated model factories.

Missing

Missing

Tool approvals, searchable MCP tool catalogs and per-step agent middleware.

Running only the tests a diff can reach, and scored AI evals.

Project Structure

dartvel: in pubspec.yaml

Record History and Optimistic Concurrency

Default paths, per-key overrides and a Dart config file.

Versioned writes

Missing

Glob patterns, so pages cannot live in two directories.

Missing

A model saves at the version it read.

Form reload-and-merge and the Studio history view.

Outbound HTTP

DV.Http

Scheduling

Cron on client and server

Declared hosts with timeouts, retries, a circuit breaker and a test fake, and an undeclared URL is refused.

Declared schedules are registered and tick in a served backend and in the app.

Missing

Missing

Provider adapters built on it.

A per-target report of how often each can run.

Middleware

@DVUseMiddleware

Edge Security

GraphQL limits and WAF rules

Missing

Ten built-in middlewares run in the order you declare.

GraphQL depth and cost budgets on by default, and persisted queries.

Page middleware that preloads data or sets SEO context.

Missing

Generated clients that send query hashes.

Sessions and Account Management

Theme

DV.Theme.mode

Sessions, MFA, recovery codes

Light, dark and system switching.

Hashed session tokens, TOTP second factors and sign-in endpoints.

Missing

Design tokens, fonts from config and Figma variable import.

Missing

Passkeys as a second factor.

Platform

DV.Platform

Storage-Neutral Records

One data layer, any engine

Native bindings through FFI and jnigen, 63 on Linux and 36 on Android.

Records, filters and versioned writes that compile to SQL, with Studio and its stores already on them.

Missing

Missing

Most bindings on iOS, which has 7.

Models and the other framework stores, and the MongoDB engine itself.

Schema Evolution

Online migrations

Platform API: Keys, Scopes and OAuth Provider

A planner that classifies blocking changes per database version and runs resumable backfills.

API keys and OAuth

Scoped API keys and an OAuth provider with PKCE.

Missing

MongoDB, which is planned as the first document database.

Missing

A generated ApiKey model.

Outbound Webhooks

DVWebhooks

Model Sync and Presence

Built on models and signals

Signed deliveries that survive a restart and refuse private addresses.

Generated change streams, watch and presence inside one process.

Missing

Missing

Generated subscriptions and model events.

A transport that carries changes between servers and devices.

Offline-First Models

@DVModel(offline:)

Mail and Notifications

DV.Notifications.mail

Save, delete and reads work offline, and the queue syncs itself on reconnect, on the web too.

Missing

Email, in-app, push and web push.

Missing

A test against a real APNS or push service.

encrypt: true.

Media Pipeline

Image variants

Media Playback and Capture

DVBox.video

Resized image variants for web builds.

Player and capture state as signals, with Linux audio.

Missing

Missing

Uploads, AVIF and video.

Playback backends for Android, iOS, macOS, Windows and web.

Multi-tenancy

tenantScoped: true

Feature Flags and Staged Rollout

DVFlags

Tenant resolution, filtered reads and writes on generated models, and jobs that run as their tenant.

Missing

Typed flags with percentage rollout and targeting.

Missing

Publishing flag rules per environment.

Creating the per-tenant schemas and databases.

OTA Updates

DV.Updates

Protocol Versioning and Client Compatibility

Missing

iOS.

DV.Updates.check, apply and rollback run on the Shorebird updater.

dartvel.protocol.lock

Missing

A protocol lockfile and a handshake that refuses clients outside the window.

Generated clients that send the protocol header.

AI Operations

Versioned prompts

Monitoring and Observability

GET /metrics, GET /health

Fingerprinted prompts, a prompt lockfile, budgets and evals.

Prometheus metrics and health checks on every server.

Missing

Missing

A generator for @DVPrompt, so prompts are registered by hand.

A log sink, so nothing an app logs goes anywhere.

Distributed Tracing

W3C Trace Context

Crash Reporting and Release Health

DV.Crashes

Trace context across requests, with consistent sampling.

Dart and web errors recorded and sent on the next launch.

Missing

Missing

An OTLP exporter, so no span reaches a collector.

Native crash handlers on JVM, iOS and Windows.

Alerting, SLOs and Status Pages

Product Analytics and Consent

DVAnalytics, DVConsent

DVServiceLevel, DVAlerting

Typed events that drop what consent denies.

Missing

Error budgets, burn-rate alerts and PagerDuty delivery.

Missing

Generated page-view and model events.

Incidents as a generated model.

Semantic Search and Embeddings

Model.semanticSearch

Billing

Stripe and Paddle

Keyword, semantic and hybrid search with tenant filtering, on the data model.

Missing

Checkout and signed webhooks for Stripe and Paddle.

Missing

A test against either live service.

A pgvector or hosted vector adapter.

Purchases and Entitlements

DVPurchases

Usage Metering and Quotas

DVMeters

Server-side receipt checks and a grants ledger.

Per-tenant counters, limits and billing reports.

Missing

Missing

Real App Store and Play adapters.

The @DVMeter annotation and generated accessors.

Commerce: Tax, Promotions, Disputes and Payouts

Desktop, Embedded, and Qt-Critical Capabilities

DVTax, promotions

Tray, menus, drag and drop

Missing

Tax, promotion, dispute and payout rules, tested against fakes.

Tray, menus, shortcuts and drag and drop on Linux, Windows and macOS.

A test against a live provider.

Missing

Images and HTML on the clipboard.

Platform Memory

DV.Memory

Compute: Workers and Native Offload

DV.Workers

Preallocated memory arenas shared across isolates.

A bounded isolate pool on native and web workers on web.

Missing

Missing

A test in a real browser.

A build-time check for captures a worker cannot send.

Kiosk Mode

DVKiosk

Terminal Rendering

dartvel build linux-cli

Kiosk policy and native enforcement on Android, Linux, Windows, macOS and web.

Missing

Terminal size as a signal and launch negotiation.

Missing

The renderer and a distributable runner.

Enforcement on iPadOS, Tizen and webOS.

3D Scenes

DVBox.scene

XR: Spatial Presentation

Volumes and immersive spaces

A scene document, scene graph and ray picking.

Spatial window kinds, anchors and a session driven by the device.

Missing

Missing

A GPU renderer, so every target shows the poster.

A WebGL2 renderer.

Multi-Window

DVWindows

Tab Workspaces

DVTab

Display lists on all three desktops, single-instance launch and workspace restore.

Missing

Tab strips with reorder, persistence and a TV switcher.

Missing

Dragging a tab between real OS windows.

Tear-out.

Content Workflow

DVContentWorkflow

Data Import, Export, and Reporting

Order.importCsv

Missing

Draft, review, approve and publish with an audit trail.

CSV, NDJSON and tab-separated import, CSV, JSON, NDJSON and Excel export, and monthly reports, per model.

Theme and translation content in the workflow.

Missing

PDF export.

Change Data Capture and Warehouse Sync

Secrets and Environments

dartvel key

@DVModel(capture: true)

Captured data models delivered in order, with backfill.

Missing

ClickHouse, BigQuery, Snowflake and Parquet destinations.

Missing

Vault and KMS adapters.

The app key in the Keychain, DPAPI, Secret Service and WebCrypto.

Server Provisioning

dartvel infra

Backend Release Management

Canary and blue-green

A server rendered from pubspec.yaml into systemd units, Caddy and a firewall.

Missing

Release gates that roll back on a regression.

Missing

Fixing package drift, which it only reports.

dartvel ci init.

Branch deployments

dartvel deploy --preview

Dev Client

dartvel dev

Missing

Per-branch identities and secret checks.

Android, iOS, macOS, Linux and Windows development builds pair over TLS and hot reload on every save.

An adapter that hosts a branch deployment.

Missing

Connecting to a preview environment, and embedded and TV development builds.

CLI

One tool

Package Structure

dartvel_dev

Create, dev, build, deploy, updates, admin, key and more, with generation inside dev and build.

Missing

The barrels under dartvel_dev.

Missing

The Rust bindings beyond one integer type.

The crashes and meters commands, deploy --plan and deploy rollback.

Home Widgets

@DVHomeWidget

The Golden Path

create to deploy

Missing

Generated widget pages packaged for Android and WidgetKit.

Create, dev, generate, db migrate, test, build, deploy and upgrade --plan.

A check that the Swift compiles in Xcode.

Missing

Applying an upgrade, so you make the changes the plan lists.

Adoption

dartvel init

Lifecycle Signals

DV.lifecycle

dartvel init adds Dartvel to an existing Flutter project and changes nothing else.

Missing

App, build, page, request, transaction and kiosk signals.

Missing

Riverpod and stream bridges, and Firebase or Supabase auth adapters.

Loading and route-transition states.

Backend Function Request Lifecycle

Modules

DV.Modules

context.lifecycle.request

A module is a whole Dartvel app mounted under a path.

Missing

DVContext injected first, and the stage as a read-only signal.

Missing

An exports block that limits which models a parent may use.

Most stages between received and response, and the transaction, authentication, rateLimit and rawPath options.

Module Distribution and Trust

dartvel.module.lock

Queues, Jobs, and Signals

DV.Jobs and DV.Queues

Missing

Signed module packages pinned by digest and key.

Seven queue adapters, from in-memory to Kafka, tested against real brokers in CI.

Checking a module's network and secret access while it runs.

Missing

Delayed jobs, a backoff schedule and uniqueness keys.

File Storage

Local disk, S3, Azure Blob, GCS

Generated Model Pages

Model.Page(...)

One storage API over the local disk, S3, Azure Blob and GCS.

Public pages per model with .async, .signal and .fromId.

Missing

Missing

putStream and getStream.

Resized favicons on server-rendered pages.

Error, Empty, and Loading States

page.loading.dart

Sensitive Model Fields

@DVModel.sensitiveField()

Missing

Loading and error companions for each page.

Kept out of logs, search and the admin, and encrypted: true seals the field.

Page-level error boundaries and generated status pages.

Missing

Re-encrypting rows when a key rotates.

Data Compliance and Lifecycle

DVPrivacy

Web Server Rendering

dartvel build web-server

Missing

Erasure, export and retention sweeps with signed receipts.

Pages rendered on request from model data, with head tags and streaming.

Retention schedules set per deployment.

Missing

Flutter widgets rendered to HTML.

Embedded, Television, and Extension Build Targets

Unified Development, Transparency, and Contracts

Tizen, webOS, eLinux

dartvel inspect, dartvel explain

Tizen, VS Code and Sony eLinux release builds.

Inspectors for routes, models, functions and jobs.

Missing

Missing

dartvel build webos, whose embedder ships Dart 3.10.9, and Fuchsia.

Module, transaction and schema inspectors.

Generated Code Determinism

dartvel generate --check

Documentation Generation

dartvel docs

Missing

Identical inputs give byte-identical output.

A docs site drawn by Flutter from your project graph, carried by a build when dartvel.docs turns it on.

dart format on generated files.

Missing

Running it as part of dev.

App Store Deployment and Privacy Manifests

Dartvel Cloud

dartvel build ios --cloud

dartvel deploy --store

The --cloud options on build, deploy and key.

dartvel deploy --store uploads an App Bundle to Play or an IPA to App Store Connect.

Missing

The hosted machines that run cloud builds.

Missing

Generated privacy manifests, and an upload made from CI to a real store account.

Coding Agent Documentation

AGENTS.md and the rest

Create and init write one rules block into every agent's file; dev keeps it matched to your version.

Missing

Architecture documents, per-module SKILL.md, the dartvel agent commands, and llms.txt.

BUILT ON

The projects under the build targets and updates.

The TV, embedded, extension and terminal targets run on embedders other people wrote. Dartvel keeps a pinned fork of each, and the building docs list what every fork changes.

Thanks to the projects these targets are built on:

flutter-tizen

by Samsung

flutter-elinux

by Sony

flutter-webos

by LG

flutter-embedder

by the Fuchsia authors

flutter_vscode

by SlowGen

flutter-tvos

by the FlutterTV authors

flt

by Jia Hao (jiahaog)

Credits and licences

DV.Updates runs on the

updater

by Shorebird (MIT or Apache-2.0).

Every target is built on

Flutter

by the Flutter authors (BSD-3-Clause).

START

Try the shipped parts in a new app.

Can I rely on a partial section?

Only on the part its card lists as working. Read its entry in spec-status.json first.

Create your first app
GitHub
pub.dev
npm
Acknowledgements
Privacy
Terms

FSL-1.1-MIT licensed. Built with Dartvel.

Dartvel is made by

SigmaDev Digital

To the bottom