{"slug": "show-hn-full-stack-development-from-one-codebase-web-android-and-ios", "title": "Show HN: Full stack development from one codebase web, Android, and iOS", "summary": "Dowe, a Rust compiler and runtime toolchain, enables full-stack development for web, Android, and iOS from a single declarative source graph, eliminating the need for Node.js or React. The tool generates native Jetpack Compose for Android, SwiftUI for iOS, and server-rendered HTML for web, with deterministic output and explicit boundaries between server and client code.", "body_md": "**Fullstack systems for the AI era**\n\n**AI can generate code. Dowe generates the system.**\n\n[Website](https://dowe.dev) · [Quick start](#quick-start) · [Architecture](#how-dowe-works) · [Development](#developing-dowe)\n\nDowe is a Rust compiler and runtime toolchain for building fullstack products from a unified,\ndeclarative source graph. Applications are authored in **Dowe Source Format** (`.dowe`\n\n), checked\nagainst explicit language and platform contracts, and lowered into the artifacts required by each\nselected target.\n\nThe result is one product architecture across:\n\n**Server**— Rust-owned routing, data access, host capabilities, and production serving.** Web**— server-rendered HTML, deterministic JavaScript and CSS chunks, and a Rust HTTP router.** Desktop**— generated web/static output hosted in native windows for macOS, Windows, and Linux.** Android**— native Jetpack Compose projects.** iOS**— native SwiftUI projects.\n\nDowe Source Format is a compiler input, not a JavaScript application runtime. Dowe does not require\nNode.js, `node_modules`\n\n, React, Tailwind, or execution of user source to compile and run an\napplication.\n\n| Principle | What it means |\n|---|---|\nArchitecture is enforced |\nParsing, analysis, routing, runtime behavior, and target generation have explicit owners. |\nOne system, many surfaces |\nServer, web, desktop, Android, and iOS share one product model instead of diverging into separate stacks. |\nOutput is deterministic |\nUnchanged inputs produce stable generated artifacts that can be inspected, tested, and regenerated. |\nBoundaries are explicit |\nServer-only capabilities and secrets stay out of generated client data. |\nAgents work inside contracts |\nDiagnostics, generated type support, Agent Harnesses, and CodeGraph make constraints machine-readable. |\n\n``` php\nflowchart LR\n    S[\"Dowe source graph<br/>main.dowe · theme.dowe · modules\"] --> C[\"Rust compiler<br/>parse · analyze · lower\"]\n    C --> R[\"Rust server\"]\n    C --> W[\"Web + SSR\"]\n    C --> D[\"Desktop\"]\n    C --> A[\"Android<br/>Jetpack Compose\"]\n    C --> I[\"iOS<br/>SwiftUI\"]\n```\n\nEvery project begins with a small set of root contracts:\n\n| Path | Responsibility |\n|---|---|\n`main.dowe` |\nApplication metadata, views, server wiring, and enabled target families. |\n`theme.dowe` |\nFonts, semantic themes, and project-wide component defaults. |\n`.env.example` |\nShareable environment variable names and non-secret examples. |\n`.env` |\nIgnored local values. |\n`views/` |\nRoute graphs, layouts, pages, components, stores, and view-only types. |\n`server/` |\nEndpoints, handlers, middleware, services, repositories, tasks, and providers. |\n`.dowe/` |\nGenerated development and distribution artifacts. Never edit these as source. |\n\n``` python\nimport ApiRoutes from \"@/server/endpoints\"\nimport AppRoutes from \"@/views/routes/app\"\n\nmain\n  app name:\"Hello Dowe\" bundle:\"dev.dowe.hello\"\n  views:AppRoutes\n  server port:8080\n    endpoints:ApiRoutes\npage HomePage\n  Section\n    Title\n      \"Build the system, not the stack.\"\n    Text color:\"muted\"\n      \"One source model. Every product surface.\"\n    Button href:\"/docs\"\n      \"Explore Dowe\"\n```\n\nThe syntax stays intentionally small: declarations, bindings, `key:value`\n\nprops, and indented\nchildren. The Rust compiler owns validation and reports invalid bindings, props, imports, routes,\ntypes, and target boundaries before generation.\n\nmacOS and Linux:\n\n```\ncurl -fsSL https://get.dowe.dev/install | bash\n```\n\n## Windows PowerShell\n\n```\nirm https://get.dowe.dev/install.ps1 | iex\n```\n\nVerify the installation:\n\n```\ndowe version\nmkdir hello-dowe\ncd hello-dowe\ndowe init --template blank\n```\n\nUse `dowe init --template crud`\n\nfor the fullstack CRUD starter. Add `--i18n`\n\nto either template to\ninclude translation catalogs.\n\n```\ndowe dev --target server --target web\n```\n\nDowe analyzes the project, writes generated files under `.dowe`\n\n, and prints the development URLs.\nRun `dowe dev`\n\nwithout flags to select available targets interactively.\n\n| Command | Purpose |\n|---|---|\n`dowe init` |\nCreate a blank or CRUD Dowe project. |\n`dowe dev` |\nCompile, watch, and run selected development targets. |\n`dowe test` |\nDiscover and run native `.dowe` literal tests. |\n`dowe deploy` |\nProduce static, Docker, or Cloudflare distributions. |\n`dowe icons` |\nGenerate versioned web, desktop, Android, and iOS icon sets. |\n`dowe agent` |\nInstall or update public authoring guidance for coding agents. |\n`dowe codegraph` |\nInspect ownership, dependencies, modularity, and duplication. |\n`dowe database` |\nManage Dowe Database instances and data. |\n`dowe cache` |\nManage Dowe Cache instances and key-value data. |\n`dowe vector` |\nManage Dowe Vector instances and embeddings. |\n`dowe upgrade` |\nUpgrade through the official release channel. |\n\nThis directory is a Cargo workspace. The main responsibilities are grouped as follows:\n\n| Area | Crates and assets |\n|---|---|\n| Language | `compiler` , `components` , and `inference` |\n| Runtime | `runtime` , `stdlib` , `spawn` , `crypto` , and `id` |\n| Data | `database` , `cache` , and `vector` |\n| Targets | `generator_web` , `generator_desktop` , `generator_android` , and `generator_ios` |\n| Tooling | `cli` , `deploy` , `icons` , `minifier` , and `ipc` |\n| Agent support | `agent` , `agent_harness` , `codegraph` , and `skill-data` |\n| Packaged assets | `assets/fonts` and `assets/icons` |\n\nCore behavior belongs in shared crates. CLI and IPC entrypoints remain thin adapters over the same compiler and runtime APIs.\n\nFrom this directory:\n\n```\ncargo build --workspace\ncargo test --workspace\ncargo fmt --all -- --check\ncargo clippy --workspace --all-targets -- -D warnings\n```\n\nRun the development CLI directly from the workspace:\n\n```\ncargo run -p dowe -- version\n```\n\nCompiler and runtime changes should preserve the single-owner architecture, include focused tests, keep generated output deterministic, and validate every affected target. Dowe source and generated code remain free of runtime Node.js assumptions and framework-specific compatibility layers.\n\n**Build the system, not the stack.**", "url": "https://wpnews.pro/news/show-hn-full-stack-development-from-one-codebase-web-android-and-ios", "canonical_source": "https://github.com/usedowe/dowe-lang", "published_at": "2026-07-30 00:34:19+00:00", "updated_at": "2026-07-30 00:52:20.867386+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence"], "entities": ["Dowe", "Rust", "Jetpack Compose", "SwiftUI"], "alternates": {"html": "https://wpnews.pro/news/show-hn-full-stack-development-from-one-codebase-web-android-and-ios", "markdown": "https://wpnews.pro/news/show-hn-full-stack-development-from-one-codebase-web-android-and-ios.md", "text": "https://wpnews.pro/news/show-hn-full-stack-development-from-one-codebase-web-android-and-ios.txt", "jsonld": "https://wpnews.pro/news/show-hn-full-stack-development-from-one-codebase-web-android-and-ios.jsonld"}}