Themis dev diary #4

Since my last update, I’ve now released the 6th alpha of Themis. It’s still not ready for primetime, alas, but I’m making progress. This particular milestone marks the introduction of ActivityPub support, one of the cornerstones of the Themis project. So far, the server can handle incoming Create activities (or post objects by themselves, which it converts into these as per the spec) and follow requests for groups…as long as they come from local users.

In other words, we’re not federating yet, but it’s something. I’ve never implemented a spec of this complexity before, and I’m still working alone. It’s harder than I thought, especially since so much of the AP spec expects you to be online. (In fact, it outright tells you not to deliver to localhost, meaning that I can’t even call Themis compliant until I’m done testing!)

Now, though, I’m taking a break from that and shifting my focus back to the front end. For Themis, this is a kind of SPA using the excellent Vue.js framework and the Vuetify UI library. It’s Material Design, but I’m a strange person. (Okay, you already knew that much.) I like the look of Material Design. It’s clean, uncrowded, and it has what I see as a nice feel. No design spec is perfect, of course, and Material does have some glaring flaws. Vuetify has even more. Still, I think it’s a good starting point.

The screenshot below shows what will become the front page of a Themis server. The login box switches to an account creation form when requested, the right-hand column displays a list of all known groups, and the middle portion will hold a server-specific description that can contain local rules, admin info, or anything else you like. (Editing that information is yet to be implemented.) Other than that, it’s pretty much final. All that’s missing is a logo, which may take someone with more artistic skill—compared to me, that’s anybody.

Because so many people use mobile devices instead of proper desktops these days, I’m also doing my best to make this front-end fully responsive. It’s not mobile-first, because I don’t believe in that philosophy, but Android phones and tablets will be first-class citizens in the Themis network. (I can’t afford to test Apple products, so that’s why they’re not included.)

So, after all that hard work to get 1/3 of the ActivityPub spec implemented, expect some faster progress now. Themis still has a lot of work to go, but I hope to get at least a feature-complete beta version out by October 1st. That’s my target, as it has been all along. Now, I think I can do it.

Leave a Reply

Your email address will not be published. Required fields are marked *