This guide helps new contributors get started with Subtitle Manager.
- Go 1.22 or later
- Node.js 20 for the React web UI
- Docker for optional container builds
- Visual Studio Code
- Dev Containers extension
- Docker Desktop or Docker Engine
The easiest way to get started is using the provided development container:
- Clone the repository
- Open the repository in VS Code
- When prompted, click "Reopen in Container" or run the command palette:
Dev Containers: Reopen in Container - Wait for the container to build and the post-create script to run
- Start developing!
-
The dev container includes:
-
Go 1.24+ with development tools
-
Node.js 20 for React development
-
FFmpeg for subtitle processing
-
SQLite with CGO support enabled
-
Pre-configured VS Code extensions
-
All necessary build tools
See .devcontainer/README.md for detailed documentation.
- Clone the repository and install dependencies: ```bash git clone https://github.com/jdfalk/subtitle-manager.git cd subtitle-manager go mod download npm --prefix webui install ```
- Build the web assets and compile the binary: ```bash go generate ./webui go build ```
- Run tests to verify your environment: ```bash make test-all ```
- Follow the commit message guidelines in
AGENTS.md. - Document new functions and packages with Go comments.
- Update relevant design documents when changing architecture.
- Use the issue update scripts to reference your work.
- Branch from
mainand keep your branch up to date using the rebase command inAGENTS.md. - Run
go fmtandgoimportsbefore committing, or use the provided pre-commit hook: ```bash ./scripts/install-pre-commit-hooks.sh ``` - Submit pull requests with concise descriptions and link related issues.