Dowe、サーバー・Web・ネイティブアプリ向けのワンソースコンパイラを提案
このプロジェクトは、コンパイラによって強制される契約を利用して、サーバー、Web、デスクトップ、Android、iOSにまたがるAIのコードドリフトを封じ込めます。
By Ryan Merket · Published
Primary source: Dowe
Why it matters
Dowe is testing whether the compiler, rather than the coding agent, should own architecture as AI-generated applications spread across more platforms.

Dowe はフルスタックコンパイラを提示しており、大きな約束を掲げています:1つの宣言的なソースから、サーバー、Web、デスクトップ、Android、iOS 向けの検証されたソフトウェアを生成できるというものです。
このプロジェクトは、AI支援開発に関する明確な仮説を中心に構築されています。コーディングエージェントは個別ファイルを素早く生成できますが、その結果できあがったアプリケーションには、インターフェイス、データ、ルート、サーバーロジック、プラットフォーム固有の振る舞いの間に安定した境界が必要です。Dowe は、解析、分析、ルーティング、ランタイムの挙動、ターゲット生成を所有するコンパイラの下にそれらの決定を置きます。
Dowe はワークフローをループとして説明しています:開発者またはエージェントがビュー、データ、サーバーの意図を宣言する;コンパイラが契約と境界をチェックする;Dowe が選択した各ターゲット向けに成果物を生成する;そしてホームページではレビューを第4のステップとして挙げています。
このアプローチはコンパイラを製品の権威の中心に据えます。Dowe は、エージェントがパッケージやフレームワーク、生成されたグルーコードから自由にスタックを組み立てるのではなく、制約されたプロダクトモデルを修正する方が信頼しやすくなると賭けています。
The compiler is the guardrail
Dowe のホームページによれば、そのソースモデルは宣言的なページ、レイアウト、コンポーネント、デザイントークン、サーバールーティング、サーバーサイドレンダリング、データアクセス、ランタイム境界をカバーします。コンパイラは、そこから Web アセット、サーバーバイナリ、デスクトップウィンドウ、SwiftUI(iOS 用)、および Jetpack Compose(Android 用)を生成する責任を負います。
この区別は重要です。多くの AI アプリビルダーは、生成を従来のリポジトリへの一連の編集として扱います。彼らのエージェントはどのファイルを作成し、それらのファイルがどのように組み合わさるかを決めます。Dowe はその権限のより多くを言語とコンパイラに移し、エージェントにより狭い役割を与えます:機械可読な制約を尊重しつつ宣言された意図を編集することです。
Dowe Agent ドキュメント はその考えが既存のコーディングツールにどのように到達するかを示します。Dowe は基盤となるモデルを選択したりホストしたりすることなく、Codex、Claude Code、OpenCode、または別のエージェント向けにプロジェクトを準備できます。初期化コマンドは、プロバイダー非依存の指示、テスト駆動開発用ハーネス、プロジェクト計画、およびバージョン管理された著作スキルをインストールします。
同梱のハーネスは、仕様、契約、テスト、実装、検証、および振る舞いの変更に関するドキュメントを要求します。Dowe は事実上、開発プロセスとアーキテクチャの所有権をアプリケーションを生成する同じツールにパッケージ化しているのです。
One route graph across every surface
views ドキュメント は、Dowe のモデルのより具体的な例を提供します。開発者はルートと共有レイアウトを一度定義すれば、コンパイラは同じルートグラフから Web、デスクトップ、Android、iOS のナビゲーションを生成します。
プラットフォーム固有のスクリーンは依然として存在できます。開発者はルートまたはレイアウトを Web、デスクトップ、Android、または iOS に限定することができます。Dowe によれば、コンパイラは生成前にそれらのエントリをフィルタリングするため、ターゲット固有のスクリーンがすべてのアプリケーション内でランタイム条件として配布されることはありません。
コンパイラはルートの所有権もチェックします。同じ正準パスは別々のプラットフォーム集合で使うことができますが、同じターゲットに対して二つのエントリが同じパスを主張するとコンパイルは失敗します。これは Dowe がコーディングエージェントに修復させたいタイプの予測可能なルールです:エージェントはルーティングの衝突をユーザーが後で発見するのではなく、コンパイラエラーとして受け取ります。
Dowe はまた、そのサーバー出力が周辺的な Node.js ランタイムなしで動作すると述べています。ブラウザには生成された JavaScript と CSS が配信される一方で、ルーティングとサーバーの権威は生成されたサーバー側に残ります。これにより Dowe の主張は共有ユーザーインターフェイスコードを越え、アプリケーションのアーキテクチャおよびデプロイ挙動にまで及びます。
初期のプラットフォームサポートには依然として実務的な制約があります。Unix インストーラー は Intel および Apple Silicon の Mac と AMD64 の Linux 向けのバイナリを解決します。現在のスクリプトはそのリリースで Arm64 の Linux が利用不可であると明記しています。Dowe はホームページで Windows 向けに PowerShell のインストールコマンドも提供しています。
A broader claim than cross-platform UI
Dowe は成熟したカテゴリに参入しています。Flutter は開発者が一つの Dart コードベースからモバイル、Web、デスクトップ、および組み込みアプリケーションを構築できるようにします。Kotlin Multiplatform は Android、iOS、Web、デスクトップ、サーバープロジェクト間で共有ロジックをサポートし、共有インターフェイス向けには Compose Multiplatform が利用可能です。Tauri は必要に応じて Rust、Swift、または Kotlin を使い、ネイティブのデスクトップおよびモバイル機能を伴う Web フロントエンドをパッケージ化します。
Dowe が提案する境界は異なります。Dowe は一つのコンパイラがプロダクトモデル、バックエンドの振る舞い、ルート、インターフェイス、および生成されたネイティブターゲットを所有することを望んでいます。それにより Dowe は調整すべき対象がより広くなり、技術的により困難な約束を証明する必要があります。サーバーの振る舞い、ブラウザレンダリング、ネイティブナビゲーション、プラットフォームAPI、パッケージング、およびデバッグは、同じソースモデルから始まってもそれぞれ異なる制約を持ちます。
ドキュメントは Dowe がそれらの違いをどのように管理するつもりかを示しています。決定的な試験は、開発者が 5 つのターゲットファミリーすべてにわたって実質的なアプリケーションを構築および維持できるかどうか、共有モデルを繰り返し脱出せずに済むかどうかになります。ネイティブ API へのアクセス、生成コードの品質、ビルド性能、デバッグ、マイグレーション、およびプラットフォーム固有のインターフェイス挙動が、コンパイラの権威が複雑さを減らすのか、それとも新しい層に集中させるのかを決定づけるでしょう。
Dowe のタイミングは開発者ツールにおけるより広い変化に合っています。コーディングエージェントは実装の速度を改善しており、ソフトウェア作成の難しい部分を仕様、検証、アーキテクチャ、およびレビューの方へ押しやっています。Dowe はその変化に直接賭けています:生成されたコードは置き換え可能な成果物になり、宣言されたシステムとそのコンパイラで強制される契約が持続的な真実の源になる、ということです。