[docs] Update readme alpha -> beta, add more feature examples (#3333)
67
README.md
|
@ -11,7 +11,7 @@ With GoToSocial, you can keep in touch with your friends, post, read, and share
|
||||||
<img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/sloth.webp" width="300"/>
|
<img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/sloth.webp" width="300"/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
**GoToSocial is still [ALPHA SOFTWARE](https://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha)**. It is already deployable and useable, and it federates cleanly with many other Fediverse servers (not yet all). However, many things are not yet implemented, and there are plenty of bugs! We foresee entering beta around the beginning of 2024.
|
**GoToSocial is still [BETA SOFTWARE](https://en.wikipedia.org/wiki/Software_release_life_cycle#Beta)**. It is already deployable and useable, and it federates cleanly with many other Fediverse servers (not yet all). However, many things are not yet implemented, and there are plenty of bugs! We left alpha stage around September/October 2024, and we intend to exit beta some time around 2026.
|
||||||
|
|
||||||
Documentation is at [docs.gotosocial.org](https://docs.gotosocial.org). You can skip straight to the API documentation [here](https://docs.gotosocial.org/en/latest/api/swagger/).
|
Documentation is at [docs.gotosocial.org](https://docs.gotosocial.org). You can skip straight to the API documentation [here](https://docs.gotosocial.org/en/latest/api/swagger/).
|
||||||
|
|
||||||
|
@ -29,7 +29,11 @@ Here's a screenshot of the instance landing page!
|
||||||
- [History and Status](#history-and-status)
|
- [History and Status](#history-and-status)
|
||||||
- [Features](#features)
|
- [Features](#features)
|
||||||
- [Mastodon API compatibility](#mastodon-api-compatibility)
|
- [Mastodon API compatibility](#mastodon-api-compatibility)
|
||||||
- [Granular post settings](#granular-post-settings)
|
- [Granular post visibility settings](#granular-post-visibility-settings)
|
||||||
|
- [Reply controls](#reply-controls)
|
||||||
|
- [Local-only posting](#local-only-posting)
|
||||||
|
- [RSS feed](#rss-feed)
|
||||||
|
- [Rich text formatting](#rich-text-formatting)
|
||||||
- [Customizability](#customizability)
|
- [Customizability](#customizability)
|
||||||
- [Easy to run](#easy-to-run)
|
- [Easy to run](#easy-to-run)
|
||||||
- [Safety + security features](#safety--security-features)
|
- [Safety + security features](#safety--security-features)
|
||||||
|
@ -90,7 +94,9 @@ This project sprang up in February/March 2021 out of a dissatisfaction with the
|
||||||
|
|
||||||
It began as a solo project, and then picked up steam as more developers became interested and jumped on.
|
It began as a solo project, and then picked up steam as more developers became interested and jumped on.
|
||||||
|
|
||||||
For a detailed view on what's implemented and what's not, and progress made towards [beta release](https://en.wikipedia.org/wiki/Software_release_life_cycle#Beta), please see [the roadmap document](https://github.com/superseriousbusiness/gotosocial/blob/main/ROADMAP.md).
|
We made our first Alpha release in November 2021. We left Alpha and entered Beta in September/October 2024.
|
||||||
|
|
||||||
|
For a detailed view on what's implemented and what's not, and progress made towards [stable release](https://en.wikipedia.org/wiki/Software_release_life_cycle#Stable_release), please see [the roadmap document](https://github.com/superseriousbusiness/gotosocial/blob/main/ROADMAP.md).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -100,44 +106,73 @@ For a detailed view on what's implemented and what's not, and progress made towa
|
||||||
|
|
||||||
The Mastodon API has become the de facto standard for client communication with federated servers, so GoToSocial has implemented and extended the API with custom functionality.
|
The Mastodon API has become the de facto standard for client communication with federated servers, so GoToSocial has implemented and extended the API with custom functionality.
|
||||||
|
|
||||||
Though most apps that implement the Mastodon API should work, GoToSocial works reliably with beautiful apps like:
|
Though most apps that implement the Mastodon API should work, GoToSocial is tested and works reliably with beautiful apps like:
|
||||||
|
|
||||||
* [Tusky](https://tusky.app/) for Android
|
* [Tusky](https://tusky.app/) for Android
|
||||||
* [Semaphore](https://semaphore.social/) in the browser
|
* [Semaphore](https://semaphore.social/) in the browser
|
||||||
* [Feditext](https://github.com/feditext/feditext) (beta) on iOS, iPadOS and macOS
|
* [Feditext](https://github.com/feditext/feditext) (beta) on iOS, iPadOS and macOS
|
||||||
|
|
||||||
If you've used Mastodon with any of these apps before, you'll find using GoToSocial a breeze.
|
If you've used Mastodon with a third-party app before, you'll find using GoToSocial a breeze.
|
||||||
|
|
||||||
### Granular post settings
|
### Granular post visibility settings
|
||||||
|
|
||||||
It's important that when you post something, you can choose who sees it.
|
It's important that when you post something, you can choose who sees it.
|
||||||
|
|
||||||
GoToSocial offers public/unlisted/friends-only/mutuals-only/and direct posts (slide in DMs! -- with consent).
|
GoToSocial offers public, unlisted/unlocked, followers-only, and direct posts (slide in DMs! -- with consent).
|
||||||
|
|
||||||
It also allows you to customize how people interact with your posts:
|
### Reply controls
|
||||||
|
|
||||||
- Local-only posts.
|
GoToSocial lets you choose who can reply to your posts, via [interaction policies](https://docs.gotosocial.org/en/latest/user_guide/settings/#default-interaction-policies). You can choose to let anyone reply to your posts, let only your friends reply, and more.
|
||||||
- Rebloggable/boostable toggle.
|
|
||||||
- 'Likeable' toggle.
|
![interaction policies settings](https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/user-settings-interaction-policy-1.png)
|
||||||
- 'Replyable' toggle.
|
|
||||||
|
### Local-only posting
|
||||||
|
|
||||||
|
Sometimes you only want to talk to people you share an instance with. GoToSocial supports this via local-only posting, which ensures that your post stays on your instance only. (Local-only posting is currently dependent on client support.)
|
||||||
|
|
||||||
|
### RSS feed
|
||||||
|
|
||||||
|
GoToSocial lets you opt-in to exposing your profile as an RSS feed, so that people can subscribe to your public feed without missing a post.
|
||||||
|
|
||||||
|
### Rich text formatting
|
||||||
|
|
||||||
|
With GoToSocial, you can write posts using the popular, easy-to-use Markdown markup language, which lets you produce rich HTML posts with support for blockquotes, syntax-highlighted code blocks, lists, inline links, and more.
|
||||||
|
|
||||||
|
![markdown-formatted post](https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/markdown-post.png)
|
||||||
|
|
||||||
### Customizability
|
### Customizability
|
||||||
|
|
||||||
Users can [choose from a variety of fun themes](https://docs.gotosocial.org/en/latest/user_guide/settings/#select-theme) for their profile, or even write their own [custom CSS](https://docs.gotosocial.org/en/latest/user_guide/settings/#custom-css).
|
Users can [choose from a variety of fun themes](https://docs.gotosocial.org/en/latest/user_guide/settings/#select-theme) for their profile, or even write their own [custom CSS](https://docs.gotosocial.org/en/latest/user_guide/settings/#custom-css).
|
||||||
|
|
||||||
Plenty of [config options](https://github.com/superseriousbusiness/gotosocial/blob/main/example/config.yaml) for admins to play around with too.
|
<details>
|
||||||
|
<summary>Show theme examples</summary>
|
||||||
|
|
||||||
|
| Theme name | Screenshot |
|
||||||
|
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| Blurple dark | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-blurple-dark.png" width="500" /> |
|
||||||
|
| Blurple light | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-blurple-light.png" width="500" /> |
|
||||||
|
| Brutalist light | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-brutalist-light.png" width="500" /> |
|
||||||
|
| Brutalist dark | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-brutalist-dark.png" width="500" /> |
|
||||||
|
| Ecks pee | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-ecks-pee.png" width="500" /> |
|
||||||
|
| Midnight trip | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-midnight-trip.png" width="500" /> |
|
||||||
|
| Soft | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-soft.png" width="500" /> |
|
||||||
|
| Solarized dark | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-solarized-dark.png" width="500" /> |
|
||||||
|
| Solarized light | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-solarized-light.png" width="500" /> |
|
||||||
|
| Sunset | <img src="https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/docs/assets/theme-sunset.png" width="500" /> |
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
### Easy to run
|
### Easy to run
|
||||||
|
|
||||||
No external dependencies apart from a database (or just use SQLite!). Simply download the binary + assets (or Docker container), and run.
|
No external dependencies apart from a database (or just use SQLite!). Simply download the binary + assets (or Docker container), and run.
|
||||||
|
|
||||||
GoToSocial uses only about 150-250MiB of RAM, so it plays nice with single-board computers, old laptops and tiny $5/month VPSes.
|
GoToSocial uses only about 200-300MiB of RAM, and requires very little CPU power, so it plays nice with single-board computers, old laptops and tiny $5/month VPSes.
|
||||||
|
|
||||||
### Safety + security features
|
### Safety + security features
|
||||||
|
|
||||||
- Built-in, automatic support for secure HTTPS with [Let's Encrypt](https://letsencrypt.org/).
|
- Built-in, automatic support for secure HTTPS with [Let's Encrypt](https://letsencrypt.org/).
|
||||||
- Strict privacy enforcement for posts and strict blocking logic.
|
- Strict privacy enforcement for posts and strict blocking logic.
|
||||||
- Import and export allow lists and deny lists. Subscribe to community-created block lists (think Ad blocker, but for federation!).
|
- Import and export allow lists and deny lists. Subscribe to community-created block lists (think Ad blocker, but for federation!) (feature still in progress).
|
||||||
- HTTP signature authentication: GoToSocial requires [HTTP Signatures](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-12) when sending and receiving messages, to ensure that your messages can't be tampered with and your identity can't be forged.
|
- HTTP signature authentication: GoToSocial requires [HTTP Signatures](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-12) when sending and receiving messages, to ensure that your messages can't be tampered with and your identity can't be forged.
|
||||||
|
|
||||||
### Various federation modes
|
### Various federation modes
|
||||||
|
@ -166,7 +201,7 @@ On top of this API, web developers are encouraged to build any front-end impleme
|
||||||
|
|
||||||
## Known Issues
|
## Known Issues
|
||||||
|
|
||||||
Since GoToSocial is still in alpha, there are plenty of bugs. We use [GitHub issues](https://github.com/superseriousbusiness/gotosocial/issues?q=is%3Aissue+is%3Aopen+label%3Abug) to track these.
|
Since GoToSocial is still in beta, there are plenty of bugs. We use [GitHub issues](https://github.com/superseriousbusiness/gotosocial/issues?q=is%3Aissue+is%3Aopen+label%3Abug) to track these.
|
||||||
|
|
||||||
Since every ActivityPub server implementation has a slightly different interpretation of the protocol, some servers don't quite federate properly with GoToSocial yet. We're tracking these issues [in this project](https://github.com/superseriousbusiness/gotosocial/projects/4). Eventually, we want to make sure that any implementation that can federate nicely with Mastodon should also be able to federate with GoToSocial.
|
Since every ActivityPub server implementation has a slightly different interpretation of the protocol, some servers don't quite federate properly with GoToSocial yet. We're tracking these issues [in this project](https://github.com/superseriousbusiness/gotosocial/projects/4). Eventually, we want to make sure that any implementation that can federate nicely with Mastodon should also be able to federate with GoToSocial.
|
||||||
|
|
||||||
|
|
15
ROADMAP.md
|
@ -1,10 +1,10 @@
|
||||||
# Roadmap to Beta <!-- omit in toc -->
|
# Roadmap to Beta <!-- omit in toc -->
|
||||||
|
|
||||||
This document contains the roadmap for GoToSocial to be considered eligible for its first [beta release](https://en.wikipedia.org/wiki/Software_release_life_cycle#Beta).
|
This document contains the roadmap for GoToSocial to be considered eligible for its first proper [stable release](https://en.wikipedia.org/wiki/Software_release_life_cycle#Stable_release).
|
||||||
|
|
||||||
All the info contained in this document is best-guess only. It's useful to have a rough timeline we can direct people to, but things will undoubtedly change along the way; don't hold us to anything in this doc!
|
All the info contained in this document is best-guess only. It's useful to have a rough timeline we can direct people to, but things will undoubtedly change along the way; don't hold us to anything in this doc!
|
||||||
|
|
||||||
Thank you to [NLnet](https://nlnet.nl) for helping to fund the alpha phase of GoToSocial development and get us moving towards beta!
|
Thank you to [NLnet](https://nlnet.nl) for helping to fund the alpha and beta phases of GoToSocial development!
|
||||||
|
|
||||||
Big thank you to all of our [Open Collective](https://opencollective.com/gotosocial) and [Liberapay](https://liberapay.com/gotosocial) contributors, who've helped us keep the lights on! 💕
|
Big thank you to all of our [Open Collective](https://opencollective.com/gotosocial) and [Liberapay](https://liberapay.com/gotosocial) contributors, who've helped us keep the lights on! 💕
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ Big thank you to all of our [Open Collective](https://opencollective.com/gotosoc
|
||||||
- [Early 2024](#early-2024)
|
- [Early 2024](#early-2024)
|
||||||
- [BETA milestone](#beta-milestone)
|
- [BETA milestone](#beta-milestone)
|
||||||
- [Remainder 2024 - early 2025](#remainder-2024---early-2025)
|
- [Remainder 2024 - early 2025](#remainder-2024---early-2025)
|
||||||
|
- [On the way out of BETA to STABLE RELEASE](#on-the-way-out-of-beta-to-stable-release)
|
||||||
- [Wishlist](#wishlist)
|
- [Wishlist](#wishlist)
|
||||||
|
|
||||||
## Beta Aims
|
## Beta Aims
|
||||||
|
@ -61,7 +62,7 @@ What follows is a rough timeline of features that will be implemented on the roa
|
||||||
|
|
||||||
### BETA milestone
|
### BETA milestone
|
||||||
|
|
||||||
Completion of all above features indicates that we are now in the BETA phase of GoToSocial. We foresee this happening around Feb/March 2024.
|
Completion of all above features indicates that we are now in the BETA phase of GoToSocial. We foresee this happening around Feb/March 2024. EDIT: It ended up happening in September/October 2024, whoops!
|
||||||
|
|
||||||
### Remainder 2024 - early 2025
|
### Remainder 2024 - early 2025
|
||||||
|
|
||||||
|
@ -69,9 +70,9 @@ These are provided in no specific order.
|
||||||
|
|
||||||
- [x] **Filters v2** -- implement v2 of the filters API.
|
- [x] **Filters v2** -- implement v2 of the filters API.
|
||||||
- [x] **Mute accounts** -- mute accounts to prevent their posts showing up in your home timeline (optional: for limited period of time).
|
- [x] **Mute accounts** -- mute accounts to prevent their posts showing up in your home timeline (optional: for limited period of time).
|
||||||
- [ ] **Non-replyable posts** -- design a non-replyable post path for GoToSocial based on https://github.com/mastodon/mastodon/issues/14762#issuecomment-1196889788; allow users to create non-replyable posts.
|
- [x] **Non-replyable posts** -- design a non-replyable post path for GoToSocial based on https://github.com/mastodon/mastodon/issues/14762#issuecomment-1196889788; allow users to create non-replyable posts.
|
||||||
- [ ] **Block + allow list subscriptions** -- allow instance admins to subscribe their instance to plaintext domain block/allow lists (much of the work for this is already in place).
|
- [ ] **Block + allow list subscriptions** -- allow instance admins to subscribe their instance to plaintext domain block/allow lists (much of the work for this is already in place).
|
||||||
- [ ] **Direct conversation view** -- allow users to easily page through all direct-message conversations they're a part of.
|
- [x] **Direct conversation view** -- allow users to easily page through all direct-message conversations they're a part of.
|
||||||
- [ ] **Oauth token management** -- create / view / invalidate OAuth tokens via the settings panel.
|
- [ ] **Oauth token management** -- create / view / invalidate OAuth tokens via the settings panel.
|
||||||
- [ ] **Status EDIT support** -- edit statuses that you've created, without having to delete + redraft. Federate edits out properly.
|
- [ ] **Status EDIT support** -- edit statuses that you've created, without having to delete + redraft. Federate edits out properly.
|
||||||
- [ ] **Fediverse relay support** -- publish posts to relays, pull posts from relays.
|
- [ ] **Fediverse relay support** -- publish posts to relays, pull posts from relays.
|
||||||
|
@ -80,6 +81,10 @@ These are provided in no specific order.
|
||||||
|
|
||||||
More tbd!
|
More tbd!
|
||||||
|
|
||||||
|
### On the way out of BETA to STABLE RELEASE
|
||||||
|
|
||||||
|
Tbd.
|
||||||
|
|
||||||
## Wishlist
|
## Wishlist
|
||||||
|
|
||||||
These cool things will be implemented if time allows (because we really want them):
|
These cool things will be implemented if time allows (because we really want them):
|
||||||
|
|
BIN
docs/assets/markdown-post.png
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
docs/assets/theme-blurple-dark.png
Normal file
After Width: | Height: | Size: 650 KiB |
BIN
docs/assets/theme-blurple-light.png
Normal file
After Width: | Height: | Size: 652 KiB |
BIN
docs/assets/theme-brutalist-dark.png
Normal file
After Width: | Height: | Size: 635 KiB |
BIN
docs/assets/theme-brutalist-light.png
Normal file
After Width: | Height: | Size: 639 KiB |
BIN
docs/assets/theme-ecks-pee.png
Normal file
After Width: | Height: | Size: 855 KiB |
BIN
docs/assets/theme-midnight-trip.png
Normal file
After Width: | Height: | Size: 631 KiB |
BIN
docs/assets/theme-soft.png
Normal file
After Width: | Height: | Size: 680 KiB |
BIN
docs/assets/theme-solarized-dark.png
Normal file
After Width: | Height: | Size: 658 KiB |
BIN
docs/assets/theme-solarized-light.png
Normal file
After Width: | Height: | Size: 663 KiB |
BIN
docs/assets/theme-sunset.png
Normal file
After Width: | Height: | Size: 653 KiB |
|
@ -36,6 +36,6 @@ To see posts, you have to start following people! Once you've followed a few peo
|
||||||
|
|
||||||
We introduced a sign-up flow in v0.16.0. The server you want to sign up to must have enabled registrations/sign-ups, as detailed [right here](./admin/signups.md).
|
We introduced a sign-up flow in v0.16.0. The server you want to sign up to must have enabled registrations/sign-ups, as detailed [right here](./admin/signups.md).
|
||||||
|
|
||||||
## Why's it still in alpha?
|
## Why's it still in Beta?
|
||||||
|
|
||||||
Take a look at the [list of open bugs](https://github.com/superseriousbusiness/gotosocial/issues?q=is%3Aissue+is%3Aopen+label%3Abug) and the [roadmap](https://github.com/superseriousbusiness/gotosocial/blob/main/ROADMAP.md) for a more detailed rundown.
|
Take a look at the [list of open bugs](https://github.com/superseriousbusiness/gotosocial/issues?q=is%3Aissue+is%3Aopen+label%3Abug) and the [roadmap](https://github.com/superseriousbusiness/gotosocial/blob/main/ROADMAP.md) for a more detailed rundown.
|
||||||
|
|
|
@ -143,7 +143,7 @@ function InstanceSettingsForm({ data: instance }: InstanceSettingsFormProps) {
|
||||||
<TextArea
|
<TextArea
|
||||||
field={form.shortDesc}
|
field={form.shortDesc}
|
||||||
label={`Short description (markdown accepted, max ${shortDescLimit} characters)`}
|
label={`Short description (markdown accepted, max ${shortDescLimit} characters)`}
|
||||||
placeholder="A small testing instance for the GoToSocial alpha software."
|
placeholder="A small testing instance for GoToSocial."
|
||||||
autoCapitalize="sentences"
|
autoCapitalize="sentences"
|
||||||
rows={6}
|
rows={6}
|
||||||
/>
|
/>
|
||||||
|
@ -151,7 +151,7 @@ function InstanceSettingsForm({ data: instance }: InstanceSettingsFormProps) {
|
||||||
<TextArea
|
<TextArea
|
||||||
field={form.description}
|
field={form.description}
|
||||||
label={`Full description (markdown accepted, max ${descLimit} characters)`}
|
label={`Full description (markdown accepted, max ${descLimit} characters)`}
|
||||||
placeholder="A small testing instance for the GoToSocial alpha software. Just trying it out, my main instance is https://example.com"
|
placeholder="A small testing instance for GoToSocial. Just trying it out, my main instance is https://example.com"
|
||||||
autoCapitalize="sentences"
|
autoCapitalize="sentences"
|
||||||
rows={6}
|
rows={6}
|
||||||
/>
|
/>
|
||||||
|
|