A handy collection of developer utilities built with React, TypeScript and assisted by π€. Available as a web app and a native desktop app (macOS, Windows, Linux) powered by Tauri.
- Node.js (v22)
- npm
- Rust (only for desktop development)
# Development npm run dev # Start web development server (port 8080) npm run preview # Preview production build locally # Building npm run build # Production web build npm run build:dev # Development build # Tests npm run test # Run Playwright browser tests (console errors on util pages) # CI build + tests npm run build:ci # Build + Playwright tests (used by GitHub Actions) # Code Quality npm run lint # Run ESLint npm run check # Type check and build validation
The web app will be available at http://localhost:8080.
- Rust β install via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- macOS: Xcode Command Line Tools (
xcode-select --install) - Windows: Microsoft C++ Build Tools + WebView2
- Linux:
build-essential,libwebkit2gtk-4.1-dev,libssl-dev,libayatana-appindicator3-dev,librsvg2-dev
npm run tauri:dev # Launch desktop app with hot-reload npm run tauri:build # Build production desktop installer npx tauri info # Show environment diagnostics npx tauri icon ./public/logo.png # Regenerate app icons
Note: The first
tauri:devrun takes 2β5 minutes while Cargo downloads and compiles Rust dependencies. Subsequent runs are fast (~5s).
npm run tauri:build produces platform-specific installers in src-tauri/target/release/bundle/:
| Platform | Formats |
|---|---|
| macOS | .dmg, .app |
| Windows | .msi, .exe (NSIS) |
| Linux | .deb, .AppImage |
The desktop app reuses 100% of the web app's business logic and utility components. Platform detection (isTauri()) switches between:
- Web β
BrowserRouter+ header/footer layout - Desktop β
HashRouter+ native sidebar layout with draggable titlebar
For the best development experience, we recommend using Visual Studio Code with the following extensions:
- TypeScript and JavaScript Language Features (built-in)
- ESLint - JavaScript/TypeScript linting
- Prettier - Code formatting
- Tailwind CSS IntelliSense - CSS class autocomplete
- Auto Rename Tag - HTML/JSX tag synchronization
src/
βββ components/
β βββ utils/ # Individual utility components
β βββ ui/ # Reusable UI components (shadcn/ui)
β βββ Layout.tsx # Web layout (header + footer)
β βββ DesktopLayout.tsx # Desktop layout (sidebar + titlebar)
βββ hooks/
β βββ use-tauri.ts # Tauri native API hooks (clipboard, dialogs, filesystem)
β βββ ...
βββ lib/
β βββ platform.ts # Platform detection (isTauri, getPlatform, getModifierKey)
β βββ ...
βββ pages/ # Page components (shared between web & desktop)
βββ utils/ # Helper functions
src-tauri/
βββ Cargo.toml # Rust dependencies
βββ tauri.conf.json # Tauri window & bundle configuration
βββ capabilities/ # Security permissions for Tauri plugins
βββ icons/ # Auto-generated app icons (all platforms)
βββ src/
βββ main.rs # Desktop entry point
βββ lib.rs # Tauri plugins, commands, and window setup
This app is deployed and hosted on Vercel via Git integration.
CI Build + Tests
- GitHub Actions runs a build + Playwright tests on every push and pull request.
- The workflow must pass before merging to
main.
Deployments
- Vercel creates Preview Deployments for non-main branches and pull requests.
- Vercel creates Production Deployments from
main.
This project is open source and available under the MIT License.
- Inspired by various developer utils collections
- Thanks to the open source community
Happy coding/vibe-coding! π