Advice on what tech stack to use

I'm thinking of building an app which has logic in a set workflow.

The app will send lots of SMS and emails. A step in the workflow may involve an email being sent to a user. Another step may be triggered when a user clicks the link in the email.

My first instinct was to build it in something like rails but I was wondering if anyone has any other ideas. For instance I am considering trying out serverless and have multiple lambdas for each step. Does anyone know of any good frameworks that make creating complex workflows/state charts easy?

I imagine with sending lots of emails and text messages, it would be good to have some kind of message queue to avoid messages being lost.

  1. 4

    Use what you know.

    Outsource as much as you can to services like twilio or similar, that lets you focus on your USP unless you're an SMS or email services yourself.

    Don't overthink this, it will only lead to losing interest

    1. 1

      Thanks, will remind myself of this through the build

  2. 2

    I think Jets is something similar to Rails but for serverless. But why serverless? Its mostly used for cost savings and if you're just starting out you can run your app on aws free tier and it'll do the job

    1. 1

      Nice I'll take a look. I was thinking of using as many services as possible, eg auth0, twilo, chargebee. Wasn't sure how much it would cost to host. Figured serverless might be an option since if no one uses it then it's a low cost, vs a server that's up all the time. Think il go down the sever route though and use what I know

      1. 2

        You're overengineering. Having separate services is good when you're big and you can deploy code changes independently. Stick everything in the model and blast away

  3. 2

    I have been working with Rails since 2009 or so and I wouldn't change it with anything else. I have tried several other things over the years (most recently Elixir/Phoenix) but Rails' productivity is just immense, and that's the main reason why I keep recommending it.

    1. 1

      Yeah it's pretty powerful

  4. 2

    Message queues and high volumes of evented data are what the Erlang VM excels at. This is a major reason why RabbitMQ, early version of FB messenger, Whatsapp, Discord, were all written in Erlang or Elixir (which runs on the same VM).

    You can build this kind of tech with lower-level tools like C++ (as FB eventually did), but Elixir + Phoenix framework hits a sweet spot in terms of productivity. Of course there are other highly productive frameworks out there and Rails is first among them. The only issue is that you'll need to stitch together more external services like Nginx, Redis, Sidekiq, etc to handle all of the moving parts as it grows, whereas the Erlang VM can handle the full system seamlessly.

    I think the answer for you depends on what you mean by "lots". For lower values of "lots", you should probably just build it in Rails and get it shipped. For higher values, that will be considerably more work than learning Elixir.

    Using lambdas will likely take more time but work fine in the first case. They'll be expensive for high volume usage.

    1. 1

      Thanks for all that info. All makes sense. Will go with what I know and try get something out as past as possible

  5. 2

    The best tech stack for your side project is the one you are most familiar with.

    You have to pick something really funky in order to bottle neck soon enough for it to be a mistake.

    1. 1

      Sweet, yeah was thinking that

  6. 2

    It might be worth considering something like sendinblue which handles SMS/Email. With transactional email/sms, each send is essentially an API call.

    1. 1

      Thanks will check that out. Heard of twilo but will look into sendinblue to

  7. 2

    I've been using flask for back-end stuff than comes the fast-api which essentially do the same quite flexible yet requires a lot of work to set up compared to others. This month I go over vue then next and end up in react documentation. I don't enjoy javascript much so I personally don't advice it to others.

    Since you are familiar with rails what keeps you back to do it with it? I've seen a few tutorials where someone build working clones of popular sites within 3 hours I was like wtf. :) I admire rails but looks too opinionated that if I wanted to do some custom stuff I'd broke everything.

  8. 1

    I wrote a blog post series that is somewhat relevant:

    Choosing your web development stack

    If you are considering NodeJS you might find the 3rd and 4th articles listed relevant.

  9. 1

    I used Django for building my latest start-up. Great framework with an active community and plenty of packages to help quickly build out something.

    1. 1

      We also used Django / Python at ContractsCounsel - which for us was what we are familiar with. It's a great framework in a great language, but still best to use what you can move fastest in.

Trending on Indie Hackers
Aim to be valuable and you'll be indispensable. 24 comments I made $804 in February 17 comments How hard should you work? 16 comments NFTs are a dangerous trap 12 comments Songbox - finally - breaks $1000 MRR 7 comments Tesla closes its forums and raises the anger of fans 6 comments