Libre and federated alternative to Ultimate Guitar
reword and add to feature list
relicense insignificant files
remove trailing space & relicense


browse  log 



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


REUSE status

suggest_a_better_name, for want of a better name, is a libre, decentralised, and somewhat stripped-down alternative to Ultimate Guitar.

#But … why?

While the core functionality of UG is fantastic, I believe many of the features are completely unnecessary and only serve to clutter the UI. I also dislike the inundation of ads, paywalling of important features such as PDF export, and the implication that every single piece has a video tutorial you could access … if only you were a Pro user.

#Ok, what features will it have?

I think the most basic features necessary for use are…

  • Simple tab formatting with ChordPro syntax
  • PDF export
  • Moderation system
    • Reporting tabs for copyright infringement, inappropriate material, etc.
    • Tab removal
    • Account removal

Nice-to-have features would include

  • Upvotes (no downvotes)
  • Comments
    • Would require addition to moderation system
  • Dark mode
  • Transposition
    • Both in the web UI and in the exported PDF

#You mentioned "decentralisation". Whot?

My plan is to implement some sort of ActivityPub support, allowing users on one instance to discover tabs created by users on another instance and vote/comment on them.

Centralised, libre alternatives to commercial behemoths seldom gain much traction for a variety of reasons, but one of the larger ones is that so many individuals want to run the software on their server, with their domain, and their custom branding. In a centralised model, that means we end up with a bunch of tiny, disparate silos all over the internet. If these tiny silos aren't so disparate and instead belong to a network of silos, all sharing resources and information, it's much easier to grow and become a more viable alternative.

That's the idea anyway.

#Do you have a timeline?


I have little experience writing Go and zero experience with ActivityPub, so it will be a very very long while before this project is usable.


This project requires setting a few pieces of software up before getting started.


reuse is a tool created by the FSFE for easy compliance with the REUSE specification which this project implements. Follow their documentation for the installation procedures.

When using code from another project, make sure the copyright holder(s) are listed somewhere and that the project uses a compatible license. If both conditions are satisfied, run the following command to add that information to the file containing the copied code.

reuse addheader -c "Name <user@example.com" -l SPDX-License-Identifier path/to/file

Running reuse lint will print compliance details regarding the current project. All files should contain copyright and license information.


After installing reuse, grab pre-commit, cd into this repo, and run pre-commit install followed by pre-commit run --all-files. If there are any errors, please correct them then re-run the commands. This ensures that all relevant files within the repository are properly associated with a license and copyright holder prior to actually committing the changes.