This is a homepage blog powered by Tuvix, which is the platform running this page. It is based on Plerd, but uses Mojolicious (A next generation web framework for the Perl programming language.) to render dynamic instead of static pages.

It uses pretty much the same tecnique as Plerd does to create posts, ie you put markdown docs in a source directory somewhere, but because this is a dynamic page, it stores the content in an sqlite database with DBIx::Class. That storage can be considered to be ephemeral. All required metadata is still persisted in the the source file.

The setup running this page is described here. Basically the source files are put in dropbox, and there is a server running which runs both tuvix and dropbox in docker containers, and they’ve been put behind an nginx reverse proxy which terminates SSL.

The source files should be the the “admin interface”: All content generation and moderation and such things should consist of putting files in folders and then the rest will happen automatically. I don’t know yet how practical this is gonna be in the future but if it is to cumbresome to work with, it’ll have to go in the db.

If you want do do this and too, and have a page just like mine, you can follow the instructions which I have outlined above, and you will get started in no time.

The two corner stones of Tuvix is Plerd and Mojolicious, who come together in much the same way as Neelix and Tuvoc did when the transporter merged them into Tuvix in the Star Trek: Voyager episode which has the same name (s2e24). (It’s a truly great episode which exemplifies what I like about Star Trek: The sci fi setup can create moral and philosophical dilemmas which we are sure to encounter in the future).

Furthermore while I do seek feature parity with Plerd, I will also add what ever stuff I want to the mix (such like the undocumented extension support (a PR for adding this functionality to Plerd is opened), the undocumented websocket support and support for other undocumented things and features.)


Added to the mix is also the Tuvix::InstaPlugin extension which creates Plerd::Posts from jpeg images and applies appropriate filters and other such thingsto them. Not only are they show cased on this exact blow, but I have also made a filter demo here. This is indeed the project which kicked off this subsequent Tuvix project:

It enriches the pictures by adding filters and creating some reverse geo lookups aswell as som object recognition to the images which then gets added as tags or else added to the Title. I was going to have some sort of geo map page too, which would be great, I think it’s flickr who has this, and the apple camera. It would be cool to have some sort of such map added with pins and stuff.

Project Status

All of this is under construction still; Neither Tuvix::InstaPlugin nor Tuvix has yet any release versions. (but the progress will be written down on this excact page).

Here are some things which needs to be in place before ga:

  • Fully verified webmention support.
  • Comment support.
  • Infinite scroll support which also works in mobile browser with low res. Also which can fall back to AJAX if webmentions are disabled.
  • Content moderation by dragging files between folders (webmentions, comments etc.)
  • Documentation of all undocumented things.
  • ✓ Updated search. DONE
  • ✓ migrate to bootstrap 4. DONE
  • ✓ Customizable themes. DONE
  • Schema migration support (including versioned schema)
  • ✓ less bugs in the watcher logic. DONE
  • less bugs overall
  • Setup job or somesuch which can create the desired directories and themes with config.
  • Translate relatie URL:s => absolute ones in the RSS Feed.
  • add more of Plerds basic functionality to Tuvix (reading time, twitter support and that facebook app thing)

Then there are some things which needs to be in place but not before ga:

  • federation of sorts between different installations, maybe something akin to webmention or similar, like a feed which sends webmentions for likes or something. TBD
  • make it work better across multiple machines, so that it can scale more.
  • The map detailed above

Next post: a filter demo

Previous post: Spring Early Afternoon at Stortorvet, Kvadraturen