Contributing

February 19, 2026 ยท View on GitHub

Contributions are welcome! Feel free to open an issue or submit a pull request.

Development Environment Setup

To set up a development environment for this repository, you can use devbox along with the provided devbox.json configuration file.

  1. Install devbox by following these instructions.

  2. Clone this repository to your local machine.

    git clone https://github.com/indaco/goaster.git
    cd goaster
    
  3. Run devbox install to install all dependencies specified in devbox.json.

  4. Enter the environment with devbox shell --pure.

  5. Start developing, testing, and contributing!

Manual Setup

If you prefer not to use Devbox, ensure you have the following tools installed:

  • golangci-lint: For linting Go code.
  • just: For running project recipes.
  • modernize: Run the modernizer analyzer to simplify code by using modern constructs.

Setting Up Git Hooks

Git hooks are used to enforce code quality and streamline the workflow. Follow these steps to set them up:

Using Devbox

If using devbox, Git hooks are automatically installed when you run devbox shell. No further action is required.

Manual Setup

For users not using devbox, follow the steps below to manually install the Git hooks:

  1. Clone the repository:

    git clone https://github.com/indaco/goaster.git
    cd goaster
    
  2. Install the Git Hooks

    Unix-based systems (Linux, macOS):

    sh .scripts/setup-hooks.sh
    

    Windows systems:

    .scripts\setup-hooks.bat
    

Running Recipes

This project uses just as its command runner.

View all available recipes

just --list

Common recipes

just build           # Build for production with minified asset files
just dev             # Run the dev server with live reload
just pre-build       # Run pre-build tasks
just templ           # Run templ fmt and templ generate commands
just test            # Run all tests and generate coverage report
just test-coverage   # Run go tests and use go tool cover
just test-force      # Clean go tests cache and run all tests