Really I'm in need of an idiot's guide to building a backend
I'm trying to build a simple app as a non-developer and struggling to figure out the backend. The app will be a simple chatbot (Microsoft so probably hosted on Azure) which will save and retrieve information to a database. We'll also have a front end dashboard which will also retrieve information from the database. I've built relatively simple local apps as test projects before (no real hosting or security) and find backend quite difficult in terms of resources!
My current plan for the tech stack is:
React
Node JS
Express
MongoDB
For the backend itself I think it will need the capability to run API calls to the database, auth and API calls to the frontend. However I'm super unsure on this and have a couple of questions:
If there are any links or courses that people in a similar position have used to understand this all a bit more that would be super helpful! Any help very appreciated!
Hii,
If your bot needs APIs that only store and retrieve data from DB using queries that means it doesn't have complicated business logic at the backend, then you can try Fireapis(https://fireapis.com) under development by us where you can create APIs for different environments with different endpoints .so we are in testing our MVP product which will be launching soon. If you are interested to try fireapis MVP which solves your basic API need for now. Please ping me in email.we will send the MVP beta product link. Thanks
A few questions;
What is our bot running on? Is it using something like Azure Bot Services or a custom build bot in NodeJS?
How much data do you need to host on with the database?
How much experience have you got with securing, backing up and maintaining infrastructure?
Pros and cons of going through AWS/Azure rather Heroku
That depends entirely on your pros/cons - are you familiar with their services? How much do you want to spend and maintain?
I could imagine using something like Amplify and Amazon Lex to meet your requirements, run serverless and be pretty cheap. I'm 80% sure you could do the same on Azure as well.
How does this change the tech stack?
That depends on the services used. DymanoDB and Cosmos DB could be swapped in for Mongo, if you wanted AWS/Azure to manage them. Or, you could load up some EC2 instances and host them yourself.
Typical processes you run on a backend
Cost, maintenance, resilience, scalability, security and support. These are typically the things you need to think about with a building any system. Do you have someone and a process that can stay on top of security patches for EC2 instances or restore the database from back-ups when a system goes down?
Thanks these are really helpful answers! It's a custom build bot on NodeJs
Limited need for data hosting, really just basic user information
Little experience with securing, backing up and maintaining infrastructure so ideally the easiest solution is best.
Do you think given our lack of experience in this area and limited data needs it would be best at least initially to go with something more off the shelf (ie Heroku or DymanoDB or Cosmos DB)?
Yes absolutely go with something off the shelf.
Something like Auth0, Okta, Coginto for user authentication, DymanoDB or Cosmos DB for your database and consider something like AWS Lamba or Azure Functions for your node application.
If this is just a hobby or you are only building a prototype I suggest using https://replit.com/ (repl.it). It comes with a decent JSON store database and all of the hosting is taken care of straight out of the box. You can also use a custom domain.
Some big boy versions of the same thing that do not include a code editor in the browser would be https://www.digitalocean.com/products/app-platform/ (digital ocean app platform) and https://render.com/pricing (render currently hosts the indie hackers website).
If you are determined to learn how everything works security and hosting wise maybe check out this video https://www.youtube.com/watch?v=MxfxiR8TVNU
Thanks, will definitely look into these and super helpful video!
Render looks really great, I had been a bit nervous about how much Heroku could end up costing at scale
Have you considered using firebase as you backend?
They can do auth and db access with security rules you set without you building a backend