It was time for a change

I had a really clunky angular setup prior, but I let the VM bill slip one day due to an expired credit card, so everything was shut down.

That got me thinking… even if I could get everything back, did I want to?

What purpose did it serve? How was I building it???

I know it was npm and angular cli, but there was docker involved, and I had forgotten some choices I made getting things setup. It was angular with a ngnx server in centos7, and it was using expressjs and mongo just for no reason other than I wanted to play, but it really served no purpose.

I think I chose Angular because that’s what I was used to seeing. I didn’t really have a goal in mind, so I chose the shiny tool that I thought might look best if I showed someone the site. Had I ever actually started to pump out content, though, I would have quickly moved to the next technology and been left with Frankenstein’s SPA.

Which led to some thinking. What did I want this site to be? How much am I willing to pay for a front end for whatever it is that I want to do here?

I don’t even know if I have answers to those questions yet, but I do know I settled on some principles, and I’m going to attempt to define them here:

  • Keep it simple
    • Complexity ought to be avoided. I want the simplest path to adding content.
  • Low cost
    • I understand that hosting has a cost, but I don’t have a lot of content, so I want to start as small as possible
  • Little to no manual steps
    • I don’t want to have to build a site, then upload it, then do a docker-compose command to start things. I want to push code and move on.
  • Reliability
    • Who wants to worry about their simple site that’s cheap? Time is money.
  • Scalable
    • If I get a good idea, I want something that lets me turn knobs and scale things out.
  • Flexible
    • I don’t want to be pigeon holed into using X technology because it’s only supported on version 7 of xyz framework, which is a transient dependency of xyy framework.
    • Get out of my way, pipeline!
  • Blog aware
    • Whatever solution I am using needs to support blogging out of the box.
  • Secure
    • I don’t know that anything is ever 100% safe, but I need this whole site to be as safe as possible.


I could probably go on, but you (whoever you are) get the point. I had all these wants and it became clear that I ought to give pay-as-you-go friendly Azure a try. I moved my domain name Datti.NET to being hosted on Azure DNS, which meant changing nameservers and setting up my email records on a new provider. That had a slight learning curve, but it would have been no different moving from Azure to my original provider.

I also figured the best way to go would be to host the site in an Azure Static Web Page for maximum efficiency and cost effectiveness. Right now (as of writing this (March 11th, 2023)), it’s hosted on the free plan, because it’s not monetized yet. I have all of Azure to play around with, though, so I expect to start building some simple SaaS solutions very soon.

Thus, I got a HTML5 template building and publishing via GitHub actions, and I even have Jekyll built right in, and this blog post is actually just being written in a _posts markdown file. As soon as I publish this branch, GitHub actions will build everything up and produce a html page for this post, as well as a link in the index. Right now I’m just showing the 3 most recent posts, but in the future I will have a full calendar/tree of some sort.

Best of all… it’s not wordpress!!

Whenever I want to write a blog post, I just create a new file in the _posts folder with the right filename and format (this first post is the perfect example!). If I push to another branch and create a pull request, I get a separate url to view things on, and I can even test locally before doing that. The full site runs through Jekyll, so I have templates, layouts, collections, and anything else I’ve forgotten that Jekyll gives me. Best of all, so far I’m only paying $0.50/month for the Azure DNS hosting, whereas before I had to pay at least $5 monthly for my VM and host everything myself! That isn’t much if the site is something that generates income, but it needs to start as small as possible, because up front it’s just a sink. Until I have something that I can monetize, it’s just a sink, and I need to empty resources into it as slowly as possible!

Now, I can do whatever I want, and I have this pre-processing pipeline behind it. I’m not locked into any specific JS or backend frameworks now, and I’ve already laid the foundation for simple signup/signin with Azure ADB2C. I’m already doing it, so now I need to give others a reason to sign up and plug in their payment info. I plan to do so by building simple applications, hosting them here, and putting them behind a paywall. I have no ideas yet, but I am good at this, and if the problem is simple enough, I will build a small azure function and enough piping to attach a login to it and track requests. Tying these to a token system would be fairly trivial, so I expect to entice folks with free tokens, and then charge per token or subscription based models for bulk discounts.

Maybe I never get an idea, and this just becomes a toy for me. That is ok, because this is currently a $0.50/month toy. I could double the cost and be ok forever, so I don’t mind if that’s the case. There are a lot of people out there, and I’m a pretty good programmer, so if I can solve the right problem, and I have the right systems in place to monetize it, it all comes down to execution and scale.

Here we go. I hope this works!

If you’re reading this, thank you. I took the time to write it, and I appreciate you taking the time to read this. You could be doing almost anything else, but you chose to read this, and that is amazing. I would truly be humbled to know that you read this, so please send me an email. I would be delighted to hear from someone such as yourself, you amazing human being. Be prepared to prove you are human, though… like really, I can tell if you’re ChatGPT 😂