Shrutarshi Basu 

/ notes

Evaluating Blot

Started on May 3, 2022. Published on May 4, 2022. Modified on May 18, 2022.

Site Generators | Websites |

Evaluating Blot

Blot seems like a very good way to turn a Obsidian Vault into a public-facing website.

Blot seems like a good way to turn a bunch of Markdown files into a reasonable website with minimal fuss. Just what I need to get back into the habit of writing and publishing more regularly.

The templating seems like it is amenable to styling in any what way I like, and that should be a good way to make it fit in with the rest of my site. My only concern is having to manage everything via files.

As I’ve noted in [[Website Wishlist]], I want to have more than a traditional blog. While Blot would handle most of the cases, I can’t see a way to make the stream work nicely, mainly due to the emphasis on files.

As another problem it looks like Blot doesn’t work well with having nested folder structure for non-post pages. Everything is rendered and exposed just fine, but the URL is a flat URL based on the title, rather than following the folder structure.

The file structure maps to URLs just fine as long as the files are not in the /Pages directory.

The bigger problem is that the templating language is very primitive. There’s very little logic allowed, other than absence or presence of things in metadata. For example, if I wanted to differentiate between different types of posts, I couldn’t add a type field to the metadata and then match on values like link, quote or note. Instead I have to add fields like link: yes to the metadata. It’s not super annoying, but is definitely inelegant.

The above means that at a first glance, I shouldn’t have one Blot instance trying to represent very different kinds of sites (as defined in [[Website Wishlist]]). So, instead of having one instance that acts as a both a notebook, and a stream, I should have a notebook instance and a stream instance. Otherwise I would have to add Note: true to everything in the notebook, which seems supremely annoying.

All of this makes me think that Blot would be pretty good (or at least acceptable) for hosting a stream, it’s probably not great for a notebook, because it makes it pretty hard to surface the kinds of organizational things I’d want in a notebook (folder structure being one of them).

That being said, it seems to work ok if I limit myself to organizing notes by tag only, and inserting some metadata (like timestamps) by hand. This might get annoying eventually, but I will give it a try for now.

Getting into the styling can definitely be a rabbit hole, but thankfully I can also edit the template locally, and depend on Dropbox sync, so it’s a fairly seamless experience.

Running a mixed blog/non-blog

It seems like Blot is really optimized to run a blog, along with some static pages. If you are trying to build a website that is more than that, you might have some trouble. While the default behavior is to turn Markdown files in to HTML pages, Blot also treats every such file as a “post”, unless they are in a blessed /Pages directory. That by itself may be fine, unless you want to have a large number of static pages alongside the blog. In that case you need to explicitly separate out the non-blog pages by using a custom tag or some such.

Ideally I would just be able to put the blog part in one folder, and the non-blog part in another, but Blot doesn’t support separating out folders in that way. Instead, I would have to add a special tag to one (or both) kind of post every time I wrote a new one. Generating the landing page for the blog (or non-blog) would have to check for presence or absence of the tag. I am afraid this might get slow with a large number of posts (The ByteBaker currently has about 500). It’s not the worst, but it is kinda annoying. Sadly, I am already running into issues with Blot’s limited flexibility.

Useful Questions and Answers

Conclusion

Ultimately blot turned out to be insufficient for my needs. In particular, I want to be able to maintain different subsections under the same site, and this is not a use case that Blot easily supports. Source files in different directories are treated as “posts” and separating them out requires maintaining and using metadata correctly, which is more trouble than it’s worth. While the deployment model is very convenient, being able to structure the site as I want is more important.