DevLog 5: Buttload of features and changes

Default banner

Published on:

This one is huge, well, huge as in effort, not the features themselves. I am now in a point where I am happy with how the codebase is and how easy it is to implement new features.

Let’s get started with the new features.

Home page customization.

I added ability to customize home page content. It could be a simple markdown or list of posts. It’s possible to configure posts in multiple categories and also set the number of posts per category if needed. The post count defaults to 5.

Profile page customization

Added user’s posts in their profile page. Just like in the home page, users should be able to configure what categories to show in the profile page.

We already had a banner for pending users, now it is improved, and we also show a similar warning banner for the suspended users. Yes, Admin can suspend users now if they are being naughty.

IndieAuth refresh

Ability for the IndieAuth users to refresh their profile. This is useful for anyone who logs in using IndieAuth and wants to update their profile description, photo, and social links with a single click.

Path Updates

Updated category route from /categories/<title> to /categories/<url_path>, yeah, we used to have title as the URL until now, I’m not sure why I did that, it was a horrible idea. I fixed it now. But no, you cannot edit the URLs, the implementation will convert the title into a URL-friendly format and use it.

Added url_path field to category creation and editing forms. This way you can set what the Category path can be instead of accessing it by the category name.

Add user level path for categories and posts, now we have the following:

  • /users/<username>/posts : all posts by the user
  • /users/<username>/posts/<category> : all posts by the user for a category
  • /users/<username>/posts/<category>/<post> : the post

Caching

This needs a lot of improvements, but I am trying to use Rocket’s in-memory caching for most commonly used requests. It works well, and I might switch to redis at some point instead of this to take the burden away from the server.


Interactions

No interactions yet.

Send a Webmention
React using webmentions Enter the URL of your post that mentions, likes, reposts, or replies to this post.