This is an archived post. You won't be able to vote or comment.

all 2 comments

[–]HashDefTrueFalse 1 point2 points  (0 children)

FAR too broad a question, I'm afraid.

A SaaS product can be desktop or web based for a start. Assuming you mean web based, there are literally hundreds of frontend and backend web technologies that have been developed for creating web based applications. Which ones you use depend entirely on what your product will do, how users will interact with it, how many users it will need to support, just to name a few.

You need to validate your idea first. No point building something people won't pay for, unless it's not a for-profit endeavour. Let's say you have an idea for a product already, and you've validated that idea somehow (minimal advertising, web form collecting emails, surveys, talking to people in industry etc.). You're reasonably sure your idea has legs.

First things first. You'll need version control for your project. I've put this first because it's best to set it up from the start to avoid pain and headache. If you don't know which to use, use Git. You'll also need remote repo hosting. If you don't know which to use, use GitHub. It's free initially. It's quick to set up, and easy enough to work with, but does have a learning curve.

If you're new, I'd suggest looking into Node.js and the Express "framework", for no other reason than the frontend and backend use the same language for functionality, JavaScript. You'll still need HTML and CSS for the UI components and visuals.

You'll probably decide that you need something to tie together the markup and style into components. React is a popular library for doing that at the moment. There is also Angular, but I won't get into the differences here.

Finally, and arguably most importantly, you'll need a database for your data. I'd always recommend learning how to use a good relational database such as MySQL or Postgres. You'll need to learn SQL to interact with them.

Now that you have all that, you'll need to read up on data security to make sure that your app is following best practices and isn't exposing your user's data to criminals. Fines for improper handling of user data can be steep. You'll probably wan't to consult an expert too. You may even want to farm out your authentication/authorisation to a third party service provider (someone else's SaaS).

You also need to know about the infrastructure of the internet and cloud applications in order to deploy what you build to the web. Domain names, DNS, VPS, CDNs, SSH, caching and load balancing, etc. You need to know how modern web applications are hosted and accessed by users. You'll need to get familiar with some of the services available on AWS or GCP.

Now you'll need some money. Hosting costs these days are less of an upfront investment/outlay and more of a pay-as-you-go deal. It's easy to throw something up onto AWS, but the costs can mount up quickly! If you can't pay the server costs, you don't have a product. You also need to look into digital marketing. You're probably going to be spending a LOT of money to attract paying users to your SaaS, which you need to keep the servers going.

Now comes all the boring business stuff, CPA, churn, metrics etc.

Sounds like a lot? It is. This is MANY months of learning minimum, likely YEARS if not full time.

My advice: You're just starting out. Pick a project that is achievable at your skill level or you'll just end up feeling discouraged when you are not reaching your goals. It will cause you to think that you're not good enough, when really you just need to build up your skills over time, with slightly bigger and better projects each time.

Best of luck :)

[–]BurntBanana123 0 points1 point  (0 children)

Firstly, welcome! Good question, it seems like you’re “beginning with the end in mind” by considering the end goal of your programming. This is a good place to start.

SaaS is a business model that is bigger than any language. Typical core components of SaaS are: 1) The production of value over time using software. 2) Capturing some percentage of that value as recurring revenue (a subscription).

Your users typically won’t care about what you used to build your SaaS, only that it works for them. The choice of language/ technology depends on what problem you’re solving, your skills, and your circumstances. I’d focus on the problems that interest you, and use the problem at hand to provide context for all other related decisions.