What back end should I use for a web app?
Hey everyone,
I've gone through some freecodecamp courses on frontend, but now that I want to actually build something, I realised I know nothing about backend.
What technologies can I use to power a web app. And would you recommend server less (using firebase, etc.) or having your own database?
Makerlog uses Django. If you know a little bit of python, you'll find it's the easiest way to get a quality web app going real quick.
There's also Rails, which is another amazing batteries-included framework.
Serverless is another great way to get started - @Booligoosh is literally running an entire email client payment processing system using serverless.
TLDR: Serverless, Django/Rails, are good ways to get started building nice backends.
I'm inclined to use my own database, since I don't want to depend on serverless offers for ever.
Though I'm quite frightened by all the authentication stuff (hashing, email verification, etc.) How are you handling auth?
@Booligoosh what tools are you using?
@bcye Basically, I don't have to deal with auth because KanbanMail uses the Gmail/Outlook APIs. So I don't need to store passwords or anything, because the APIs give me tokens which I can use to verify identity in my cloud functions (Netlify cloud function written in Node.js). I store the users in Stripe. Because I don't store any email data (for privacy + security), I can actually store the minimal user data (settings etc.) as fields in the Stripe customer metadata (basically a tiny key-value store). But in the future I might need to use something like Firebase. Hope that sort of makes sense, let me know if you have any questions or need me to clarify any of that. 😅
@Booligoosh Wow that's clever. Heard that @TK also uses Stripe payment IDs as licenses for his extensions, like these simple solutions.
Though, I think I'm sold on Django.
Hi Bruce! I would personally say use what you're already familiar with. If you are not super experienced in backend but know frontend, try out Node.js – it does save you an app to build.
I'm actually putting out a course about Node.js if you're interested: https://frameworkless.js.org
Firebase is a real option and it works great. For example, IndieHackers works on Firebase. The downsides are pretty few if you're prototyping since they're mainly around cost at scale. Firebase can be a great intro into persistent state!
QUIQQQER.
It's all solved now. And you can build your own modules. Registrations, encryption of user data, authentication, permissions, memberships already exist.
And you can build your own DB Tables via XML. QUIQQQER uses PHP and MySQL / MariaDB.
If you want to give it a try, write me 😉
Laravel is incredible powerful & scales from MVPs to massive applications. It's very popular (most popular backend framework on GitHub) and has probably the biggest developer community (estimated). Also, very helpful: lots of makers use it as well and are happy to help and the documentation is just amazing @bcye
You have to first understand back-end. Even though you have done lot of coding in JS, you cannot do nodejs just like that(writing simple scripts is another thing).
You may now be looking to create dynamic front-end apps, I suggest you checkout React, GraphQL and Firebase(for storing data). A lot can be done on front end itself. Gatsby is another great framework/tool for React devs. For storing data, you can get creative and store data in an indexed DB hosted somewhere or you can also use JSON files or client side localstorage. Possibilities on front end are much if you know right tools.
If you want to switch to back end, I suggest you start with PHP, even if you want to learn NodeJS. As a back end language PHP is easy to understand and fundamentals are straight forward. You'll learn about requests, databases, caching, cookies etc. Once you understand how everything works, move to a minimal framework like express in NodeJS or flask in Python. Those frameworks will still won't teach you everything there is to learn in NodeJS or Python language. But slowly if you keep experimenting, you will learn NodeJS.
Please sign in to leave a comment.