Fencing conference management software
be230c06 — Ethan Madison a month ago
README: add config.json updates
ae986840 — Ethan Madison a month ago
seeding: Display total and current games played
47206aa8 — Ethan Madison a month ago
models/seeding: Use MinimumBouts from config


browse  log 



You can also use your local clone with git send-email.


bouts.app is a fencing conference management web-app made to help fencing conferences share competition results, track performance automatically, and save administrators time! You don't need to spend hours collating results from each team—let bouts.app take care of it and skip the headache.

bouts.app helps manage the following aspects of your conference:

  • Participants, from schools to fencers
  • Competitions, with support for match entry
  • Ranking fencers and teams for seedings and championships
  • Win-loss records, for schools, squads, and fencers
  • Centralizing management of records

Try it out at demo.bouts.app. Note that you will need an admin account to make edits. If interested, please email us to schedule a meeting.


bouts.app is intended for collegiate and high-school fencing conferences which have NCAA-style events. That is, matches consist of two teams with three fencers (plus substitutes) and nine bouts to five touches. It may work in conferences with similar formats as well.


For help using bouts.app, please see our user manual. If you do not find the help you need there, you can email us for personal assistance.


  1. Clone the repository: git clone git@git.sr.ht:~ethanmad/bouts.app.
  2. Make your changes.
  3. go build and check your changes on localhost:3000.
  4. Prepare and send a patchset.


To use the app with custom configurations or in development, create a config.json file with the following format.

  "domain" : "localhost"
  "port": 3000,
  "env": "dev",
  "pepper": "secret-random-string",
  "hmac_key": "secret-hmac-key",
  "database": {
    "host": "localhost",
    "port": 5432,
    "user": "your-username",
    "password": "your-password",
    "name": "boutsapp_dev"
  "mailgun": {
      "from" : "support@bouts.app",
      "api_key": "secret-api-key",
      "domain": "mg.bouts.app"
  "season_start_date":  "2020-08-01T00:00:00.00Z",
  "minimum_bouts": 15

Change the values as needed. For example, a production environment should set env to "prod", set pepper and hmac_key to random strings, and use a different database name with a real username and password.

See also:


bouts.app is licensed under the GNU AGPL v3. See LICENSE for details.