Libre and federated alternative to Ultimate Guitar
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
3.5 KiB

SPDX-FileCopyrightText: 2021 Amolith <>
SPDX-License-Identifier: CC0-1.0
8 months ago
# suggest_a_better_name
[![REUSE status](](
8 months ago
`suggest_a_better_name`, for want of a better name, is a libre,
decentralised, and somewhat stripped-down alternative to [Ultimate
8 months ago
# But … why?
8 months ago
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.
8 months ago
# Ok, what features will it have?
8 months ago
I think the most basic features necessary for use are…
- Simple tab formatting with
8 months ago
[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
8 months ago
8 months ago
# You mentioned "decentralisation". Whot?
8 months ago
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.
8 months ago
# Do you have a timeline?
8 months ago
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.
# Contributing
This project requires setting a few pieces of software up before getting
[`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.
``` text
reuse addheader -c "Name <" -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.
## pre-commit
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.