2
4 Comments

Best programming language or tool to create my first mini-SaaS?

I want to create a small SaaS tool. I only know HTML and CSS now, but want to learn to program.

It will be a dashboard that gives custom recommendations to the user based on the info from an external API (similar to Opteo.com, but simpler and with a different focus).

I want something easy to learn/use and secure. It doesn't have to scale a lot (I don't expect thousands of users).

I've read a bit about this and seen articles with very different recommendations

  • Python

  • RoR

  • Javascript (maybe Node.js+React)

  • A starter kit such as https://serverless.page/

  • No-code tools (+ custom code for the connections with the API)

I know I can probably do it with any of those tools, but I want to check different opinions and especially why you recommend one option over the others.

Thanks a lot!

on May 10, 2022
  1. 2

    Based on what you've said (wanting to learn to program + an easy-to-learn/use and secure tool), I recommend picking either RoR or Django (Python equivalent of RoR).

    Both are "batteries included" frameworks that do a lot to coerce you towards building a reasonably sound and secure app. In other words, they provide everything you need out of the box to spin up a production-ready CRUD app, and they take care of "wiring" all of this up, too. This is important because there are a million ways you can shoot yourself in the foot if you have to start putting these pieces together on your own.

    Of the two, I'd lean towards Django, simply because of Python. Python is a good first language if you don't have any programming experience. Some people say it's "easier" than other languages, and, to a limited extent, it kinda is. What makes it really great, however, is the rich ecosystem around it. Should you choose to go beyond basic web dev, Python will facilitate it. (Of course, the argument could be made that JS would be a better first language for full-stack web dev... but that's a whole other debate.)

    As for the negative of the RoR/Django approach, both come with a "high learning curve." However, trust me on this one--the learning curve required to get around Django/RoR is much lower than that of learning to (properly) put all the pieces together yourself.

    Yes, you will spin up a basic "Hello World" in frameworks like Flask/Express/etc. in a 10th of the time. But once you start trying to handle users and permissions, security, database models, etc., the time to productivity in RoR/Django becomes much lower.

    1. 1

      Thanks a lot! Sounds like Django is a great choice for me. What do you think about using a SaaS Starter Kit (and using my own Django code for the rest of the app), to save some time and avoid rookie mistakes/problems in the basic stuff? I've just found out that there are a lot of kits (https://phlaunchchecklist.com/saas-starter-kits/).

      1. 1

        That's a bit hard to say without knowing exactly what your use case will be, or being able to audit the starter kits themselves.

        Sticking with Django for an example, I took a look at SaaS Pegasus (the most expensive Django kit listed on the PH page).

        The positive is that it seems to be well put together; the documentation looks decent, and the user flows in the guy's videos make sense. If your app is literally just fetching data from (an) API(s) and presenting it to a user, it could be the foundation that will let you ship in an insanely short amount of time.

        But that's assuming you're happy to fit into the mold provided. If you don't fit the mold, the starter kit could be a massive waste of time.

        For example, let's say the kit is only set up for subscription-based pricing with Stripe as the payment processor (which looks to be the case, but don't take my word for it). But what if you want usage-based pricing with Paddle? What do you do now? If you're going to have to fiddle around to extend/adapt what's there, you could be in for a nasty surprise.

        This is even more so for a beginner who might have trouble wrapping their head around some of the patterns and architecture decisions the dev made. It may well end up being quicker to build a crude accounting system to track credits/usage, drop Paddle.js into your HTML template, and then set up a couple of webhook endpoints, all of which you would have no trouble doing in a few hours if you had managed to create a functioning SaaS app in the first place.

        Also, be aware that apart from payments, the guts of what's being provided (user management and teams) is already built into Django (in other words, if you follow the manual, you're highly unlikely to get any of this stuff wrong). Essentially, this kit tacks on an email flow to what Django calls "groups" (which is quite nice if that fits with your vision), and the automatic Gravatar image (which is basically just MD5 hashing the user's email and tacking that onto a URL). Oh, and it's providing the HTML templates so it looks pretty.

        Don't get me wrong, what is provided could be a huge time saver. To reiterate, if you're happy to fit the provided mold with only minor modifications, your app is already half-built. But if you need to customize much, you could end up wasting more time than if you'd just built from scratch. That's the moral of the story.

        1. 1

          Thanks again! That was super helpful! 👏👏👏

Trending on Indie Hackers
1 small portfolio change got me 10x more impressions User Avatar 31 comments AI Is Destroying the Traditional Music Business and Here’s Why. User Avatar 29 comments Fixing my sleep using public humiliation and giving away a Kindle User Avatar 23 comments From 1k to 12k visits: all it took was one move. User Avatar 11 comments Retention > Hype: What Are We Really Chasing as Builders? User Avatar 9 comments The Risk that Most people don't know About. User Avatar 6 comments