About this project

Gopad is described by its authors as a simple web interface for writing and updating markdown-based documents, comparable to Etherpad but focused on markdown writing and formatting. This repository, gopad-api, holds the server side of the project, implemented in Go, while the user interface is built with VueJS. The maintainers explicitly note that the project is in active development, that there is no stable release yet, and that breaking changes should be expected before the first real release. Installation and packaging. Prebuilt binaries are offered through GitHub releases and a dedicated download site. The project also prepares DEB and RPM package repositories hosted by Cloudsmith, container images published on GHCR, Docker Hub and Quay, a Homebrew formula for macOS users, and documentation at gopad.eu. Cloudsmith is credited as the hosting provider for the package repositories. Build process. Tool versions are managed with mise; inside the repository you run mise trust and mise install to activate it and install everything defined in mise.toml. The build steps themselves are part of a go-task taskfile, so the documented sequence is to clone the repository, then run task fe:install fe:build be:build, and finally launch the resulting binary. All static assets are embedded into the binary, so no additional webserver is needed beyond starting the executable. Development workflow. DevContainer configurations are provided, so contributors who use them can start without installing mise on their own system. Active development uses two watch tasks run in separate terminal tabs or windows: task watch:server and task watch:frontend. The backend development server is documented as running on localhost:8080 and the frontend on localhost:5173, with hot reloading so services restart or reload automatically on code changes. Contributing and releases. The project follows conventional commits so changelogs can be generated per release, and asks that new functionality or fixes be integrated through pull requests. Release numbering follows semantic versioning to signal whether a version fixes bugs, adds features or introduces breaking changes. After installing tools via mise, contributors set up pre-commit hooks with prek (managed by mise) for the pre-commit and commit-msg hook types. Once a pull request is merged and builds succeed, a new release is created automatically at least once a week. Security reports should first be sent to gopad@webhippie.de. The project is licensed under Apache-2.0, with copyright attributed to Thomas Boerger starting in 2018.