DEV Community

Cover image for If you would create a small social network in 2020 what stack it would have?
Timur Iskakov
Timur Iskakov

Posted on • Updated on

If you would create a small social network in 2020 what stack it would have?

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?

Discussion (19)

Collapse
patarapolw profile image
Pacharapol Withayasakpunt • Edited on

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.

Collapse
champernet profile image
Timur Iskakov Author

Thank you for answer.
I agree that Vue.js can reduce time for launch.

Collapse
masterroshan profile image
TJ Johnson

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.

Collapse
champernet profile image
Timur Iskakov Author

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.

Collapse
olafsulich profile image
Olaf Sulich

For me it would be probably Express/Nest, PostgreSQL, TypeScript, React and GraphQL

Collapse
champernet profile image
Timur Iskakov Author

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!

Collapse
olafsulich profile image
Olaf Sulich

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.

Thread Thread
champernet profile image
Timur Iskakov Author

Ok. Thanks for the advice.

Collapse
seanmclem profile image
Seanmclem

Prisma?

Collapse
michi profile image
Michael Z • Edited on

Solid stack, just wondering why you chose mongo over a relational database? You will need a bunch of *relation*ships for such an app.

Collapse
champernet profile image
Timur Iskakov Author

Just because I haven't a lot experience of using PostgreSQL in my projects. But I can try it. Thanks.

Collapse
michi profile image
Michael Z

It will probably make things easier as it has excellent first-party support in Laravel.

Collapse
rikoroku profile image
rikoroku • Edited on

I think the better solution in this case is using Dart/Flutter for the mobile app and Angular/Firestore for Front-end/Backend.

Collapse
champernet profile image
Timur Iskakov Author

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.

Collapse
patarapolw profile image
Pacharapol Withayasakpunt

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.

Thread Thread
champernet profile image
Timur Iskakov Author

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.

Collapse
bajwolf profile image
Bajro

I will use golang with vuejs for mobile app probably flutter

Collapse
champernet profile image
Timur Iskakov Author

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.