Robert Fridzema

OxideDock - Rust + Vue 3 + Tauri v2 desktop starter

by
OxideDock is a ship-ready Tauri v2 starter with Vue 3, TypeScript, Pinia, Tailwind CSS v4, Vitest, Playwright, ESLint, Clippy, cargo-audit, pre-commit hooks, and GitHub Actions CI/CD already configured to work together. Tag a release and it builds signed binaries for Linux, macOS (Intel + Apple Silicon), and Windows automatically. Includes make bootstrap to rename the entire project in one command.

Add a comment

Replies

Best
Robert Fridzema
Hey everyone! I'm Robert, and I built OxideDock because I got tired of the same first week on every (desktop) project i wanted to start building on. I'd start a new Tauri app, get excited about the idea, then spend days configuring ESLint, Clippy, Vitest, Playwright, GitHub Actions, and a cross-platform release pipeline. By the time everything worked together, I'd lost interest in the actual app. This happened numerous times before I decided to solve it once and open-source the result. OxideDock is not a framework or a library. It's a starter — Tauri v2, Vue 3, TypeScript, Tailwind v4. With all the infrastructure already wired up. A few decisions I made on purpose: Bun instead of npm (fast installs matter when you're iterating), Oxlint alongside ESLint (catches things ESLint misses, and it's quick), pedantic Clippy by default (I'd rather fix a warning now than a bug later). No UI component library included just Tailwind, that choice would too personal to make for you. - 100% Rust line coverage enforced in CI (the pipeline fails if it drops) - Unit tests (Vitest) and e2e tests (Playwright) preconfigured - Rust tests run on Linux, macOS, and Windows in parallel - Four linters working together: ESLint, Oxlint, Clippy (pedantic), and Prettier - Daily security audits on both Rust and JS dependencies via cargo-audit and bun audit - Automated releases with release-please — push a conventional commit, get .dmg, .msi, .deb, and .AppImage binaries built across all platforms - Pre-commit hooks via Lefthook so bad code doesn't reach the repo - make bootstrap renames the entire project to your app name in one command I'd love to hear what you think is missing, what you'd add, or what you'd rip out. Happy to answer any questions about the stack or the tradeoffs.