Skip to content

Development

Want to contribute or build DownKingo yourself? Here’s everything you need to get started.

Before you begin, ensure you have the following installed:

Terminal window
go install github.com/wailsapp/wails/v2/cmd/wails@latest

Verify the installation:

Terminal window
wails doctor

Terminal window
git clone https://github.com/down-kingo/downkingo.git
cd downkingo
Terminal window
cd frontend && bun install && cd ..
Terminal window
wails dev

This will start the app in development mode with hot-reload enabled.


downkingo/
├── internal/ # Backend logic (Go)
│ ├── auth/ # OAuth2 Device Flow
│ ├── downloader/ # Queue manager and yt-dlp wrapper
│ ├── roadmap/ # "Build in Public" integration
│ └── storage/ # SQLite layer
├── frontend/ # UI (React + Tailwind)
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page views
│ │ ├── hooks/ # Custom hooks
│ │ └── i18n/ # Translations
│ └── package.json
└── build/ # Build resources

Terminal window
wails build
Terminal window
# Windows
wails build -platform windows/amd64
# macOS (Universal Binary)
wails build -platform darwin/universal
# Linux
wails build -platform linux/amd64

Wails includes hot-reload by default in dev mode. Frontend changes reload instantly, and Go changes trigger a rebuild.

  • Frontend: Use browser DevTools (F12 in the app window)
  • Backend: Use standard Go debugging tools or add log statements

Create a .env file in the root for local configuration:

GITHUB_CLIENT_ID=your_client_id
DOWNKINGO_DEV_MODE=true