figbert.com-website

[ACTIVE] the website and home of figbert on the clearnet
git clone git://git.figbert.com/figbert.com-website.git
Log | Files | Refs | README | LICENSE

ideating-tragit.md (4714B)


      1 +++
      2 title = "Ideating Tragit"
      3 date = 2024-07-30
      4 [extra]
      5 type = "post"
      6 +++
      7 
      8 There are many, many `git` forges to pick from. I'm going to make
      9 another one—but before I do, I'm going to do a little thinking out loud,
     10 and outline the what and why of this side project I'm embarking upon.
     11 
     12 <!-- more -->
     13 
     14 Decentralization is hugely important for the long-term health of the
     15 internet. Indeed, this quality has been fundamental to the network since
     16 its inception. This is easy to forget, and hard to see, now. But email
     17 was not always Gmail and `git` was not always GitHub.[^1]
     18 
     19 A big reason that these protocols have become so centralized is because
     20 the companies that offer these services have genuinely innovated on
     21 form. Google *invented* effective, user-friendly webmail. They pioneered
     22 email's contemporary security features and user-facing advancements.
     23 They were rewarded for that with users.
     24 
     25 Nowadays, however, these capabilities no longer require the dedicated
     26 engineering of whole teams of Google 10x-ers. With the mature and
     27 effective tools and languages available to every developer, the
     28 evolution of the open-source ecosystem, and the integration of big-corp
     29 features into the open standards of the web, self-hosting does not have
     30 to mean settling for less.
     31 
     32 This has played out most clearly, again, with email. If you wanted to
     33 email people, you used to have two choices: assemble the world's largest
     34 house of cards and hope the incantation you crafted from terrifying
     35 words that make no sense like [dovecot] and [mailcow]—which represent
     36 interconnected services that do things you only sort of
     37 understand—actually works with any meaningful consistency, or sell out
     38 to the Oligarchs. No longer! Want one open-source binary to take care of
     39 sending, receiving, security, accounts, redirects, and everything else?
     40 It exists, and it's called [maddy], and I've been using it to host my
     41 email for years now with no effort.
     42 
     43 `git`, on the other hand, is very much still in the first stage. You
     44 can, of course, use [GitHub]. It is a colossus, practically unavoidable
     45 as a developer, and enabled my start as a programmer. The pull request
     46 collaboration paradigm they created has totally supplanted the
     47 [email-based method] that preceded it. But if you want your code to live
     48 outside of Microsoft's proprietary claws, the process is far from
     49 simple.
     50 
     51 [My own setup] is representative of this problem, and quite janky. It's
     52 a delicate combination of [`stagit`] and the built-in [`git-daemon`],
     53 running via Docker Compose, pointed at the home folder of a bespoke
     54 `git` user. I push to the server over `ssh`, relying on some weird
     55 nested home directory hack that makes me very uncomfortable in order to
     56 have a nice destination string. To publish a repo I have to create two
     57 separate magic files, `git-daemon-export-ok` and `stagit-export-ok`.
     58 Metadata lives in aptly-named files like `description` and `owner`.[^2]
     59 I clone and pull with the daemon's `git://` protocol. Any changes mean I
     60 have to restart `stagit` so it will generate the relevant pages again.
     61 Collaboration is allegedly facilitated over email with a [crabmail]
     62 instance, but it's been broken since I first attempted to set it up.
     63 The whole thing is rather delicate and rough around the edges, which is
     64 maybe the worst combination of characteristics for an important service.
     65 
     66 I think there's a real opportunity here to build something that could
     67 have an outsized impact on the self-hosted web. I don't want my git
     68 setup to evoke the same feelings as the word "modem." I don't want to
     69 compromise. I want big tech capabilities in a small and efficient
     70 package. So let's leverage ecosystem advancements, think deeply about
     71 how we can [facilitate collaboration], and make something.
     72 
     73 Keep an eye out for some form of [tangible] [deliverable] in this area
     74 sometime (hopefully) soon. I'm probably going to call it Tragit.
     75 
     76 ---
     77 [^1]: I have met a profoundly depressing amount of young programmers who
     78 cannot distinguish the latter two.
     79 [^2]: The latter of which, of course, is purely aesthetic and has no
     80 bearing on security or access rights.
     81 
     82 [dovecot]: https://www.dovecot.org
     83 [mailcow]: https://mailcow.email
     84 [maddy]: https://maddy.email
     85 [GitHub]: https://github.com
     86 [email-based method]: https://git-send-email.io
     87 [My own setup]: https://git.figbert.com
     88 [`stagit`]: https://codemadness.org/stagit.html
     89 [`git-daemon`]: https://git-scm.com/docs/git-daemon
     90 [crabmail]: https://crabmail.flounder.online
     91 [tangible]: @/posts/tangible-deliverables.md
     92 [deliverable]: https://fosstodon.org/@FIGBERT/112734909021642855
     93 [facilitate collaboration]: https://pr.pico.sh