Tech Decisions

Choosing a Tech Stack for a New SaaS App

These past few days I’ve been thinking through the tech stack that I’ll be using for my new Dev Knowledge Base app. The prevailing opinion is to use what you know, what you’re good at; that building a new app is not the time to be learning a whole new stack.

There is truth in this. By day I’m a back-end web developer. Choosing the latest .Net Core for the back-end of DevRecall was a no-brainer. Why pick something different when there’d be a steep learning curve with many unknowns along the way? Especially considering that the latest .Net Core is as sweat as any trendy new language of the day.

But my front-end skills are weak, at least on the web side. I can build strong UIs for desktop, not so strong for web apps. It’s something I’ll have to learn regardless, so why not learn using a framework that adds value to the day job as well as to the app I’m building?

Years ago I did some work with jQuery, but it looks old and clunky now. My raw JavaScript skills are barely there — uncalled for in the day jobs of recent years, and unnecessary in the desktop UIs I’ve been building lately.

So I chose Vue.

I’ve dabbled with React but never liked the feel of it. Angular looks a bit on the complex side for putting together what will be little more than a prototype app, an alpha version — at least initially. There’s always a lot to learn when you build something new, especially when part of what you have to build lies outside your comfort zone. And speed is important. A version 1 has to go out the door as soon as possible. Learning React or Angular would push that release date too far.

I’ve been working through some beginner and intermediate Pluralsight videos on Vue. Pluralsight is an interesting learning resource. I find the quality of the material to be consistently strong, though the voice overs tend to the slow side — easier to follow at a decent pace if you increase the speed to 1.2. The supplementary material, Github repos and such, is also weighty.

If you’re new to Vue, or unsure whether you should be looking to Vue, React or Angular for your app, I’d recommend Vue.js: Big Picture by Daniel Stern, followed by Vue: Getting Started by John Papa.

For the hosting, I was initially thinking of Azure, which is the cloud of choice in recent years at the various companies I’ve contracted at. But I’ve never been happy with Azure — at least not with their managed instances — which is what I’d be looking to use for initial versions of DevRecall. Too many app restarts for no obvious reason, and too many issues with resources maxing out when pushing new releases.

Much as I hate to add yet another new piece of tech to my have-to-learn list, I’ll probably be looking at AWS for version 1. It helps that I burned though my years of free Azure stuff by way of the now rebranded Bizspark program years ago. No more free resources from Microsoft, but Amazon seem to have a never ending stream of free credits for start-ups that I should be able to avail of via one of the many back doors that seem to be made deliberately available.

SQL Server for the database of course — why change that? I’ve used SQL Server just about everywhere for the past ten years, and if it’s good enough and fast enough and robust enough for Stack Overflow, it should be good enough for DevRecall.

In terms of front-end components, well that’s another post.

To hear more from me, you can follow me on Twitter or on LinkedIn.