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 <amolith@secluded.site>
SPDX-License-Identifier: CC0-1.0
-->
4 months ago
# suggest_a_better_name
[![REUSE status](https://api.reuse.software/badge/git.sr.ht/~amolith/suggest_a_better_name)](https://api.reuse.software/info/git.sr.ht/~amolith/suggest_a_better_name)
4 months ago
`suggest_a_better_name`, for want of a better name, is a libre,
decentralised, and somewhat stripped-down alternative to [Ultimate
Guitar](https://www.ultimate-guitar.com/).
4 months ago
# But … why?
4 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.
4 months ago
# Ok, what features will it have?
4 months ago
I think the most basic features necessary for use are…
- Simple tab formatting with
4 months ago
[ChordPro](https://www.chordpro.org/chordpro/index.html) 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
4 months ago
4 months ago
# You mentioned "decentralisation". Whot?
4 months ago
My plan is to implement some sort of
[ActivityPub](https://activitypub.rocks/) 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.
4 months ago
# Do you have a timeline?
4 months ago
Nope!
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
started.
## REUSE
[`reuse`](https://git.fsfe.org/reuse/tool) is a tool created by the FSFE
for easy compliance with the [REUSE
specification](https://reuse.software/) 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 <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.
## pre-commit
After installing `reuse`, grab [`pre-commit`](https://pre-commit.com/),
`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.