Subject: "The Great Migration"

So recently, I made quite the drastic decision to move away from Neocities. It's not as big a change as I'm making it out to be but regardless, I still wanted to talk about it as well as the various intricacies that went into making the whole transition as painless (oh boy) as possible. I also want to talk about what I gained and what I lost when moving between these two services and the main reason why.

The Why

The biggest reason why I moved away was because I purchased a domain. Neocities required you to become a supporter to permit custom domains. I didn't want to fork over 5 dollars monthly (which costs more than the domain by the way) so I decided to move to a different service.

I picked Vercel because of how seamlessly it integrated with Github and how easy deployment became. Building the project is handled remotely on Vercel's servers. The CI/CD pipelines are also completely managed making it possible to go live within just a command or two. It also allows you to preview the websites present on different branches in your repository.

I also wanted to shift to using static site generators. It would make publishing content on the website super simple with content written in markdown files getting automatically converted to HTML files based off of a template. This significantly reduces the amount of effort it takes to actually publish content on my website.

The Good

Believe it or not, I used to manually copy text to a base HTML file to make new articles. I was tired of doing this for every single article I publish so I searched for a solution and found out about these SSGs. I opted for 11ty since it was quite similar in syntax to Jinja which I had already used before in Flask. However, it was a lot more configuration heavy compared to other SSGs which made it a bit of a pain in the ass to setup.

I also had to manually copy the HTMLs back into markdown which was also annoying. I thought of making a script but there were only around 25 articles so I decided to just endure the pain. Honestly, I'm so happy that I made the move because it removed the friction between writing content and publishing content. All of the templates I had to make were just a small one-time investment and never had to be modified again unless I plan on making any layout changes.

Vercel has first-class support for generating the static files with 11ty as part of the build process. I've tried to automate parts of deployment with Neocities before. I built a small toy markdown converter in Python with beautifulsoup and tried to automate the code pushing into Neocities but I scrapped it because of how rigid it felt and how much manual configuration needed to be done beforehand.

Vercel just blows the whole thing out of the water. I also love how much more featureful the service is. It offers AI bot blockers, mitigating scrapers and way better analytics. Despite the base plan of Vercel actually being worse than Neocities, it offered a substantially better developer experience. That alone made me jump ship.

The Bad

I've been glazing Vercel but I don't think its perfect. What I miss about Neocities is the sense of community that it fostered. It felt like everybody there were building their own websites as a means to express their identity. It allowed for easier content discovery and had a lot of social networking features baked right in. However, in the open web, you have to start worrying about search rankings and SEO nonsense.

I also noticed that websites also feel more... exposed? I saw some of the requests that Vercel blocked. A lot of it was automated bots trying to fuzzy search for loose environment files, wordpress admin pages or SQLite databases. All of these were a little unnerving but it is expected of course. Before, Neocities was doing a pretty good job abstracting away the nitty gritty parts of hosting a website but Vercel gave me all the buttons and dials to tweak.

The base plan of Vercel is also a tad bit worse. It only allows a limited amount of requests through its CDNs monthly. There is also a 100GB bandwidth cap which is half of what Neocities offers. Both of these limits are overkill and if I was close to filling these, I would probably move to a higher tier or cheap VPS anyways. It is technically a downgrade which is why I even thought it's worth mentioning but even then, there's no way I'm saturating the limits on either of these services.

My Current Pipeline

I've reduced about 95% of the friction that I had compared to before. To start off, I use Typora as my main text editor. I've fallen in love with it for writing because it has frontmatter support, typewriter mode and much more. It has a minimalist UI to provide a more focused experience. I found a nice theme for it but added my own customisations on top as well, making it look fantastic.

Of course, locally I use 11ty to check and preview the websites before it even reaches Vercel. I use Git to push the changes over to Github on a privated repository and finally merge the necessary changes made into main after a small preview. Vercel automatically detects the merge and it builds the 11ty files. It then finally deploys the files to its servers.

I think I'm very satisfied with this pipeline. It strips away a lot of the tedium with the only bit of friction left being relegated to checking if builds executed properly and nothing looks wonky in the final output. These are mostly painless problems that are needed for quality control anyways.

This is a new era for Monospace. Something more independent. I've been trying to get my site indexed on Google Search but I've been running into small issues here and there. It's a bit of a slow process but I honestly don't mind. Let's see how it goes. That's about it.