1. 7

    with 3.0 comes the ability to bring your followers with you like magic! Point the old account to the new one, and the new one to the old one, using the new interface, and your followers will be transferred over!

    If I understand correctly, though, your posts are not moved over, which is a huge bummer.

    1. 7

      Well, at least your followers come with you. When I instancehop, I feel like I have to start at the bottom because only some follow me again.

      You can also just say something like formerly @connor@... in the description and people will see your older posts.

      1. 4

        Sadly, this only works if your followers are also on Mastodon 3.0 servers. So if you actually use this now, don’t expect a lot of followers to follow along…

        1. 3

          It’s been possible to dump and reload your posts for a while now IIRC. It’d be nice to have it automatic, but I’d much rather have this (a feature for which there is no alternative) than wait around for it to be perfect.

        1. 11

          Really nice new frontend, but I might be biased.

          1. 2

            why biased? nvm, just looked at your posting history

          1. 7

            Score one more for OTP. It’s such an amazing platform. I’m happy it gets more attention now that Jose Valim dressed it up in a cute dress and called it Elixir.

            1. 6

              Looking back at the challenges telcos had back in the 80s-90s with more software coming into their hardware platforms, Ericsson made gutsy and insightful decision that still pay off today. Understanding that immuatibility was the easiest way to do (distributed) concurrency and applying it pervasively to a new language was a strike of genius.

            1. 1

              https://framagit.org/framasoft/mobilizon

              Note: Most federation code comes from Pleroma

              So, ActivityPub.

              They use this: https://github.com/smpallen99/coherence

              I don’t really know my way around the Elixir ecosystem, but some of you other crustaceans do. Is Mobilizon quality work?

              1. 3

                Pleroma is very high quality work, just tremendous.

                Also we will implement Events as well, though it is not our main focus.

                1. 2

                  If it uses Pleroma as a backbone it’s likely fine. Pleroma seemed pretty okay, maybe lacking in the user interface.

                1. 8

                  The most popular tools for high load dev:

                  • C++
                  • .NET
                  • Java
                  • Go
                  • …. a thousand other things
                  • Elixir?

                  I use Go for everything, but I do realize that its by no means the most popular tool. Whats up with these Elixir fan clubs?

                  1. 6

                    Whats up with these Elixir fan clubs?

                    It’s a genuinely decent language which is suited for web development and which has easy performance gains for devs used to Ruby or Python.

                    That said, the spread of it I believe is up concerted marketing efforts and (well-meaning) misinformation.

                    A lot of folks get to do “Proof By BEAM” when asked about their technology choice, saying something about WhatsApp and the BEAM and Erlang and waving hands while riding the coattails of a few golden and/or mysterious projects.

                    1. 5

                      Elixir is a natural choice for existing Ruby developers/shops.

                      You get a huge performance bump, even with naive solutions. The syntax is really close to Ruby and so is an easy switch in that respect. Phoenix is a great framework.

                      If you go beyond that there’s lots of battle-tested gravy in the BEAM VM and OTP.

                      1. 3

                        Mainly, it made the BEAM/OTP visible for a lot more people than Erlang ever did.

                      1. 6

                        For everyone (as long as keybase accepts you, which they won’t do for small instances and anything sexual).

                        Mastodon (and Pleroma) already supports the rel=me mechanism, which can be used for similar identity proofs.

                        1. 2

                          as long as keybase accepts you, which they won’t do for small instances and anything sexual

                          I don’t see “anything sexual” mentioned anywhere in that post?

                          1. 4

                            I think they mean the response given on HN that’d suggest sites related to sex won’t be accepted.

                            1. 2

                              “pr0n” is not the same as “anything sexual”, and “we don’t want 10k pr0n sites” is not the same as “we won’t accept anything sexual”.

                              1. 1

                                Well, I don’t know what they think are ‘pr0n’ sites or not, so maybe they’ll be lenient, but I don’t know why they restrict it at all except for brand purposes.

                                1. 1

                                  My impression is – which could of course be wrong – that they would rather have 300 useful/common sites, than have 10 000 small/uncommon sites.

                                  1. 2

                                    Yeah, I can see why they would want that, but it’s not something I want or see as a feature.

                          2. 2

                            rel=me was discussed in the PR adding Keybase support. I’m not entirely convinced by Keybase people’s reasoning but that’s the context.

                            Some more context - Keybase started donating to Mastodon project before the integration was merged. Source

                            (By the way are you the same lain of Pleroma? I like the project, so thank you for your hard work in it 👍).

                            1. 2
                          1. 3

                            Sorry fam, but the plural of status is statūs and not stati :)

                            edit after actually reading through: tedu discovers what everybody involved with the the fediverse already knows. Overall nice write up about the state of the ‘standard’. Good thing that everybody ignores it.

                            1. 2

                              At least you recognized it’s bad Latin, not fake Latin. :)

                            1. 4

                              This article seems to equate “Free Software” with copyleft, which is just silly on the face.

                              All permissively-licensed software is Free Software. No one disputes that. Some people like using copyleft as a strategy in some cases, but the FSF advocates using Apache 2.0 for some software.

                              1. 20

                                Free Software” as a capitalised term was invented specifically to distinguish it from other permissively-licensed software that is perhaps free, but does not aim to preserve freedom.

                                1. 1

                                  Even according to your link, BSD/Apache/MIT licenses software is ‘Free Software’. On https://www.gnu.org/philosophy/categories.html there’s even an image.

                                2. 6

                                  No, permissively-licensed software is missing the point of Free Software. Not by accident — the previous post in this series explains exactly why Open Source concept was created as a reaction against Free Software’s copyleft.

                                  1. 3

                                    It is not worth the trouble to use copyleft for most small programs.

                                    and also

                                    Some libraries implement free standards that are competing against restricted standards, such as Ogg Vorbis (which competes against MP3 audio) and WebM (which competes against MPEG-4 video). For these projects, widespread use of the code is vital for advancing the cause of free software, and does more good than a copyleft on the project’s code would do.

                                    Both from: https://www.gnu.org/licenses/license-recommendations.en.html

                                    Lax permissive (“pushover”) licenses have existed much longer than the “open source” terminology. Open source terminology misses the point on freedom and the open source movement promotes a different (and sometimes conflicting) set of values from the software freedom movement, but that doesn’t make permissively-licensed software any less free software.

                                    Copyleft is a strategy that can be useful in securing software freedom, but it is a not an end to itself nor is it essential for something to be free.

                                1. 4

                                  I am getting really bad keystroke latency on testing.pleroma.lol.

                                  Could you please use a protocol that doesn’t require the server to echo every individual keystroke? It seems to kind of defeat the purpose of having a “lightweight” frontend when you’re placing a bunch of critical interaction paths on the network like that. Maybe an HTML interface that works in Lynx (the Pleroma one doesn’t, and neither does the Mastodon one)? Or maybe NNTP?

                                  1. 6

                                    This is on purpose to recreate the feeling of using a BBS over a 300 baud connection.

                                    1. 4

                                      Or mosh? I haven’t looked at it, but you might not even need to change the code.

                                      1. 1

                                        Yeah mosh is transparent (outside of needing it to be on the server as well).

                                        1. 1

                                          I’m not so sure. The mosh client has to log you in via ssh and invoke the mosh server, then the mosh server daemonizes itself, the SSH connection is closed, and the remaining protocol runs entirely separate from SSH. The Pleroma BBS cannot allow you to run arbitrary commands on the server, so I’m worried that allowing the standard Mosh implementation to be used would open up vulnerabilities (the alternative would be to implement SSP in Erlang, but that’s far from “transparent”).

                                        2. 3

                                          If you want an HTML interface to Pleroma that works in Lynx, give brutaldon a try. I originally wrote it for Mastodon, but I’ve tested it against Pleroma.

                                          1. 1

                                            rlwrap ssh testing.pleroma.lol <- this will run readline locally so you can edit your input on your machine and only send it off to the server when you’ve finished the entire line.

                                            1. 1

                                              Be an interesting exercise to build a frontend that worked in Lynx given the OAuth requirements. You’d have to do the auth dance in a backend which somewhat ruins the whole point…

                                              1. 1

                                                Our OAuth is handled by the backend

                                                1. 1

                                                  you’ll still need to send the token with every quest, though, i don’t think lynx could do that. We could put it in a cookie, but that would kind of defeat the purpose.

                                            1. 4

                                              Serious question: is this april fools joke? (I hope not, since this would be cool)

                                              1. 1

                                                I think they add silly things on April 1st but they are real things

                                                1. 1

                                                  No, it’s real.

                                                1. 2

                                                  Most of these kinds of articles (and this one as well) are simply showing cases where someone made the wrong decision at some time. Sure, you shouldn’t use a complicated, generalized approach instead of a simple one when you don’t need it. But if you know (or at least expect) the flexibility to be needed very soon, it can be worthwhile to use the flexible approach immediately.

                                                  Of course, maybe you were wrong, or maybe management said ‘we really need this for client X’ and then two weeks later client X disappeared. And then a year later some colleague sees your code and starts lecturing you about how you don’t understand the cost of complexity…

                                                  It reminds me of the ‘premature optimization is bad’ meme. Of course it is! That’s encoded in the word ‘premature’! The hard part in software architecture is to make the right trade offs, and rules like ‘just make it simple’ or ‘never optimize until your system breaks’ won’t help with that.

                                                  1. 1

                                                    I have to disagree. Of course there are trade-offs, and of course when you need to encode business rules you will find more complexity.

                                                    The point is to avoid complexity or being overly clever until you need it.

                                                  1. 2

                                                    You could have just used the Gopher interface that Pleroma comes with :p

                                                    1. 2

                                                      If Pieroma were easier to install and maintain I think it would silence a lot of people’s issues with the fediverse.

                                                      it’s far smaller and lighter weight than Mastodon, and has the option to switch out to a lighter weight front end as well.

                                                      However I felt like I had to be an Elixir hacker to get it running which I’m not :) (I have a grasp of Ruby and Python :)

                                                      1. 1

                                                        I think you greatly overestimate the complexity of running Pleroma. With the releases we have now installing is just following the instructions (which are just: install elixir, install postgres, run the configuration tool), updating will be the same (all recent updates didn’t need any instructions beyond ‘download the new release and restart’).

                                                        1. 1

                                                          My information on running Pleroma is … at this point maybe 6 months stale? After my instance imploded I thought about trying to switch but the install process at that time was a bit too daunting / unclear.

                                                          Glad some work and thought has been put into it! Maybe at some point in the future I’ll have the time to try again :)

                                                          1. 1

                                                            We were always kind of a ‘code first’ project and missed a lot of opportunities to promote and write good documentation and things. We’re working on it :)

                                                            1. 1

                                                              Oh believe me there was NO judgement inherent there (though I can see where it could read that way) - just stating my experience at the time.

                                                              I think Pleroma is awesome work and I’m psyched you folks are working on the polish aspect.

                                                      2. 2

                                                        Oo, I like that. :)

                                                        I ended up sticking brutaldon in front of Mastodon.

                                                        1. 2

                                                          I have the pleroma source checked out, too, of course, though not being familiar with it I find elixir difficult to follow.

                                                        1. 2

                                                          I think the fediverse is worth iterating. Not to be dismissive of this work, but I’m not really interested in a competing standard. If we think Mastodon is too heavyweight (and there’s a good case to be made that it is) then let’s come up with lighter implementations and evolve the ActivityPub protocol to be simpler and more responsive.

                                                          1. 3

                                                            The problem is that ActivityPub is almost too simple. It ensures people can communicate just as much as “you must use an Earth language” does. You must build on top of AP to make real apps.

                                                            Of course Moxie has a point too: federation means you get crap implantations that don’t play nicely with others, or don’t accept capital letters where they should. Who knows, there might even be a subset of implementations that accept Unicode smart quotes. This is inherent in using federation, and the only solution is to use good implantations that somehow confirm with the bad ones.

                                                            1. 2

                                                              Oh this doesn’t even federate with everyone else? An imperfect solution that actually works is a lot better than one that doesn’t even work. “I federate only with myself and don’t follow standards” is as good as “I don’t federate”. If they can find a way to coordinate with other instances to improve the standards or their usage that’s great, otherwise this mostly just exists as a little hobby project.

                                                              1. 1

                                                                Forgive my ignorance here, is that really federation or is it just that the ActivityPub protocol needs to be tightened up to allow for less interpretation in the implementations?

                                                                Maybe a reference test suite or something?

                                                                1. 2

                                                                  This is essentially what litepub (https://litepub.social/litepub/) is trying to do.

                                                                  1. 1

                                                                    The ActivityPub protocol is extremely generic. It simple defines a vocabulary for transmitting actions and behaviors in a JSON payload, according to a very generic schema. Think of it as a small bit of window dressing over RDF. There’s also a few gaps, and some missing features that were added in later (such as with signatures), and you end up with standards hell.

                                                                    1. 1

                                                                      Sounds like this is what @mercer was talking about with Litepub and both Pleroma and Pixelfed currently support it based on that page.

                                                                      This is essentially what I was advocating. Don’t throw the baby out with the bathwater. Fix it! :)

                                                                      (Wait I’m not sure whether that analogy extends in that direction but.. You get the idea :)

                                                                      1. 1

                                                                        I think ActivityPub does need some major tweaks at its core, something that seems already hard to do given the traction it has gained.

                                                                        I’d actually like to see more adoption of a lesser-known protocol, Zot ( as used by Hubzilla and Zap ). It has a slightly different take on the entire concept of sharing content, where it starts out with the idea of sharing things just with those you want to share them with, but also e.g. only allow them to share things with you if you agree to this (or, of course, accept all incoming messages). Privacy by default, basically. This, in my opinion is something where ActivityPub falls short.

                                                                        Maybe adoption is ‘t necessary – maybe AP is flexible enough to shift to something like Zot… If so I’d definitely be interested in that.

                                                              1. 3

                                                                I’d love to have an ActivityPub server that was analogous to an SMTP server: it talks to the network to receive and send messages, but the inbox and outbox are just directories in $HOME filled with files in a standard format (JSON? Some RFC2822-like encoding?) and we can write our own tools to read and write messages instead of having to do everything in a browser.

                                                                1. 2

                                                                  This is not possible because activities have side effects that a server needs to handle. It’s not just ‘sending and receiving’, the AP server has to do a lot more. The closest thing you can have is AP Client-to-Server, which will give you just a stream of json in your inbox (pleroma supports this, mastodon doesn’t).

                                                                  1. 1

                                                                    What kinds of side effects?

                                                                    It can’t quite be like SMTP, because an SMTP server delivers a message once then forgets about it, while (as I understand it) ActivityPub servers need to be able to answer questions about that message forever, so they need to keep a copy of it. That doesn’t seem fundamentally impossible, though — that’s what /var/lib/ is for.

                                                                    1. 2

                                                                      liking, repeating, following, blocking, unfollowing, joining, leaving, voting, deleting…

                                                                  2. 1

                                                                    check out secure scuttlebutt

                                                                    1. 6

                                                                      Everyone keeps beating this drum, but honestly scuttlebutt and Mastodon are apples and oranges. Mastodon is a traditional client/server based architecture. Runs great on mobile devices so can be checked/interacted with anywhere.

                                                                      Scuttlebutt is awfully neat but is basically designed around the idea that your identity if bound to THIS physical device. So forget mobile or working behind a corporate firewall. Just not happening.

                                                                      Does that make Scuttlebutt bad? Hell no it’s an amazing tool for what it does, but what it does it VERY different from what Mastodon does, and IMO comparing the two is misleading.

                                                                      (I’d love to be proven wrong and taken to school on this BTW. Somebody know of tech that lets me use Scuttlebutt in a device independent fashion? e.g. start conversation on laptop, continue on mobile phone? Don’t tell me “That’s not what Scuttlebutt is/does” because you’re just making my point for me :)

                                                                      1. 1

                                                                        bound to THIS physical device

                                                                        I never understood why they say this. It’s just a keypair. What happens if you try to use the same keypair on multiple devices? How and why does that not work, if that actually doesn’t work?

                                                                        1. 3

                                                                          What happens if you try to use the same keypair on multiple devices?

                                                                          Sync errors, broken account state, etc.

                                                                          (If you make a post with device 1, and another with device 2 before the post from 1 syncs onto 2, interesting problems occur.)

                                                                          Discussion here: http://viewer.scuttlebot.io/%25q6qYcAlqig%2B3fqDxvBjaUzLyCoxG1yNUd4focPVSXhI%3D.sha256

                                                                          1. 2

                                                                            Oh, right, they’re doing the bLoCkChaIn hash chain thing. I wonder…

                                                                            • why isn’t there a “git merge commit” type thing (posts with multiple parents)?
                                                                            • what would be the downsides of not doing the hash ordering at all?
                                                                          2. 1

                                                                            Because as an end user that’s not made clear in the docs? Because there are no mobile apps that I can find / see? Because copying around said keypair would be a manual operation with no support in software?

                                                                            Note I’m not saying this is a technical problem, but a usability one.

                                                                            1. 1

                                                                              no mobile apps

                                                                              uh, Manyverse is probably the most well known Scuttlebutt app — the only one with professional-looking design and a little bit of marketing I think… However, it’s not very good yet. It doesn’t support channels, it only shows one feed, and if you add a pub, you’ll get everyone’s posts in one giant feed.

                                                                              technical problem

                                                                              It is one, turns out it’s not documented or advised for a reason (see other comment subthread)

                                                                              1. 2

                                                                                To be clear, I LOVE the scuttlebutt idea. I just think it needs a lot more work and polish to be usable by a lot of people. I’ve gotten it running, played with it a bit, but have never really ‘moved in’ because the amount of time I am at:

                                                                                1. My personal (non work) computer and thus
                                                                                2. Not behind a corporate firewall and thus
                                                                                3. Willing to load potentially morally ambiguous content onto said machine is vanishingly small.

                                                                                Whereas I can browse the Fediverse from just about anywhere I happen to be with zero retained footprint.

                                                                          3. 1

                                                                            Well in my defense I didn’t claim that it was anything like Mastodon. They wanted a feature that was also unlike mastodon but is more like secure scuttlebutt from my understanding, so I gave them secure scuttlebutt to look at. I’m also tired so maybe what they were talking about is nothing like SSB. Wasn’t intending to liken the two.

                                                                      1. 2

                                                                        I started using Colemak about 4 years ago. It took me around 2 weeks to get half of my typing speed back (40 wpm). I think after a month or two I was back to full speed, but it took around 2 years before I started spelling with Colemak.

                                                                        I’ve found that it’s really hard to avoid qwerty. I don’t use other people’s computers much, but mobile devices don’t support Colemak. Sure typing on a phone is different, but I do think having a consistent layout matters.

                                                                        1. 1

                                                                          android does support colemak, i’m using it on it.

                                                                        1. 6

                                                                          Great article, but I’m always kind of shocked that there are these kinds of low-hanging fruit in programming environments that big chunks of the industry are using professionally every day.

                                                                          1. 16

                                                                            According to this, earth is closer to the sun than it is to venus, which should give you some idea about how useful this definition of ‘closest’ is.

                                                                            1. 8

                                                                              Average distance isn’t an unreasonable definition of closest IMO. I appreciate this work a ton primarily because it questions the framework under which a widely accepted assumption was made, and shows an alternate interpretation which it makes a case for.

                                                                              It also highlights the effects of out-of-phase, different-fequency orbits which is really cool. The visualization is nice to boot.

                                                                              1. 5

                                                                                Yep. And this makes the following moralistic quote really infuriating to me:

                                                                                As it turns out, by some phenomenon of carelessness, ambiguity, or groupthink, science popularizers have disseminated information based on a flawed assumption about the average distance between planets.

                                                                                1. 5

                                                                                  Earth is usually closer to the sun than Venus. Earth is closer to the sun than Venus right now.

                                                                                  1. 4

                                                                                    Reminds me of the (I think) Asimov quote: “The Solar System consists of the Sun, Jupiter, and some random detritus.”

                                                                                    1. 1

                                                                                      If some civilization needs to build a “communication relay” around a planet and they can only build one, which planet should they choose? Why?

                                                                                    1. 4

                                                                                      Turns out when you pay someone 100€ to work for a few days implementing login system, they don’t adhere to best practices.

                                                                                      1. 3

                                                                                        fwiw they don’t use best practices even if you pay them €200

                                                                                        1. 65

                                                                                          In the Mastodon universe, technically-minded users are encouraged to run their own node. Sounds good. To install a Mastodon node, I am instructed to install recent versions of

                                                                                          • Ruby
                                                                                          • Node.JS
                                                                                          • Redis
                                                                                          • PostgreSQL
                                                                                          • nginx

                                                                                          This does not seem like a reasonable set of dependencies to me. In particular, using two interpreted languages, two databases, and a separate web server presumably acting as a frontend, all seems like overkill. I look forward to when the Mastodon devs are able to tame this complexity, and reduce the codebase to a something like single (ideally non-interpreted) language and a single database. Or, even better, a single binary that manages its own data on disk, using e.g. embedded SQLite. Until then, I’ll pass.

                                                                                          1. 22

                                                                                            Totally agree. I heard Pleroma has less dependencies though it looks like it depends a bit on which OS you’re running.

                                                                                            1. 11

                                                                                              Compared to Mastodon, Pleroma is a piece of cake to install; I followed their tutorial and had an instance set up and running in about twenty minutes on a fresh server.

                                                                                              From memory all I needed install was Nginx, Elixir and Postgres, two of which were already set up and configured for other projects.

                                                                                              My server is a quad core ARMv7 with 2GB RAM and averages maybe 0.5 load when I hit heavy usage… it does transit a lot of traffic though, since the 1st January my server has pushed out 530GB of traffic.

                                                                                              1. 2

                                                                                                doesnt Elixir require Erlang to run?

                                                                                                1. 2

                                                                                                  It does. Some linux distributions will require adding the Erlang repo before installing elixir but most seem to have it already included: https://elixir-lang.org/install.html#unix-and-unix-like meaning its a simple one line command to install e.g pkg install elixir

                                                                                              2. 7

                                                                                                I’m not a huge social person, but I had only heard of Pleroma without investigating it. After looking a bit more, I don’t really understand why someone would choose Mastodon over Pleroma. They do basically the same thing, but Pleroma takes less resources. Anyone who chose Mastodon over Pleroma have a reason why?

                                                                                                1. 6

                                                                                                  Mastodon has more features right now. That’s about it.

                                                                                                  1. 4

                                                                                                    Pleroma didn’t have releases for a looong time. They finally started down that route. They also don’t have official Docker containers and config changes require recompiling (just due to the way they have Elixir and builds setup). It was a pain to write my Docker container for it.

                                                                                                    Pleroma also lacks moderation tools (you need to add blocked domains to the config), it doesn’t allow remote follow/interactions (if you see a status elsewhere on Mastodon, you can click remote-reply, it will ask your server name, redirect you to your server and then you can reply to someone you don’t follow) and a couple of other features.

                                                                                                    Misskey is another alternative that looks promising.

                                                                                                    1. 2

                                                                                                      it doesn’t allow remote follow/interactions (if you see a status elsewhere on Mastodon, you can click remote-reply, it will ask your server name, redirect you to your server and then you can reply to someone you don’t follow)

                                                                                                      I think that might just be the Pleroma FA - if I’m using the Mastodon FE, I get the same interaction on my Pleroma instance replying to someone on a different instance as when I’m using octodon.social (unless I’m radically misunderstanding your sentence)

                                                                                                      1. 1

                                                                                                        Thanks, this is a really great response. I actually took a quick look at their docs and saw they didn’t have any FreeBSD guide set up, so I stopped looking. I use Vultr’s $2.50 FreeBSD vps and I didn’t feel like fiddling with anything that particular night. I wish they did have an official docker container for it.

                                                                                                      2. 3

                                                                                                        Pleroma has a bunch of fiddly issues - it doesn’t do streaming properly (bitlbee-mastodon won’t work), the UI doesn’t have any “compose DM” functionality that I can find, I had huge problems with a long password, etc. But they’re mostly minor annoyances than show stoppers for now.

                                                                                                      3. 7

                                                                                                        It doesn’t depend - they’ve just gone further to define what to do for each OS!

                                                                                                        1. 4

                                                                                                          I guess it’s mainly the ImageMagick dependency for OpenBSD that got me thinking otherwise.

                                                                                                          OpenBSD

                                                                                                          • elixir
                                                                                                          • gmake
                                                                                                          • ImageMagick
                                                                                                          • git
                                                                                                          • postgresql-server
                                                                                                          • postgresql-contrib

                                                                                                          Debian Based Distributions

                                                                                                          • postgresql
                                                                                                          • postgresql-contrib
                                                                                                          • elixir
                                                                                                          • erlang-dev
                                                                                                          • erlang-tools
                                                                                                          • erlang-parsetools
                                                                                                          • erlang-xmerl
                                                                                                          • git
                                                                                                          • build-essential
                                                                                                          1. 3

                                                                                                            imagemagick is purely optional. The only hard dependencies are postgresql and elixir (and some reverse proxy like nginx)

                                                                                                            1. 4

                                                                                                              imagemagick is strongly recommended though so you can enable the Mogrify filter on uploads and actually strip exif data

                                                                                                        2. 3

                                                                                                          Specifically, quoting from their readme:

                                                                                                          Pleroma is written in Elixir, high-performance and can run on small devices like a Raspberry Pi.

                                                                                                          As to the DB, they seem to use Postgres.

                                                                                                          The author of the app posted his list of differences, but I’m not sure if it’s complete and what it really means. I haven’t found a better comparison yet, however.

                                                                                                        3. 16

                                                                                                          Unfortunately I have to agree. I self-host 99% of my online services, and sysadmin for a living. I tried mastodon for a few months, but its installation and management process was far more complicated than anything I’m used to. (I run everything on OpenBSD, so the docker image isn’t an option for me.)

                                                                                                          In addition to getting NodeJS, Ruby, and all the other dependencies installed, I had to write 3 separate rc files to run 3 separate daemons to keep the thing running. Compared to something like Gitea, which just requires running a single Go executable and a Postgres DB, it was a massive amount of toil.

                                                                                                          The mastodon culture really wasn’t a fit for me either. Even in technical spaces, there was a huge amount of politics/soapboxing. I realized I hadn’t even logged in for a few weeks so I just canned my instance.

                                                                                                          Over the past year I’ve given up on the whole social network thing and stick to Matrix/IRC/XMPP/email. I’ve been much happier as a result and there’s a plethora of quality native clients (many are text-based). I’m especially happy on Matrix now that I’ve discovered weechat-matrix.

                                                                                                          I don’t mean to discourage federated projects like Mastodon though - I’m always a fan of anything involving well-known URLs or SRV records!

                                                                                                          1. 11

                                                                                                            Fortunately the “fediverse” is glued by a standard protocol (ActivityPub) that is quite simple so if one implementation (e.g. Mastodon) doesn’t suit someone’s needs it’s not a big problem - just searching for a better one and it still interconnects with the rest of the world.

                                                                                                            (I’ve written a small proof-of-concept ActivityPub clients and servers, it works and federates, see also this).

                                                                                                            For me the more important problems are not implementation issues with one server but rather design issues within the protocol. For example established standards such as e-mail or XMPP have a way to delegate responsibility of running a server of a particular protocol but still use bare domain for user identifies. In e-mail that is MX records in XMPP it’s DNS SRV records. ActivityPub doesn’t demand anything like it and even though Mastodon tries to provide something that would fix that issue - WebFinger, other implementations are not interested in that (e.g. Pleroma). And then one is left with instances such as “social.company.com”.

                                                                                                            For example - Pleroma’s developer’s id is lain@pleroma.soykaf.com.

                                                                                                            1. 16

                                                                                                              This is a completely reasonable and uncontroversial set of dependencies for a web app. Some of the largest web apps on the Internet run this stack. That is a good thing, because when Fediverse nodes need to scale there are well-understood ways of doing it.

                                                                                                              Success in social networking is entirely about network effects and that means low barrier to entry is table stakes. Yeah, it’d be cool if someone built the type of node you’re talking about, but it would be a curiosity pursued only by the most technical users. If that were the barrier to entry for the network, there would be no network.

                                                                                                              1. 39

                                                                                                                This is a completely reasonable and uncontroversial set of dependencies for a web app. Some of the largest web apps on the Internet run this stack.

                                                                                                                Yes, but not for a web app I’m expected to run on my own time, for fun.

                                                                                                                1. 6

                                                                                                                  I’m not sure that’s the exact expectation, that we all should run our single-user Mastodon instances. I feel like the expectation is that sysadmin with enough knowledge will maintain an instance for many users. This seems to be the norm.

                                                                                                                  That, or you go to Mastohost and pay someone else for your own single-user instance.

                                                                                                                  1. 2

                                                                                                                    You’re not expected to do that is my point.

                                                                                                                  2. 16

                                                                                                                    completely reasonable and uncontroversial

                                                                                                                    Not true. Many people are complaining about the unmanaged proliferation of dependencies and tools. Most projects of this size and complexity don’t need more than one language, bulky javascript frameworks, caching and database services.

                                                                                                                    This is making difficult to package Mastodon and Pleroma in Debian and Ubuntu and making it more difficult for people to make the service really decentralized.

                                                                                                                    1. 1

                                                                                                                      I’m not going to defend the reality of what NPM packaging looks like right now because it sucks but that’s the ecosystem we’re stuck with for the time being until something better comes along. As with social networks, packaging systems are also about network effects.

                                                                                                                      But you can’t deny that this is the norm today. Well, you can, but you would be wrong.

                                                                                                                      This is making difficult to package Mastodon and Pleroma in Debian and Ubuntu

                                                                                                                      I’m sure it is, because dpkg is a wholly unsuitable tool for this use-case. You shouldn’t even try. Anyone who doesn’t know how to set these things up themselves should use the Docker container.

                                                                                                                      1. 1

                                                                                                                        I think the most difficult part of the Debian packaging would be the js deps, correct?

                                                                                                                        1. 3

                                                                                                                          Yes and no. Unvendorizing dependencies is done mostly for security and requires a lot of work depending on the amount of dependencies. Sometimes js libraries don’t create serious security concerns because they are only run client-side and can be left in vendorized form.

                                                                                                                          The Ruby libraries can be also difficult to unvendorize because many upstream developers introduce breaking changes often. They care little about backward compatibility, packaging and security.

                                                                                                                          Yet server-side code is more security-critical and that becomes a problem. And it’s getting even worse with new languages that strongly encourage static linking and vendorization.

                                                                                                                          1. 1

                                                                                                                            I can’t believe even Debian adopted the Googlism of “vendor” instead of “bundle”.

                                                                                                                            That aside, Rust? In Mastodon? I guess the Ruby gems it requires would be the bigger problem?

                                                                                                                            1. 2

                                                                                                                              The use of the word is mine: I just heard people using “vendor” often. It’s not “adopted by Debian”.

                                                                                                                              I don’t understand the second part: maybe you misread Ruby for Rust in my text?

                                                                                                                              1. 1

                                                                                                                                No, I really just don’t know what Rust has to do with Mastodon. There’s Rust in there somewhere? I just didn’t notice.

                                                                                                                                1. 2

                                                                                                                                  AFAICT there is no Rust in the repo (at least at the moment).

                                                                                                                                  1. 1

                                                                                                                                    Wow, I’m so dumb, I keep seeing Rust where there is none and misunderstanding you, so sorry!

                                                                                                                      2. 7

                                                                                                                        Great. Then have two implementations, one for users with large footprints, and another for casual users with five friends.

                                                                                                                        It is a reasonable stack if you will devote 1+ servers to the task. Not for something you might want to run on your RPI next to your irc server (a single piece of software in those stacks too)

                                                                                                                        1. 4

                                                                                                                          Having more than one implementation is healthy.

                                                                                                                          1. 2

                                                                                                                            Of course it is. Which is why it’s a reasonable solution to the large stack required by the current primary implementation.

                                                                                                                      3. 6

                                                                                                                        There’s really one database and one cache there. I mean, I guess technically Redis is a database, but it’s almost always used for caching and not as a DB layer like PSQL.

                                                                                                                        You can always write your own server if you want in whatever language you choose if you feel like Ruby/Node is too much. Or, like that other guy said, you can just use Docker.

                                                                                                                        1. 4

                                                                                                                          There’s really one database and one cache there. I mean, I guess technically Redis is a database, but it’s almost always used for caching . . .

                                                                                                                          A project that can run on a single instance of the application binary absolutely does not need a cache. Nor does it need a pub/sub or messaging system outside of its process space.

                                                                                                                          1. 2

                                                                                                                            It’s more likely that Redis is being used for pub/sub messaging and job queuing.

                                                                                                                          2. 11

                                                                                                                            This does not seem like a reasonable set of dependencies to me

                                                                                                                            Huh. I must be just used to this, then. At work I need to use or at least somewhat understand,

                                                                                                                            • Postgres
                                                                                                                            • Python 2
                                                                                                                            • Python 3
                                                                                                                            • Django
                                                                                                                            • Ansible
                                                                                                                            • AWS
                                                                                                                            • Git (actually, Mercurial, but this is my choice to avoid using git)
                                                                                                                            • Redis
                                                                                                                            • Concourse
                                                                                                                            • Docker
                                                                                                                            • Emacs (My choice, but I could pick anything else)
                                                                                                                            • Node
                                                                                                                            • nginx
                                                                                                                            • Flask
                                                                                                                            • cron
                                                                                                                            • Linux
                                                                                                                            • RabbitMQ
                                                                                                                            • Celery
                                                                                                                            • Vagrant (well, optional, I actually do a little extra work to have everything native and avoid a VM)
                                                                                                                            • The occasional bit of C code

                                                                                                                            and so on and so forth.

                                                                                                                            Do I just work at a terrible place or is this a reasonable amount of things to have to deal with in this business? I honestly don’t know.

                                                                                                                            To me Mastodon’s requirements seem like a pretty standard Rails application. I’m not even sure why Redis is considered another db – it seems like an in-memory cache with optional disk persistence is a different thing than a persistent-only RDBMS. Nor do I even see much of a problem with two interpreted languages – the alternative would be to have js everywhere, since you can’t have Python or Ruby in a web browser, and js just isn’t a pleasant language for certain tasks.

                                                                                                                            1. 38

                                                                                                                              I can work with all that and more if you pay me. For stuff I’m running at home on my own time, fuck no. When I shut my laptop to leave the office, it stays shut until I’m back again in the morning, or I get paged.

                                                                                                                              1. 2

                                                                                                                                So is Mastodon unusual for a Rails program? I wonder if it’s simply unreasonable to ask people to run their own Rails installation. I honestly don’t know.

                                                                                                                                Given the amount of Mastodon instances out there, though, it seems that most people manage. How?

                                                                                                                                1. 4

                                                                                                                                  That looks like a bog-standard, very minimal rails stack with a JS frontend. I’m honestly not sure how one could simplify it below that without dropping the JS on the web frontend and any caching, both of which seem like a bad idea.

                                                                                                                                  1. 7

                                                                                                                                    There’s no need to require node. The compilation should happen at release time, and the release download tarball should contain all the JS you need.

                                                                                                                                    1. -3

                                                                                                                                      lol “download tarball”, you’re old, dude.

                                                                                                                                      1. 7

                                                                                                                                        Just you wait another twenty years, and you too will be screaming at the kids to get off your lawn.

                                                                                                                                    2. 2

                                                                                                                                      You could remove Rails and use something Node-based for the backend. I’m not claiming that’s a good idea (in fact it’s probably not very reasonable), but it’d remove that dependency?

                                                                                                                                      1. 1

                                                                                                                                        it could just have been a go or rust binary or something along those lines, with an embedded db like bolt or sqlite

                                                                                                                                        edit: though the reason i ignore mastodon is the same as cullum, culture doesn’t seem interesting, at least on mastodon.social

                                                                                                                                      2. 4

                                                                                                                                        If security or privacy focused, I’d try a combo like this:

                                                                                                                                        1. Safe language with minimal runtime that compiles to native code and Javascript. Web framework in that language for dynamic stuff.

                                                                                                                                        2. Lwan web server for static content.

                                                                                                                                        3. SQLite for database.

                                                                                                                                        4. Whatever is needed to combine them.

                                                                                                                                        Combo will be smaller, faster, more reliable, and more secure.

                                                                                                                                        1. 2

                                                                                                                                          I don’t think this is unusual for a Rails app. I just don’t want to set up or manage a Rails app in my free time. Other people may want to, but I don’t.

                                                                                                                                      3. 7

                                                                                                                                        I don’t think it’s reasonable to compare professional requirements and personal requirements.

                                                                                                                                        1. 4

                                                                                                                                          The thing is, Mastodon is meant to be used on-premise. If you’re building a service you host, knock yourself out! Use 40 programming languages and 40 DBs at the same time. But if you want me to install it, keep it simple :)

                                                                                                                                          1. 4

                                                                                                                                            Personally, setting up all that seems like too much work for a home server, but maybe I’m just lazy. I had a similar issue when setting up Matrix and ran into an error message that I just didn’t have the heart to debug, given the amount of moving parts which I had to install.

                                                                                                                                            1. 3

                                                                                                                                              If you can use debian, try installing synapse via their repository, it works really nice for me so far: https://matrix.org/packages/debian/

                                                                                                                                              1. 1

                                                                                                                                                Reading other comments about the horror that is Docker, it is a wonder that you dare propose to install an entire OS only to run a Matrix server. ;)

                                                                                                                                                1. 3

                                                                                                                                                  i’m not completely sure which parts of you comment are sarcasm :)

                                                                                                                                            2. 0

                                                                                                                                              Your list there has lots of tools with overlapping functionality, seems like pointless redundancy. Just pick flask OR django. Just pick python3 or node, just pick docker or vagrant, make a choice, remove useless and redundant things.

                                                                                                                                              1. 3

                                                                                                                                                We have some Django applications and we have some Flask applications. They have different lineages. One we forked and one we made ourselves.

                                                                                                                                            3. 6

                                                                                                                                              Alternatively you install it using the Docker as described here.

                                                                                                                                              1. 32

                                                                                                                                                I think it’s kinda sad that the solution to “control your own toots” is “give up control of your computer and install this giant blob of software”.

                                                                                                                                                1. 9

                                                                                                                                                  Piling another forty years of hexadecimal Unix sludge on top of forty years of slightly different hexadecimal Unix sludge to improve our ability to ship software artifacts … it’s an aesthetic nightmare. But I don’t fully understand what our alternatives are.

                                                                                                                                                  I’ve never been happier to be out of the business of having to think about this in anything but the most cursory detail.

                                                                                                                                                  1. 11

                                                                                                                                                    I mean how is that different from running any binary at the end of the day. Unless you’re compiling everything from scratch on the machine starting from the kernel. Running Mastodon from Docker is really no different. And it’s not like anybody is stopping you from either making your own Dockerfile, or just setting up directly on your machine by hand. The original complaint was that it’s too much work, and if that’s a case you have a simple packaged solution. If you don’t like it then roll up the sleeves and do it by hand. I really don’t see the problem here I’m afraid.

                                                                                                                                                    1. 11

                                                                                                                                                      “It’s too much work” is a problem.

                                                                                                                                                      1. 5

                                                                                                                                                        Unless you’re compiling everything from scratch on the machine starting from the kernel

                                                                                                                                                        I use NixOS. I have a set of keys that I set as trusted for signature verification of binaries. The binaries are a cache of the build derivation, so I could theoretically build the software from scratch, if I wanted to, or to verify that the binaries are the same as the cached versions.

                                                                                                                                                        1. 2

                                                                                                                                                          Right, but if you feel strongly about that then you can make your own Dockerfile from source. The discussion is regarding whether there’s a simple way to get an instance up and running, and there is.

                                                                                                                                                          1. 3

                                                                                                                                                            Docker containers raise a lot of questions though, even if you use a Dockerfile:

                                                                                                                                                            • What am I running?
                                                                                                                                                            • Which versions am I running?
                                                                                                                                                            • Do the versions have security vulnerabilities?
                                                                                                                                                            • Will I be able to build the exact same version in 24 months?

                                                                                                                                                            Nix answers these pretty will and fairly accurately.

                                                                                                                                                        2. 2

                                                                                                                                                          Unless you’re compiling everything from scratch on the machine starting from the kernel.

                                                                                                                                                          You mean starting with writing a bootstrapping compiler in assembly, then writing your own full featured compiler and compiling it in the bootstrapping compiler. Then moving on to compiling the kernel.

                                                                                                                                                          1. 1

                                                                                                                                                            No no, your assembler could be compromised ;)

                                                                                                                                                            Better write raw machine code directly onto the disk. Using, perhaps, a magnetized needle and a steady hand, or maybe a butterfly.

                                                                                                                                                            1. 2

                                                                                                                                                              My bootstrapping concept was having the device boot a program from ROM that takes in the user-supplied, initial program via I/O into RAM. Then passes execution to it. You enter the binary through one of those Morse code things with four buttons: 0, 1, backspace, and enter. Begins executing on enter.

                                                                                                                                                              Gotta input the keyboard driver next in binary to use a keyboard. Then the display driver blind using the keyboard. Then storage driver to save things. Then, the OS and other components. ;)

                                                                                                                                                            2. 1

                                                                                                                                                              If I deploy three Go apps on top of a bare OS (picked Go since it has static binaries), and the Nginx server in front of all 3 of them uses OpenSSL, then I have one OpenSSL to patch whenever the inevitable CVE rolls around. If I deploy three Docker container apps on top of a bare OS, now I have four OpenSSLs to patch - three in the containers and one in my base OS. This complexity balloons very quickly which is terrible for user control. Hell, I have so little control over my one operating system that I had to carefully write a custom tool just to make sure I didn’t miss logfile lines in batch summaries created by cron. How am I supposed to manage four? And three with radically different tooling and methodology to boot.

                                                                                                                                                              And Docker upstream, AFAIK, has provided nothing to help with the security problem which is probably why known security vulnerabilities in Docker images are rampant. If they have I would like to know because if it’s decent I would switch to it immediately. See this blog post for more about this problem (especially including links) and how we “solved” it in pump.io (spoiler: it’s a giant hack).

                                                                                                                                                              1. 3

                                                                                                                                                                That’s not how any of this works. You package the bare minimum needed to run the app in the Docker container, then you front all your containers with a single Nginx server that handles SSL. Meanwhile, there are plenty of great tools, like Dokku for managing Docker based infrastructure. Here’s how you provision a server using Let’s Encrypt with Dokku:

                                                                                                                                                                sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
                                                                                                                                                                okku letsencrypt:auto-renew
                                                                                                                                                                

                                                                                                                                                                viewing logs isn’t rocker science either:

                                                                                                                                                                dokku logs myapp
                                                                                                                                                                
                                                                                                                                                                1. 1

                                                                                                                                                                  OK, so OpenSSL was a bad example. Fair enough. But I think my point still stands - you’ll tend to have at least some duplicate libraries across Docker containers. There’s tooling around managing security vulnerabilities in language-level dependencies; see for example Snyk. But Docker imports the entire native package manager into the “static binary” and I don’t know of any tooling that can track problems in Docker images like that. I guess I could use Clair through Quay but… I don’t know. This doesn’t feel like as nice of a solution or as polished somehow. As an image maintainer I’ve added a big manual burden keeping up with native security updates in addition to those my application actually directly needs, when normally I could rely on admins to do that, probably with lots of automation.

                                                                                                                                                                  1. 3

                                                                                                                                                                    you’ll tend to have at least some duplicate libraries across Docker containers

                                                                                                                                                                    That is literally the entire point. Application dependencies must be separate from one another, because even on a tight-knit team keeping n applications in perfect lockstep is impossible.

                                                                                                                                                                    1. 1

                                                                                                                                                                      OS dependencies are different than application dependencies. I can apply a libc patch on my Debian server with no worry because I know Debian works hard to create a stable base server environment. That’s different than application dependencies, where two applications are much more likely to require conflicting versions of libraries.

                                                                                                                                                                      Now, I run most of my stuff on a single server so I’m very used to a heterogeneous environment. Maybe that’s biasing me against Docker. But isn’t that the usecase we’re discussing here anyway? How someone with just a hobbyist server can run Mastodon?

                                                                                                                                                                      Thinking about this more I feel like a big part of what bothers me about Docker, and therefore about Clair, is that there’s no package manifest. Dockerfile does not count, because that’s not actually a package manifest, it’s just a list of commands. I can’t e.g. build a lockfile format on top of that, which is what tools like Snyk analyze. Clair is the equivalent of having to run npm install and then go trawling through node_modules looking for known vulnerable code instead of just looking at the lockfile. More broadly, because Docker lacks any notion of a package manifest, it seems to me that while Docker images are immutable once built, the build process that leads you there cannot be made deterministic. This is what makes it hard to keep track of the stuff inside them. I will have to think about this more - as I write this comment I’m wondering if my complaints about duplicated libraries and tracking security there is an instance of the XY problem or if they really are separate things in my mind.

                                                                                                                                                                      Maybe I am looking for something like Nix or Guix inside a Docker container. Guix at least can export Docker containers; I suppose I should look into that.

                                                                                                                                                                      1. 2

                                                                                                                                                                        OS dependencies are different than application dependencies.

                                                                                                                                                                        Yes, agreed.

                                                                                                                                                                        Thinking about this more I feel like a big part of what bothers me about Docker, and therefore about Clair, is that there’s no package manifest. Dockerfile does not count, because that’s not actually a package manifest, it’s just a list of commands. I can’t e.g. build a lockfile format on top of that, which is what tools like Snyk analyze.

                                                                                                                                                                        You don’t need a container to tell you these things. Application dependencies can be checked for exploits straight from the code repo, i.e. brakeman. Both the Gemfile.lock and yarn.lock are available from the root of the repo.

                                                                                                                                                                        The container artifacts are most like built automatically for every merge to master, and that entails doing a full system update from the apt repository. So in reality, while not as deterministic as the lockfiles, the system deps in a container are likely to be significantly fresher than a regular server environment.

                                                                                                                                                                    2. 1

                                                                                                                                                                      You’d want to track security vulnerabilities outside your images though. You’d do it at dev time, and update your Dockerfile with updated dependencies when you publish the application. Think of Docker as just a packaging mechanism. It’s same as making an uberjar on the JVM. You package all your code into a container, and run the container. When you want to make updates, you blow the old one away and run a new one.

                                                                                                                                                              2. 4

                                                                                                                                                                I have only rarely used Docker, and am certainly no booster, so keep that in mind as I ask this.

                                                                                                                                                                From the perspective of “install this giant blob of software”, do you see a docker deployment being that different from a single large binary? Particularly the notion of the control that you “give up”, how does that differ between Docker and $ALTERNATIVE?

                                                                                                                                                                1. 14

                                                                                                                                                                  Ideally one would choose door number three, something not so large and inauditable. The complaint is not literally about Docker, but the circumstances which have resulted in docker being the most viable deployment option.

                                                                                                                                                                2. 2

                                                                                                                                                                  You have the dockerfile and can reconstruct. You haven’t given up control.

                                                                                                                                                                  1. 5

                                                                                                                                                                    Is there a youtube video I can watch of somebody building a mastodon docker image from scratch?

                                                                                                                                                                    1. 1

                                                                                                                                                                      I do not know of one.

                                                                                                                                                              3. 3

                                                                                                                                                                I totally agree as well, and I wish authors would s/Mastodon/Fediverse/ in their articles. As others have noted, Pieroma is another good choice and others are getting into the game - NextCloud added fediverse node support in their most recent release as a for-instance.

                                                                                                                                                                I tried running my own instance for several months, and it eventually blew up. In addition to the large set of dependencies, the system is overall quite complex. I had several devs from the project look at my instance, and the only thing they could say is it was a “back-end problem” (My instance had stopped getting new posts).

                                                                                                                                                                I gave up and am now using somebody else’s :) I love the fediverse though, it’s a fascinating place.

                                                                                                                                                                1. 4

                                                                                                                                                                  I just use the official Docker containers. The tootsuite/mastodon container can be used to launch web, streaming, sidekiq and even database migrations. Then you just need an nginx container, a redis container, a postgres container and an optional elastic search container. I run it all on a 2GB/1vCPU Vultr node (with the NJ data center block store because you will need a lot of space) and it works fairly well (I only have ~10 users; small private server).

                                                                                                                                                                  In the past I would agree with out (and it’s the reason I didn’t try out Diaspora years ago when it came out), but containers have made it easier. I do realize they both solve and cause problems and by no means think they’re the end all of tech, but they do make running stuff like this a lot easier.

                                                                                                                                                                  If anyone wants to find me, I’m @djsumdog@hitchhiker.social

                                                                                                                                                                  1. 2

                                                                                                                                                                    Given that there’s a space for your Twitter handle, i wish Lobste.rs had a Mastodon slot as well :)

                                                                                                                                                                  2. 2

                                                                                                                                                                    Wait, you’re also forgetting systemd to keep all those process humming… :)

                                                                                                                                                                    You’re right that this is clearly too much: I have run such systems for work (Rails’ pretty common), but would probably not do that for fun. I am amazed, and thankful, for the people who volunteer the effort to run all this on their week-ends.

                                                                                                                                                                    Pleroma does look simpler… If I really wanted to run my own instance, I’d look in that direction. ¯_(ツ)_/¯

                                                                                                                                                                    1. 0

                                                                                                                                                                      I’m waiting for urbit.org to reach useability. Which I expect for my arbitrary feeling of useability to come about late this year. Then the issue is coming up to speed on a new language and integrated network, OS, build system.

                                                                                                                                                                      1. 2

                                                                                                                                                                        Urbit is apparently creating a feudal society. (Should note that I haven’t really dug into that thread for several years and am mostly taking @pushcx at his word.)

                                                                                                                                                                        1. 1

                                                                                                                                                                          The feudal society meme is just not true, and, BTW, Yarvin is no longer associated with Urbit. https://urbit.org/primer/

                                                                                                                                                                      2. 1

                                                                                                                                                                        I would love to have(make) a solution that could be used locally with sqlite and in aws with lambda, api gateway and dynamodb. That would allow scaling cost and privacy/controll.

                                                                                                                                                                        1. 3

                                                                                                                                                                          https://github.com/deoxxa/don is sort of in that direction (single binary, single file sqlite database).