The Blog is Back!

After quite a long time being inactive, I have finally brought back the blog from its grave. There have been a multitude of reasons why I stopped publishing:

  1. I had a lot going on in my research project. Obviously, when one spends an entire day going through code, trying to analyse results etc., no matter how interesting it is, once you get home, you want to relax. Gaming is epic!
  2. 3rd year started soon after my interrnship ended. Therefore I had little time to think about what to write!
  3. I did not want to publish on the architecture it was based on at the time (more on that in a bit).

So, what has changed?

Blog backend

Originally, the 4-5 posts I had up were written in Markdown, and then parsed with Nuxt Content to present the posts. That's awesome for something that is 4-5 posts long, however if you're intending for something much larger, trying to keep track of 30+ MD files each with their own metadata is, frankly, something I would not wish on my worst enemy. Don't even get me started on metadata analysis...

So, I obviously needed a CMS. The question is, which one? I had a bunch of priorities here:

  1. Low cost, decent free tier. I can understand that CMS's require payment when its getting heavily used, but as a student I want something that I could stuff a lot in before having to pay - especially since the blog is at such a small scale right now.
  2. TypeScript support. Types are great, so is Type theory, a branch of mathematics built to study types. We all know however that category theory is easily the most superior branch of maths.
  3. Flexible API - something I can query easily and then put it through a load of TypeScript machinery to render easily. Also something I can easily integrate with Nuxt 3.
  4. Extensible - I need $\LaTeX$ support, code support, image support, file download support etc. Many CMSes and their ecosystem have support for these.
  5. Performance. I don't want to ruin your day because a blog post from a random guy in the UK took 4 seconds too long to load.
  6. Open-source. This is more of a personal preference than a necessity.

So what was I left with?

.I narrowed it down to 3 choices really: Sanity, Contentful and Strapi. Looking at the features they offer, all 3 are basically matched. Due to that, I knocked off Contentful for not being open source - that being said, it is probably the most performant one. However for my cases, the performance differences were so minor it didn't matter. That being said, I didn't try to create 2385942727 blog posts at once to test it.

Alright, so it's Sanity or Strapi. To set the context here, my website is now a project already, so I want something that is smooth to integrate and easy to maintain. Both provide a GraphQL API, which wasn't necessary but both also do REST APIs which is what I want. Both integrate with TypeScript really well. However I found getting Sanity up and running, and rendering content with Nuxt felt much easier than with Strapi. Perhaps it's just because I am a noob.

Other changes

  • I've added a Notes page where I host my typeset notes for physics undergraduates mainly. These are updated as I go along.
  • My Projects section on my homepage is updated.

What is upcoming?

  1. The return of the table of contents
  2. The rest of the blog posts!
  3. More blog posts!
  4. Potentially more notes.

Well if you got here welcome, you may or may not have actually read through all of that! Whatever you did, thanks! Keeps me going.

Have this beautifully-rendered equation of a circle in the $xy$-plane with radius $r > 0$:

\begin{align} x^2 + y^2 = r^2 \end{align}