{"id":50939686,"url":"https://github.com/mautops/tauri2-template","last_synced_at":"2026-06-17T12:32:54.211Z","repository":{"id":361184766,"uuid":"1253440060","full_name":"mautops/tauri2-template","owner":"mautops","description":"tauri2 template with shadcn ui and some mvp feathers","archived":false,"fork":false,"pushed_at":"2026-05-29T15:10:22.000Z","size":5094,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-29T15:11:20.603Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mautops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-29T13:14:21.000Z","updated_at":"2026-05-29T15:10:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mautops/tauri2-template","commit_stats":null,"previous_names":["mautops/tauri2-template"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mautops/tauri2-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mautops%2Ftauri2-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mautops%2Ftauri2-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mautops%2Ftauri2-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mautops%2Ftauri2-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mautops","download_url":"https://codeload.github.com/mautops/tauri2-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mautops%2Ftauri2-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34449277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-17T12:32:54.102Z","updated_at":"2026-06-17T12:32:54.193Z","avatar_url":"https://github.com/mautops.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tauri React Template\n\nA \"batteries-included\" template for building production-ready desktop applications with **Tauri v2**, **React**, and **TypeScript**. Designed with opinionated patterns that help both human developers and AI coding agents build well-architected apps from the start.\n\n## Why This Template?\n\nMost Tauri starters give you a blank canvas. This template gives you a **working application** with patterns already established:\n\n- **Type-safe Rust-TypeScript bridge** via tauri-specta.\n- **Performance patterns enforced by tooling** - all the usual linting plus ast-grep for common anti-patterns\n- **Multi-window architecture** already working (quick pane with global shortcut as a demo)\n- **Cross-platform ready** with platform-specific title bars, window controls, and native menu integration\n- **i18n built-in** with RTL support\n\n## Stack\n\n| Layer    | Technologies                                    |\n| -------- | ----------------------------------------------- |\n| Frontend | React 19, TypeScript, Vite 7                    |\n| UI       | shadcn/ui v4, Tailwind CSS v4, Lucide React     |\n| State    | Zustand v5, TanStack Query v5                   |\n| Backend  | Tauri v2, Rust                                  |\n| Testing  | Vitest v4, Testing Library                      |\n| Quality  | ESLint, Prettier, ast-grep, knip, jscpd, clippy |\n\n## What's Already Built\n\nThe template includes a working application with these features implemented:\n\n### Core Features\n\n- **Command Palette** (`Cmd+K`) - Searchable command launcher with keyboard navigation\n- **Quick Pane** - Global shortcut (`Cmd+Shift+.`) opens a floating window from any app, even fullscreen. Uses native NSPanel on macOS for proper fullscreen overlay behavior.\n- **Keyboard Shortcuts** - Platform-aware shortcuts with automatic menu integration\n- **Native Menus** - File, Edit, View menus built from JavaScript with full i18n support\n- **Preferences System** - Settings dialog with Rust-side persistence, React hooks, and type-safe access throughout\n- **Collapsible Sidebars** - Empty left and right sidebars with state persistence via resizable panels\n- **Theme System** - Light/dark mode with system preference detection, synced across windows\n- **Notifications** - Toast notifications for in-app feedback, plus native system notifications\n- **Auto-updates** - Tauri updater plugin configured with GitHub Releases integration and update checking on launch\n- **Logging** - Structured logging utilities for both Rust and TypeScript with consistent formatting\n- **Crash Recovery** - Emergency data persistence for recovering unsaved work after unexpected exits\n\n### Architecture Patterns\n\n- **Three-layer state management** - Clear decision tree: `useState` (component) → `Zustand` (global UI) → `TanStack Query` (persistent data \"not owned by the app)\n- **Event-driven Rust-React bridge** - Menus, shortcuts, and command palette all route through the same command system\n- **React Compiler** - Automatic memoization means no manual `useMemo`/`useCallback` needed\n\n### Cross-Platform\n\n| Platform | Title Bar            | Window Controls | Bundle Format |\n| -------- | -------------------- | --------------- | ------------- |\n| macOS    | Custom with vibrancy | Traffic lights  | `.dmg`        |\n| Windows  | Custom               | Right side      | `.msi`        |\n| Linux    | Native + toolbar     | Native          | `.AppImage`   |\n\nPlatform detection utilities, platform-specific UI strings (\"Reveal in Finder\" vs \"Show in Explorer\"), and separate Tauri configs per platform are all set up.\n\n### Developer Experience\n\n- **Type-safe Tauri commands** - tauri-specta generates TypeScript bindings from Rust, with full autocomplete and compile-time checking\n- **Static analysis** - ESLint, Prettier, ast-grep (architecture enforcement), knip (unused code), jscpd (duplication)\n- **Single quality gate** - `npm run check:all` runs TypeScript, ESLint, Prettier, ast-grep, clippy, and all tests\n- **Testing patterns** - Vitest setup with Tauri command mocking\n\n## Tauri Plugins Included\n\n| Plugin            | Purpose                          |\n| ----------------- | -------------------------------- |\n| single-instance   | Prevent multiple app instances   |\n| window-state      | Remember window position/size    |\n| fs                | File system access               |\n| dialog            | Native open/save dialogs         |\n| notification      | System notifications             |\n| clipboard-manager | Clipboard access                 |\n| global-shortcut   | System-wide keyboard shortcuts   |\n| updater           | In-app auto-updates              |\n| opener            | Open URLs/files with default app |\n| tauri-nspanel     | macOS floating panel behavior    |\n\n## AI-Ready Development\n\nThis template is designed to work well with AI coding agents like Claude Code:\n\n- **Comprehensive documentation** in `docs/developer/` covering all patterns. Human readable but really designed to explain the \"why\" of certain patterns to AI agents. Not slop.\n- **Claude Code integration** - Custom commands (`/check`, `/cleanup`) and a couple of specialized agents\n- **Sensible file organization** - React code in `src/` with clear separation (components, hooks, stores, services), Rust in `src-tauri/src/` with modular command organization. Predictable structure for both humans and AI.\n\n## Getting Started\n\nSee **[Using This Template](docs/USING_THIS_TEMPLATE.md)** for setup instructions and workflow guidance.\n\n### Quick Start\n\n```bash\n# Prerequisites: Node.js 18+, Rust (latest stable)\n# See https://tauri.app/start/prerequisites/ for platform-specific deps\n\ngit clone \u003cyour-repo\u003e\ncd your-app\nnpm install\nnpm run dev\n```\n\n## Documentation\n\n- **[Developer Docs](docs/developer/)** - Architecture, patterns, and detailed guides\n- **[User Guide](docs/userguide/)** - End-user documentation template\n- **[Using This Template](docs/USING_THIS_TEMPLATE.md)** - Setup and workflow guide\n\n## License\n\n[MIT](LICENSE.md)\n\n---\n\nBuilt with [Tauri](https://tauri.app) | [shadcn/ui](https://ui.shadcn.com) | [React](https://react.dev)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmautops%2Ftauri2-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmautops%2Ftauri2-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmautops%2Ftauri2-template/lists"}