Hey everyone ๐
Let me ask you a question. Imagine that you are a full-stack developer and you are going to create a social network for relatively small group of people to sharing pictures and chat (I know how is sounds like, but it's not an Instagram or something like that ๐). You already have a web-design (PC and mobile versions) with good specification and a some front-end (just HTML/CSS with basic JS functionality like tabs, modals and so on).
What stack do you prefer for backend if you needed to build a web-version and a mobile app?
My choose is MongoDB for database to store a posts and comments. Laravel for sloving the main backend development tasks. Vue.js - for the frontend. For mobile app I prefer to try Dart and Flutter for building an app. It's cool that you can build iOS and Android app either using just one language.
What would be your choice?
Top comments (18)
I think it's more MVA and scaling, not just some small and throwaway things.
Maybe, Neo4J, Kotlin on the backend. But, I don't think it is hard to use MongoDB and migrate later.
Frontend does not matter that much, but for me, maybe Vue, so that I can launch my product fast.
Thank you for answer.
I agree that Vue.js can reduce time for launch.
Expo for a unified code base of native and web on the front end. I've read that NoSQL databases are not good for social apps, the many-to-many relationships between users will lead to writing a lot of logic around joining data. I'm personally more comfortable in Django/Postgres, but I think Laravel/MySQL is fine.
Yes, there is an opinion that MongoDB not a good choice for store that kind of data. PostgreSQL is the second tool I have been thinking about.
Thank you.
For me it would be probably Express/Nest, PostgreSQL, TypeScript, React and GraphQL
Cool stack.
It was hard decision for me between React and Vue.js. If I might not use Flutter, I'll rather prefer React and React Native for building an app.
I like realy GraphQL. Maybe it's a best choice for soical network, but I need to improve my knowledge of if before I can use it in production.
Maybe you know any good courses of it?
Thank you!
Vue.js is also good choice :) Honestly, documentation - it's well written. When you start reading it, just implement some features in your app, play with it, imo this is the best way to learn new technologies.
Ok. Thanks for the advice.
Prisma?
Solid stack, just wondering why you chose mongo over a relational database? You will need a bunch of *relation*ships for such an app.
Just because I haven't a lot experience of using PostgreSQL in my projects. But I can try it. Thanks.
It will probably make things easier as it has excellent first-party support in Laravel.
I think the better solution in this case is using Dart/Flutter for the mobile app and Angular/Firestore for Front-end/Backend.
I haven't seen a working social netwotk built using only Dart yet. But I'll try to build that one.
Angular is a good framework, but I have more experience in Vue.js.
What's about Firestore? Never worked with that technology ๐ค
Thank you.
Firestore might be fast, real time, and encourage indexing, but not as fully featured as MongoDB.
Also, no joins. They have to be done manually.
MongoDB can give an app a good speed, I agree. So that is why I choose it.
No JOINs? It can be a lot of work doing them manually ๐ค
Thanks.
I will use golang with vuejs for mobile app probably flutter
Golang is a cool language. I've heard a lot good things about it. But it's unfortunately not the one of my skills.
Thank you.