A Wails desktop application built with Go and React.
- Nix with flakes enabled
- Git
The project uses Nix flakes to manage the development environment, including Wails CLI, Go, and Node.js.
-
Install frontend dependencies:
make install
-
Run the development server:
make dev
The Makefile automatically uses the Nix environment, so you can run make dev directly without entering nix develop manually.
When you run make dev, Wails will start:
- A Vite development server with hot reload for frontend changes
- A dev server at http://localhost:34115 where you can call your Go methods from the browser devtools
Build for production:
make buildBuild for specific platforms:
make build-darwin # macOS universal binary
make build-windows # Windows amd64
make build-linux # Linux amd64make clean- Clean build artifactsmake test- Run Go testsmake lint- Run lintersmake format- Format codemake help- Show all available commands
- Backend: Go with Wails
- Frontend: React + TypeScript + Vite
- Build Tool: Wails CLI
- Package Manager: npm (frontend), Go modules (backend)
The flake.nix provides:
- Wails CLI
- Go toolchain
- Node.js 20
- Build tools (pkg-config)
- macOS frameworks (when on Darwin)
The environment is automatically activated when running make commands outside of a Nix shell.
The application uses a custom calendar-themed icon:
- Source:
logo.svg- Vector logo (editable) - macOS:
build/darwin/iconfile.icns- macOS app icon - General:
build/appicon.png- PNG icon (512x512)
The icon features:
- Indigo blue background with white calendar grid
- Highlighted date indicator (15th)
- Green checkmark for completed tasks
- Modern, clean design optimized for macOS, Windows, and Linux
Project settings can be configured in wails.json. More information: https://wails.io/docs/reference/project-config