A local-first desktop application starter — Tauri v2, SolidJS, Vite v8, Park UI, TanStack, Command Registry, and Turbo monorepo for AI-assisted development.
Important
This repository is built for local-first desktop applications only — not web applications. For detailed local-first architecture, see docs/ARCHITECTURE.md.
Built for local-first desktop applications only — not web applications. The app runs natively on the user's device with direct file system access via Tauri, stores data on local disk, and works fully offline.
For detailed local-first architecture and persistence patterns, see docs/ARCHITECTURE.md.
This repository is optimized for developer productivity and code quality through monorepo structure, centralized dependency management, local-first quality gates, type-safe boundaries, and AI-assisted development.
For detailed design philosophy, see docs/ARCHITECTURE.md.
| Requirement | Version | Notes |
|---|---|---|
| Node.js | >= 20 |
Download |
| pnpm | >= 11.0.0 |
Install |
| Rust | >= 1.85.0 |
rustup |
| OS-specific | — | Windows: MSVC Build Tools (VS Installer → "Desktop development with C++") macOS: Xcode Command Line Tools Linux: build-essential + pkg-config + libssl-dev |
# 1. Clone the repository
git clone <repo-url> core-starter
cd core-starter
# 2. Update project identifiers (required before building)
# Edit the following files to replace placeholder values:
# - apps/desktop/src-tauri/tauri.conf.json:
# - Replace productName: "core-starter" with your app name
# - Replace identifier: "com.corestarter.desktop" with your app identifier
# - apps/desktop/src-tauri/Cargo.toml:
# - Replace name = "core-starter-desktop" with your app name
# - Replace authors = ["y0sky"] with your name
# - Replace repository URL with your repository URL
# 3. Install dependencies
pnpm install
# 4. Run the desktop app (compiles Rust backend + starts Vite dev server)
pnpm tauri:dev
For detailed Tauri CLI usage guidelines, see:
- `.devin/rules/51-tauri-cli.md` — Complete command reference and best practicesThe app window opens automatically. You will see a header with the app title, a theme toggle, and a tab bar with three top-level tabs (Dashboard, Config, Dev).
The Dev tab contains 12 feature sections demonstrating the starter's capabilities: Counter, Intent, Platform, Storybook, UI Mock, State, I18n, Errors, IPC Timing, Windows, MCP, and Registry Browser.
Note: If you're using this repository as a template for your own project, click "Use this template" on GitHub to create your own repository before following the setup steps above.
Copy the example environment file and configure as needed:
cp .env.example .envThis repository includes AI agent configuration in .devin/ for Devin/Cascade users. If you don't use AI-assisted development, you can safely ignore or remove the .devin/ directory.
What's included in .devin/:
- AI agent rules and guidelines for consistent code generation
- MCP (Model Context Protocol) server configuration
- Workflow definitions for common development tasks
- Custom CLI scripts for quality checks and development workflows
For AI-assisted development setup, see docs/SETUP.md.
For detailed setup instructions (sccache, cargo-binstall, cargo-nextest), see docs/SETUP.md.
- Desktop: Tauri v2
- Frontend: SolidJS + Vite v8
- Styling: Park UI + Panda CSS
- State: TanStack Store/Intent/Config
- Validation: valibot
- Monorepo: Turbo + pnpm workspaces
- Test: Vitest + cargo test
- AI: MCP Bridge (dev-only)
Includes a fully running cross-platform desktop app with:
- Local-first architecture — Tauri native file system, offline-capable
- AI-assisted development — Code scaffolding, quality checks, documentation
- Local development toolchain — Lint, typecheck, test, duplication, unused-code checks
- Command Registry — Centralized commands with keyboard shortcuts and Ctrl+K palette
- Multi-window support — Sub-window creation and management
- Park UI components — 56 pre-styled recipes
- Type-safe Rust ↔ TS bridge — tauri-specta auto-generated bindings
- Performance optimizations — API call deduplication, debounced inputs, efficient keyboard event handling
@core-starter/desktop— Tauri v2 desktop app@core-starter/ui— Park UI components@core-starter/native— Type-safe Tauri IPC wrappers@core-starter/store— TanStack Store utilities@core-starter/config— App config with valibot validation@core-starter/i18n— Internationalization (ja/en)@core-starter/intent— Intent system with skill manifests@core-starter/registry— Command, Store, and Hook registries@core-starter/result— Result<T, E> error handling types@core-starter/tab-system— Tab management system@core-starter/fonts— Font aggregation package@core-starter/helpers— Development-time utility registry@core-starter/policy— Declarative policy manifest@core-starter/scripts— Build / check / export automation scriptstauri-plugin-window-system-api— TypeScript API for window system
For detailed package descriptions, see docs/ARCHITECTURE.md.
tauri-plugin-store— Persistent key-value storagetauri-plugin-fs— File system accesstauri-plugin-window-state— Window position/size restorationtauri-plugin-shell— Shell command executiontauri-plugin-process— Process managementtauri-plugin-os— OS informationtauri-plugin-single-instance— Single instance enforcementtauri-plugin-dialog— Native dialogstauri-plugin-global-shortcut— Global keyboard shortcutstauri-plugin-window-system— Multi-window creation and managementtauri-plugin-mcp-bridge— MCP bridge for AI agents (dev-only)
For detailed plugin descriptions, see docs/ARCHITECTURE.md.
Scaffold code quickly with Plop generators: pnpm gen:package, pnpm gen:component, pnpm gen:command, pnpm gen:section, pnpm gen:store, pnpm gen:persistent-store, pnpm gen:feature, pnpm gen:capability, pnpm gen:plugin, pnpm gen:hook, pnpm gen:context, pnpm gen:util, and pnpm gen:skill.
For detailed generator descriptions, see docs/CODE_GENERATION.md.
# Core workflow
pnpm install
pnpm tauri:dev
pnpm tauri:build
# Quality checks
pnpm check # All checks
pnpm lint
pnpm typecheck
pnpm test
# Custom tools
pnpm check:pre # Pre-change gate
pnpm ai:review # AI self-review
pnpm intent:load # Load intent skill
# For detailed commands, see docs/OPERATIONS.md- No CI — All quality checks, builds, and tests run locally
- Catalog compliance — All shared deps use
"catalog:"or"workspace:*". Direct version strings are forbidden - Tauri v2 only — Use only official Tauri v2 plugins. No v1 deprecated APIs or old plugin names
For detailed project policies and development guidelines, see .devin/rules/00-core-starter.md.
For troubleshooting guidance, see docs/OPERATIONS.md.
For detailed information on specific topics, see:
- Architecture & Package Roles — docs/ARCHITECTURE.md
- Operations & Development Commands — docs/OPERATIONS.md
- Code Generation — docs/CODE_GENERATION.md
- Project Policies —
.devin/rules/00-core-starter.md - AI Agent Skills — AGENTS.md
- AI Agent Configuration Index —
.devin/README.md - AI Agent Rules —
.devin/rules/00-core-starter.md,.devin/rules/05-devin-cascade-best-practices.md,.devin/rules/10-code-style.md,.devin/rules/11-code-generation.md,.devin/rules/12-workflow-procedures.md,.devin/rules/13-proposal-guidelines.md,.devin/rules/15-ui-styling.md,.devin/rules/15a-ux-best-practices.md,.devin/rules/16-dom-css-best-practices.md,.devin/rules/17-tauri-rust-best-practices.md,.devin/rules/18-api-helper-best-practices.md,.devin/rules/18-ark-ui-integration.md,.devin/rules/18-window-system.md,.devin/rules/19-reusability-composability-utilities.md,.devin/rules/20-architecture.md,.devin/rules/21-wasm-integration.md,.devin/rules/30-operations.md,.devin/rules/40-testing.md,.devin/rules/50-tooling.md,.devin/rules/51-tauri-cli.md,.devin/rules/60-communication.md,.devin/rules/70-planning-guard.md
MIT