commit b6a34ae
Artur Manuel
·
2026-08-19 05:26:13 +0000 UTC
parent ebbcff5
docs: expand on achieving minimalism
1 files changed,
+27,
-5
+27,
-5
1@@ -7,13 +7,31 @@ Mastodon is written with Ruby on Rails, Wafrn, Misskey and therefore Sharkey are
2 TypeScript, with frameworks like Angular and React, and they all and GoToSocial and snac use SQL,
3 OpenSSL and even worse as dependencies. The problem is not that the Fediverse likes inflation, the
4 problem is that it's affecting our clients. The solution is to have a server embraces minimalism
5-and simple extensibility.
6+and extensibility.
7
8 ### How to achieve minimalism
9
10-(WIP)
11+Firstly, and this is the most important step, do not add any extra features. Add the core features
12+that everyone uses for Fediverse and don't even think of adding anything else. This keeps
13+justsocial minimal, cheap and robust, because we won't have any extra features, and therefore any
14+extra code. Adding features that's more of a want than a need will result in justsocial becoming
15+bloated, and therefore against anything the project stands for.
16+
17+Another statement I should make is that reducing code will also include dependencies. For example:
18+while we can use OpenSSL, we shouldn't because OpenSSL is absolutely massive. To elaborate, while
19+it is battle-tested and has TLSv1.3 support, something like BearSSL is much smaller and therefore
20+should be more secure, even with it being stuck to TLSv1.2. Likewise, replacing curl with a more
21+minimal HTTP library would be a good call to reduce the amount of code that's included into the
22+project.
23+
24+The conclusion should be that there should be enough code for a barebones Fediverse server.
25+However, I believe that others will absolutely want to add their own stuff DWM-style into
26+justsocial, and while it is nice, I don't trust that users know how to do that responsibly. Which
27+is why I want to include Lua support, despite it not being necessary for the sake of a Fediverse
28+server. We need to achieve extensibility to make this project nice for people to use, while not
29+introducing any bloat to the Fediverse server itself.
30
31-### How to achieve simple extensibility
32+### How to achieve extensibility
33
34 Of course, a minimal fediverse server will be boring as it will be missing many of the features
35 that are found in already established servers like Sharkey and Wafrn. It absolutely should stay
36@@ -33,5 +51,9 @@ this:
37 - init.lua
38 - util.lua
39 ```
40-We personally expect users to check the plugins they use, and any security issue that happens as
41-a result of an evil plugin is not our problem.
42+We expect users to check the plugins they use, and any security issue that happens as a result of
43+a malicious plugin is not our problem.
44+
45+### How do people even use the Fediverse?
46+
47+(WIP)