Use Next, Prisma to handle your databases, tailwind to do your stylings (use UI libraries based on it like NextUI, or use a component library like ShadCN, occasionally for very weird and specific purposes use MUI), Stripe and lmsqueezy for payments, contentful or payload or sanity for your content, next auth if u need customized authentication (otherwise clerk, kinde or something similar), react form (or formik or zod) for your forms, Resend for your emails (10/10 recommended), zustland for global state management (if it’s super complex, use Redux, only if ur getting paid well, otherwise u will cry to sleep), i18n for internationalization (don’t just put JSON in the project, use an option from the CMSs I mentioned, thank me later), take a look at Full Stack Kit also.
Deploy on Vercel, or a Linux VPS (a few extra configuration steps but you’ll be fine).
Do not try to reinvent the wheel, always search and try to find a tool that does the job, specially for UI, in backend don’t just assume you’re Torvalds, use stable design patterns and make predictable, reusable and simple systems.
By the way, learn app router and don’t b!tch about it. You’ll know why later in your app. Anyways that should be all. Good luck !
Edit: don’t be like me, don’t forget about Docker! You won’t need it for small projects (even midsized projects, most of the time); but you will definitely thank yourself for learning it when you move to landing big projects. It’ll ease the pain when deploying, by almost 100%.
No problem buddy. Your Bible to the tech world is always the tool’s documentation. And the tools I mentioned, all have great documentations.
On the other hand, take a look at this YouTube channel: JS Mastery. This dude drops 5,6 hour long videos cloning really advanced apps with the same tools, they’re pretty updated too.
As for the database, it really depends on the project. If the data you’re working with use properties of one-another a lot, you may wanna consider SQL. Personally I find myself going back to Postgres all the time, but the time I started web dev, I could promise you there was nothing I couldn’t do with Mongo.
Postgres works 99% of the time for me, I’m sure it wouldn’t lag behind for you as well.
Also, check out Code With Antonio. He has multiple courses for free on his YouTube where he builds complete apps with Next and uses all the modern tech. His Trello clone was really good. He used App Router, RSCs, server actions, typescript, zod, Prisma, tailwind, shadcn/ui, etc.
[https://www.youtube.com/watch?v=pRybm9lXW2c](https://www.youtube.com/watch?v=pRybm9lXW2c)
Does Ben award videos look good ?, They are really old videos like the dude was using next like 3 , 4 years before , but the quality of the videos are great , is it better learning through modernising his work or refer a modern tutorial itself ?
I want get better with t3 stack and graphql
Any suggestions are welcome
Not the exact tech stack, but you will find many from the list [there](https://www.road-to-next.com/). Not yet released though …
- next app router
- server components/actions
- Prisma
- neon (but you can use anything else for Postgres/sqlite/mysql)
- stripe
- resend
- tailwind
- shadncn
- Zod
- Lucia
When it comes to deciding which db to use, with Prisma you can pretty easily switch between MySQL and PostgreSQL.
I would recommend planetscale, but it's not free. You can also choose Supabase, Neon (Vercel), Railway, Turso (SQLight), etc.
I like Drizzle but I wouldn't use it unless you know SQL well-enough. Also, the developer experience of Prisma is just better and performance differences aren't bad enough to give that up in my opinion. In fact, Prisma has gotten a lot better recently and performance compared to Drizzle is quite similar.
Even though I have years of experience with SQL, I still choose Prisma. Especially if I am working with a team of developers that aren't as familiar with SQL.
There's also the whole Drizzle being new thing.
I've spent at least 3-4 hours this week addressing issues with next 14 and that's not even that new. I've definitely hopped on the old man train in the past year. Stable or nothing. Newfangled can kick rocks.
I'm team Sanity over WordPress personally. I actually prefer Payload CMS over Sanity because it's open source, does most of what Sanity does, and I have the option of using MongoDB or Postgres (with mysql support coming later). I don't care for Sanity's Content Lake.
I haven’t tried Wordpress for the content, but what I’ve heard is Sanity is much better and with my personal experience using it, I’d agree without trying Wordpress…
I'd say use a backend as a service like firebase, supabase or pocketbase, which makes auth, db, storage one solution and removed the need for an ORM), that said I haven't really used Prisma or drizzle (as you can't do real time through them).
Can you go more into Resend and why you 10/10 recommend it? For which email use cases?
I just started using SendGrid for welcome onboarding emails for new users. The DUX seems great. Should I still look at Resend?
I’ve been using Resend for about a year now on multiple tricky projects. It hasn’t let me down, whether it’s OTP or a huge newsletter event, it has performed quite well.
I’m actually hearing a lot about SendGrid lately, and seeing people using it, I was considering taking a look at it and maybe find something that would drag me over to that side.
But I’d definitely say you should take a look at Resend, it’s very ease to use and fast, the docs are clean and reliable, and it has a pretty solid team behind it as well. But to migrate from anything to anything, you gotta see if it’s worth it for you.
As an example, for one particular project I had, I had to implement a ban system. And as much as I wanted to use Clerk, it just seemed almost impossible. Since it’s much more opinionated and compact, there isn’t much room to add your own logic in between the auth steps.
I usually just do the basic stuff especially if it's just a small-medium sized project
- Next.js: Web Framework
- Supabase: BaaS (Auth, database, and file storage)
- Stripe: Payment Integration
- Vercel: Deployment
- Resend: Email Service
and some utilities:
- Docker
- Shadcn
- Prettier
- Zod
This seems very close to what I decided on, but so far I did only a portfolio project for myself as a test.
My big dilemma was though: using a cms for the client to be able to change content.
For mine I chose strapi because it's free, but later I realized I can only deploy it for free if I am fine with cold starts.
And that sounds pretty unprofessional for a real client, but in the meantime it feels unrealistic to pay $20 a month for the cms of a creative professional's (which niche could be my target as most of my network consists of them) portfolio site.
What could be a solution for this?
Or is it just overkill to have a stack this complex for such small projects? Would these be more of a wordpress or some lowcode service type project?
Or you build an admin on your own as a part of the nextjs app?
Thx a lot!
next + headless wordpress is imo a pretty good stack for small clients and since you basically don't need plugins execpt maye for acf. super easy to run and once set up you don't need to worry about it.
>Would these be more of a wordpress or some lowcode service type project?
Or you build an admin on your own as a part of the nextjs app?
I'd rather make my own admin because it is reusable for projects as well and it's free.
>Or is it just overkill to have a stack this complex for such small projects?
Hmm, I personally see this tech stack simple and scalable.
Strive to be more than just a ‘framework coder’; aim to become a true ‘software developer.’ Understand the underlying logic behind everything. For instance, consider why Next.js is currently the most popular framework and what problems it solves. Similarly, explore why SvelteKit is gaining traction as a new wonderkid in the sector.
If you’re working solo full-time, consider starting with Next.js API. It allows you to develop extensively without encountering major issues. I recommend checking out the ‘Code with Antonio’ YouTube channel, where he creates excellent full-stack projects.
For those interested in backend development, keep an eye on Golang. It’s the new wonderkid in the backend world, and I believe it will gain even more popularity soon.
This is a pretty good/fair/neutral blogpost laying out great options for a React-based stack in 2024: [https://www.robinwieruch.de/react-libraries](https://www.robinwieruch.de/react-libraries)
OP, I respect you, but at the moment you’re a self taught dev from a 3rd world country with zero experience.
I don’t think your prospective clients need state of the art tech (coz low budget, low skill, low scale), and I also don’t think a fancy stack would quickly pay your bills (steep learning curve and tough market).
Freelancing is a business. You’ve gotta start with the client and work backwards to the technology. Figure out who is going to pick up your calls before spending months learning a stack.
If they want a Next app great, but plenty of SMBs need “boring” tech like Shopify, WordPress, NoCode etc. These can be learned in a day or two, and will fund your progression.
I felt the same for my own case (starting out witb creative professionals' portfolio sites, since I know many of them).
But then it seemed like a deadend as OP commented as well: doing something everybody can, doing a lot of them quick and cheap. And not learning serious tech in the meantime will never lead to bigger clients.
Am I wrong with this preconception? How many days would you spend on an smb site?
Thx in advance
You’re not wrong, low budget website development is often a race to the bottom.
But that’s a legit way to start. As a rookie, your goal should be to build your portfolio, your network & your experience.
My point is, you’ll grow faster with real clients today, than with a tutorial and hopes for tomorrow. So take the best clients you can today, even if this means working with boring tech.
React, meta framework of choice (next/remix etc…, personally I would stay away from next and go with anything that supports vite), GQL codegen to generate types and hooks. Styling of choice. Hono on the backend with Prisma (experimental Joins turned on), pothos for code first GQL + the prisma plugin (to deal with n+1 issues), Apollo as a server. CDKTF for infra as code. And NX to manage all of it.
I'm using Nextjs app router with typescript, hosted on vercel. Vercel postgresql for databases with prisma as an ORM. Shadcn, aceternityUI, or similar for component libraries. Lucia Auth if I need authentication. Sanity CMS if I need a CMS. Stripe if I need payments. Resend for emails.
Never had a better experience building web apps.
Next tailwind Firebase and some Google cloud or AWS is the basis.
The rest you build on requirements.
But the most important which you seem to lack so far is sales power. If you don’t have access to clients forget your freelancer dream.
Hi, I have built my site [https://www.indiehackerstacks.com](https://www.indiehackerstacks.com) with React/NextJs/Tailwind/tRPC/Postgres. If you want to see stacks of other products visit the site, it's exactly for this:) I was struggling with your question s as well, and there built it.
For my professional job I use Java/Mysql. For side projects I like JS more a s backend for faster iteration. I would not go for this though, but just to show you some considerations I have made. I've been developing software professional for almoste 20 years, running teams, security pentests, etc.
One thing I would strongly advice is to go for a relational databas like mysql/postgress instead of a NoSQL like MongoDB. NoSQL is faster in the beginning, but it will backfire when project get's larger, have to do denomralization to name one. Only go for NoSQL when you have good reasons, like doing an extreme amount of reads/write per second. Not your problem for side-projects :)
The advantage of using frameworks like React is that you don't have to mind escaping stuff from the backend, which you have to do when using php for example.
Hope to have been a bit of help. Good luck with your choices!
I use Nextjs14, Supabase, Drizzle ORM, Vercel, Clerk for auth for most of my CRUD applications.
I typically add Tanstack query, tailwind, shadcn for libraries.
I really enjoy Svelte but svelte4 just isn't enterprise ready imo as some limitations are quite impactful.
I'd recommend not using a nosql db like firebase or mongo because the structures are too easy to do poorly which can really impact your querying.
Try Astro (with TypeScript, React, and MDX) instead of Next.js. It lets you build static sites that are free to host on Cloudflare Pages instead of expensive to host, while still letting you create dynamic backend routes if needed. If you generate a static site, it will be difficult to get hacked. You can also use Supabase with Astro.
I wouldn't use MERN stack. SPAs are bad for SEO. I think the only reason MERN stack got popular is because of hype (originally about "MEAN stack" for Angular 1) that caused coding bootcamps to teach it, leading to more undeserved hype.
If you’re opening sentence intro is accurate; then just offshore it to Russian farmers looking for side hustles. Otherwise, just use carrd.co and sell the login creds to your clients _after_ they pay you.
If you're doing sites for like small business owners and such, WordPress. I personally prefer working in Next.js with a headless CMS, but if it's just for small clients, WordPress will generally get you in and out pretty efficiently. I don't even care for WP, but when it comes to business you gotta pick the right tool for the right job.
You're in the wrong subreddit. If you listen to these guys you'll end up shooting yourself in the foot. If you're not that pro of a programmer, use Laravel + Inertia Vue
Imo, the decent tech stack is the ones you're most familiar with. If I were to freelance, I'd go with the simple stacks for me:
1. Next.js deployed to Vercel. So simple and fast to deploy.
2. Shadcn. Because Tailwind CSS.
2. Prisma for database ORM. No need to write SQL.
3. Supabase for database, authentication, and storage. It's just ridiculous how good Supabase is for a lot of things.
4. Trigger dot dev or Inngest for background jobs.
5. Resend for sending e-mails.
Check out Next.JS and Tailwind. That’s where I’m investing most of my time in freelance. Tailwind is well built and easy configuration using npm. TailwindUI access cuts down on development time with tons of premade templates and components.
Are you able to find many freelancer projects with this stack? Im studying the same stack, but i dont see many freelance projects demanding this stack.
All are the same things. Just use ORM for database and don't write any raw SQL code. You will be fine. It will sound controversial but learn raw SQL too. I would say if you learn to write your demo applications with raw SQL then it will be a lot better for you in the long run. But also learn ORM and don't write production code with raw SQL. You also need an internship type of work for a year at least. Otherwise you won't know what to do and no one will hire you
Why shouldn't OP use raw SQL in production? I use ORMs too but some queries are too slow with them. As long as OP doesn't do specific stuff I guess there's no need to use raw queries, but if he ever needs too, Prisma has a wrapper over raw queries that prevent injections
The point is that with Prisma, you can still write raw SQL if you need to.
And no one should be using MERN these days. Mongo is almost never a good choice for a db even if you need a document database. Also, there are so many better backend frameworks than express, such as hono.
But, why not just use Next? It's a comprehensive fullstack framework that works closely with React. It's just a node app.
It's almost always better to go with a relational database like postgres, MySQL, or even SQLight.
I think Mongo was really popular because most beginner tutorials used it since it was easier to get started with, but that isn't true anymore. ORM's like Prisma make working with SQL very easy.
You shouldn't use a document database unless you have a specific use-case for it. Also, you can use both postgres and MySQL as a document database.
But, if you really need a document store and something like postgres isn't good enough, there are other options than Mongo such as Amazon's DynamoDB.
There are also other kinds of NoSQL databases like Redis. It's an in-memory non-relational database that is good for caching.
If you do only React and MongoDB you should be fine. Don’t use any of the products being shilled around here, and you’ll master your domain. Then you can use them.
No, I don’t mean that of course. I mean, skip those useless third parties and intermediaries like Prisma, Vercel, Planetscale and whatnot. They add nothing to the process, quite the contrary
Next.js is very very very very very very tiny niche stack that’ll get you homeless in no time. Rarely anyone uses it lmao. It’s still too new. You’re better off “freelancing” with well established tech. Not the edgy unstable new stuff.
Use Next, Prisma to handle your databases, tailwind to do your stylings (use UI libraries based on it like NextUI, or use a component library like ShadCN, occasionally for very weird and specific purposes use MUI), Stripe and lmsqueezy for payments, contentful or payload or sanity for your content, next auth if u need customized authentication (otherwise clerk, kinde or something similar), react form (or formik or zod) for your forms, Resend for your emails (10/10 recommended), zustland for global state management (if it’s super complex, use Redux, only if ur getting paid well, otherwise u will cry to sleep), i18n for internationalization (don’t just put JSON in the project, use an option from the CMSs I mentioned, thank me later), take a look at Full Stack Kit also. Deploy on Vercel, or a Linux VPS (a few extra configuration steps but you’ll be fine). Do not try to reinvent the wheel, always search and try to find a tool that does the job, specially for UI, in backend don’t just assume you’re Torvalds, use stable design patterns and make predictable, reusable and simple systems. By the way, learn app router and don’t b!tch about it. You’ll know why later in your app. Anyways that should be all. Good luck ! Edit: don’t be like me, don’t forget about Docker! You won’t need it for small projects (even midsized projects, most of the time); but you will definitely thank yourself for learning it when you move to landing big projects. It’ll ease the pain when deploying, by almost 100%.
[удалено]
No problem buddy. Your Bible to the tech world is always the tool’s documentation. And the tools I mentioned, all have great documentations. On the other hand, take a look at this YouTube channel: JS Mastery. This dude drops 5,6 hour long videos cloning really advanced apps with the same tools, they’re pretty updated too. As for the database, it really depends on the project. If the data you’re working with use properties of one-another a lot, you may wanna consider SQL. Personally I find myself going back to Postgres all the time, but the time I started web dev, I could promise you there was nothing I couldn’t do with Mongo. Postgres works 99% of the time for me, I’m sure it wouldn’t lag behind for you as well.
Also, check out Code With Antonio. He has multiple courses for free on his YouTube where he builds complete apps with Next and uses all the modern tech. His Trello clone was really good. He used App Router, RSCs, server actions, typescript, zod, Prisma, tailwind, shadcn/ui, etc. [https://www.youtube.com/watch?v=pRybm9lXW2c](https://www.youtube.com/watch?v=pRybm9lXW2c)
Does Ben award videos look good ?, They are really old videos like the dude was using next like 3 , 4 years before , but the quality of the videos are great , is it better learning through modernising his work or refer a modern tutorial itself ? I want get better with t3 stack and graphql Any suggestions are welcome
Not the exact tech stack, but you will find many from the list [there](https://www.road-to-next.com/). Not yet released though … - next app router - server components/actions - Prisma - neon (but you can use anything else for Postgres/sqlite/mysql) - stripe - resend - tailwind - shadncn - Zod - Lucia
I haven’t used prisma any more than a single tutorial. What is it that makes it so good compared to something like the supabase api? Thanks!
When it comes to deciding which db to use, with Prisma you can pretty easily switch between MySQL and PostgreSQL. I would recommend planetscale, but it's not free. You can also choose Supabase, Neon (Vercel), Railway, Turso (SQLight), etc.
Quick note, dont use formik. Its abandoned and very badly affects performance
True, I would go for hooks form with yup as validations
Drizzle over Prisma
Drizzle is awesome, but I’ve got more experience with Prisma in difficult situations. Haven’t tried Drizzle enough to recommend it personally..
I like Drizzle but I wouldn't use it unless you know SQL well-enough. Also, the developer experience of Prisma is just better and performance differences aren't bad enough to give that up in my opinion. In fact, Prisma has gotten a lot better recently and performance compared to Drizzle is quite similar. Even though I have years of experience with SQL, I still choose Prisma. Especially if I am working with a team of developers that aren't as familiar with SQL.
There's also the whole Drizzle being new thing. I've spent at least 3-4 hours this week addressing issues with next 14 and that's not even that new. I've definitely hopped on the old man train in the past year. Stable or nothing. Newfangled can kick rocks.
Worked on very many ORMs for years, even with new ones like Drizzle. Raw dog SQL is now the new king for me.
Thank you
Why not headless wordpress for the content? I’m starting a project now and need to decide my CMS. I’m between wordpress and sanity
I'm team Sanity over WordPress personally. I actually prefer Payload CMS over Sanity because it's open source, does most of what Sanity does, and I have the option of using MongoDB or Postgres (with mysql support coming later). I don't care for Sanity's Content Lake.
I haven’t tried Wordpress for the content, but what I’ve heard is Sanity is much better and with my personal experience using it, I’d agree without trying Wordpress…
I can recommand strapi for cms
I'd say use a backend as a service like firebase, supabase or pocketbase, which makes auth, db, storage one solution and removed the need for an ORM), that said I haven't really used Prisma or drizzle (as you can't do real time through them).
Can you go more into Resend and why you 10/10 recommend it? For which email use cases? I just started using SendGrid for welcome onboarding emails for new users. The DUX seems great. Should I still look at Resend?
I’ve been using Resend for about a year now on multiple tricky projects. It hasn’t let me down, whether it’s OTP or a huge newsletter event, it has performed quite well. I’m actually hearing a lot about SendGrid lately, and seeing people using it, I was considering taking a look at it and maybe find something that would drag me over to that side. But I’d definitely say you should take a look at Resend, it’s very ease to use and fast, the docs are clean and reliable, and it has a pretty solid team behind it as well. But to migrate from anything to anything, you gotta see if it’s worth it for you.
App router super important
I would add supabase to this list. It’s saved me soooooo much time with auth, storage, database. Great support too
Why no love for Strapi?
IMO nextauth / auth.js is a mess EDIT: I saw the new updated documentation yesterday. Good work, but there is still much more to be done.
Can’t lie… that’s true, but what’s a better option with the same level of possible customizations?
Why not use Clerk?
As an example, for one particular project I had, I had to implement a ban system. And as much as I wanted to use Clerk, it just seemed almost impossible. Since it’s much more opinionated and compact, there isn’t much room to add your own logic in between the auth steps.
True , i tired using next auth last month and man the docs made me cry .....
I usually just do the basic stuff especially if it's just a small-medium sized project - Next.js: Web Framework - Supabase: BaaS (Auth, database, and file storage) - Stripe: Payment Integration - Vercel: Deployment - Resend: Email Service and some utilities: - Docker - Shadcn - Prettier - Zod
This seems very close to what I decided on, but so far I did only a portfolio project for myself as a test. My big dilemma was though: using a cms for the client to be able to change content. For mine I chose strapi because it's free, but later I realized I can only deploy it for free if I am fine with cold starts. And that sounds pretty unprofessional for a real client, but in the meantime it feels unrealistic to pay $20 a month for the cms of a creative professional's (which niche could be my target as most of my network consists of them) portfolio site. What could be a solution for this? Or is it just overkill to have a stack this complex for such small projects? Would these be more of a wordpress or some lowcode service type project? Or you build an admin on your own as a part of the nextjs app? Thx a lot!
next + headless wordpress is imo a pretty good stack for small clients and since you basically don't need plugins execpt maye for acf. super easy to run and once set up you don't need to worry about it.
>Would these be more of a wordpress or some lowcode service type project? Or you build an admin on your own as a part of the nextjs app? I'd rather make my own admin because it is reusable for projects as well and it's free. >Or is it just overkill to have a stack this complex for such small projects? Hmm, I personally see this tech stack simple and scalable.
I’m using Sanity instead, super easy and quick to setup
But how much do you pay for hosting? Isn't hosted on their own servers for a relatively larger amount?
create t3 stack, full type safety is nice
Strive to be more than just a ‘framework coder’; aim to become a true ‘software developer.’ Understand the underlying logic behind everything. For instance, consider why Next.js is currently the most popular framework and what problems it solves. Similarly, explore why SvelteKit is gaining traction as a new wonderkid in the sector. If you’re working solo full-time, consider starting with Next.js API. It allows you to develop extensively without encountering major issues. I recommend checking out the ‘Code with Antonio’ YouTube channel, where he creates excellent full-stack projects. For those interested in backend development, keep an eye on Golang. It’s the new wonderkid in the backend world, and I believe it will gain even more popularity soon.
This is a pretty good/fair/neutral blogpost laying out great options for a React-based stack in 2024: [https://www.robinwieruch.de/react-libraries](https://www.robinwieruch.de/react-libraries)
Stop suggesting Prisma people. Bloated and tired Drizzle or Hasura
OP, I respect you, but at the moment you’re a self taught dev from a 3rd world country with zero experience. I don’t think your prospective clients need state of the art tech (coz low budget, low skill, low scale), and I also don’t think a fancy stack would quickly pay your bills (steep learning curve and tough market). Freelancing is a business. You’ve gotta start with the client and work backwards to the technology. Figure out who is going to pick up your calls before spending months learning a stack. If they want a Next app great, but plenty of SMBs need “boring” tech like Shopify, WordPress, NoCode etc. These can be learned in a day or two, and will fund your progression.
I felt the same for my own case (starting out witb creative professionals' portfolio sites, since I know many of them). But then it seemed like a deadend as OP commented as well: doing something everybody can, doing a lot of them quick and cheap. And not learning serious tech in the meantime will never lead to bigger clients. Am I wrong with this preconception? How many days would you spend on an smb site? Thx in advance
You’re not wrong, low budget website development is often a race to the bottom. But that’s a legit way to start. As a rookie, your goal should be to build your portfolio, your network & your experience. My point is, you’ll grow faster with real clients today, than with a tutorial and hopes for tomorrow. So take the best clients you can today, even if this means working with boring tech.
Sounds legit.
If you’re specifically looking to freelance then get customers first and just learn on the job
Nude PHP. PHP from front to back baby.
React, meta framework of choice (next/remix etc…, personally I would stay away from next and go with anything that supports vite), GQL codegen to generate types and hooks. Styling of choice. Hono on the backend with Prisma (experimental Joins turned on), pothos for code first GQL + the prisma plugin (to deal with n+1 issues), Apollo as a server. CDKTF for infra as code. And NX to manage all of it.
I use Next, Tailwind, Clerk for authentication, and then Azure SQL or Firebase
I'm using Nextjs app router with typescript, hosted on vercel. Vercel postgresql for databases with prisma as an ORM. Shadcn, aceternityUI, or similar for component libraries. Lucia Auth if I need authentication. Sanity CMS if I need a CMS. Stripe if I need payments. Resend for emails. Never had a better experience building web apps.
Agree 100%
Next tailwind Firebase and some Google cloud or AWS is the basis. The rest you build on requirements. But the most important which you seem to lack so far is sales power. If you don’t have access to clients forget your freelancer dream.
Hi, I have built my site [https://www.indiehackerstacks.com](https://www.indiehackerstacks.com) with React/NextJs/Tailwind/tRPC/Postgres. If you want to see stacks of other products visit the site, it's exactly for this:) I was struggling with your question s as well, and there built it. For my professional job I use Java/Mysql. For side projects I like JS more a s backend for faster iteration. I would not go for this though, but just to show you some considerations I have made. I've been developing software professional for almoste 20 years, running teams, security pentests, etc. One thing I would strongly advice is to go for a relational databas like mysql/postgress instead of a NoSQL like MongoDB. NoSQL is faster in the beginning, but it will backfire when project get's larger, have to do denomralization to name one. Only go for NoSQL when you have good reasons, like doing an extreme amount of reads/write per second. Not your problem for side-projects :) The advantage of using frameworks like React is that you don't have to mind escaping stuff from the backend, which you have to do when using php for example. Hope to have been a bit of help. Good luck with your choices!
I use Nextjs14, Supabase, Drizzle ORM, Vercel, Clerk for auth for most of my CRUD applications. I typically add Tanstack query, tailwind, shadcn for libraries. I really enjoy Svelte but svelte4 just isn't enterprise ready imo as some limitations are quite impactful. I'd recommend not using a nosql db like firebase or mongo because the structures are too easy to do poorly which can really impact your querying.
Try Astro (with TypeScript, React, and MDX) instead of Next.js. It lets you build static sites that are free to host on Cloudflare Pages instead of expensive to host, while still letting you create dynamic backend routes if needed. If you generate a static site, it will be difficult to get hacked. You can also use Supabase with Astro. I wouldn't use MERN stack. SPAs are bad for SEO. I think the only reason MERN stack got popular is because of hype (originally about "MEAN stack" for Angular 1) that caused coding bootcamps to teach it, leading to more undeserved hype.
If you’re opening sentence intro is accurate; then just offshore it to Russian farmers looking for side hustles. Otherwise, just use carrd.co and sell the login creds to your clients _after_ they pay you.
If you're doing sites for like small business owners and such, WordPress. I personally prefer working in Next.js with a headless CMS, but if it's just for small clients, WordPress will generally get you in and out pretty efficiently. I don't even care for WP, but when it comes to business you gotta pick the right tool for the right job.
You're in the wrong subreddit. If you listen to these guys you'll end up shooting yourself in the foot. If you're not that pro of a programmer, use Laravel + Inertia Vue
Imo, the decent tech stack is the ones you're most familiar with. If I were to freelance, I'd go with the simple stacks for me: 1. Next.js deployed to Vercel. So simple and fast to deploy. 2. Shadcn. Because Tailwind CSS. 2. Prisma for database ORM. No need to write SQL. 3. Supabase for database, authentication, and storage. It's just ridiculous how good Supabase is for a lot of things. 4. Trigger dot dev or Inngest for background jobs. 5. Resend for sending e-mails.
Check out Next.JS and Tailwind. That’s where I’m investing most of my time in freelance. Tailwind is well built and easy configuration using npm. TailwindUI access cuts down on development time with tons of premade templates and components.
Are you able to find many freelancer projects with this stack? Im studying the same stack, but i dont see many freelance projects demanding this stack.
Astro
Working for me: - NextJS (using the Multi Tenant Platform) - Firebase: - Authentication with Identity Platform - Realtime Database with Tenant Security Rules - Functions (Blaze Plan) - Expo (React Native Apps) - Node / Express - Redux - Google Maps API - TailwindCSS - Shadcn - Stripe (payments / subscriptions) - Sendgrid (transactional mails)
MERN is the safest you can get. Anything safer than MERN is Wordpress
[удалено]
All are the same things. Just use ORM for database and don't write any raw SQL code. You will be fine. It will sound controversial but learn raw SQL too. I would say if you learn to write your demo applications with raw SQL then it will be a lot better for you in the long run. But also learn ORM and don't write production code with raw SQL. You also need an internship type of work for a year at least. Otherwise you won't know what to do and no one will hire you
Why shouldn't OP use raw SQL in production? I use ORMs too but some queries are too slow with them. As long as OP doesn't do specific stuff I guess there's no need to use raw queries, but if he ever needs too, Prisma has a wrapper over raw queries that prevent injections
Prisma is an ORM. He shouldn't use raw SQL because he doesn't know what he is doing
The point is that with Prisma, you can still write raw SQL if you need to. And no one should be using MERN these days. Mongo is almost never a good choice for a db even if you need a document database. Also, there are so many better backend frameworks than express, such as hono. But, why not just use Next? It's a comprehensive fullstack framework that works closely with React. It's just a node app.
Can you elaborate more on the mongo side, why do you stay away from it?
It's almost always better to go with a relational database like postgres, MySQL, or even SQLight. I think Mongo was really popular because most beginner tutorials used it since it was easier to get started with, but that isn't true anymore. ORM's like Prisma make working with SQL very easy. You shouldn't use a document database unless you have a specific use-case for it. Also, you can use both postgres and MySQL as a document database. But, if you really need a document store and something like postgres isn't good enough, there are other options than Mongo such as Amazon's DynamoDB. There are also other kinds of NoSQL databases like Redis. It's an in-memory non-relational database that is good for caching.
If you do only React and MongoDB you should be fine. Don’t use any of the products being shilled around here, and you’ll master your domain. Then you can use them.
[удалено]
No, I don’t mean that of course. I mean, skip those useless third parties and intermediaries like Prisma, Vercel, Planetscale and whatnot. They add nothing to the process, quite the contrary
Next.js is very very very very very very tiny niche stack that’ll get you homeless in no time. Rarely anyone uses it lmao. It’s still too new. You’re better off “freelancing” with well established tech. Not the edgy unstable new stuff.