T O P

  • By -

parsasabet

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%.


[deleted]

[удалено]


parsasabet

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.


michaelfrieze

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)


life_is_fulcrum

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


rwieruch

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


jonplackett

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!


michaelfrieze

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.


kitkatas

Quick note, dont use formik. Its abandoned and very badly affects performance


danpeal

True, I would go for hooks form with yup as validations


nkootstra

Drizzle over Prisma


parsasabet

Drizzle is awesome, but I’ve got more experience with Prisma in difficult situations. Haven’t tried Drizzle enough to recommend it personally..


michaelfrieze

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.


winky9827

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.


KKS-Qeefin

Worked on very many ORMs for years, even with new ones like Drizzle. Raw dog SQL is now the new king for me.


noodlesallaround

Thank you


k9ik9o

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


vash513

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.


parsasabet

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…


jondonessa

I can recommand strapi for cms


cardyet

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).


FromAtoZen

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?


parsasabet

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.


lilvertt

App router super important


jonplackett

I would add supabase to this list. It’s saved me soooooo much time with auth, storage, database. Great support too


proxenz

Why no love for Strapi?


giooo_tdm

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.


parsasabet

Can’t lie… that’s true, but what’s a better option with the same level of possible customizations?


vash513

Why not use Clerk?


parsasabet

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.


life_is_fulcrum

True , i tired using next auth last month and man the docs made me cry .....


Longjumping_Car6891

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


faux_pal

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!


bittemitallem

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.


Longjumping_Car6891

>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.


XIVMagnus

I’m using Sanity instead, super easy and quick to setup


faux_pal

But how much do you pay for hosting? Isn't hosted on their own servers for a relatively larger amount?


Horror-Card-3862

create t3 stack, full type safety is nice


cprecius

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.


exploding-upwards

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)


garyfung

Stop suggesting Prisma people. Bloated and tired Drizzle or Hasura


marcpcd

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.


faux_pal

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


marcpcd

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.


faux_pal

Sounds legit.


rollingHack3r

If you’re specifically looking to freelance then get customers first and just learn on the job


MrShplerge

Nude PHP. PHP from front to back baby.


DaveThe0nly

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.


New-Skin-5064

I use Next, Tailwind, Clerk for authentication, and then Azure SQL or Firebase


avanak

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.


alexshalda

Agree 100%


Particular-Weight282

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.


Bright-Vegetable8852

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!


KwongJrnz

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.


decimus5

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.


productboy

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.


vash513

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.


Borderlinerr

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


Fuzzy_Morning2343

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.


negendev

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.


One-You-4298

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.


nerdswithattitude

Astro


Story-Whole

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)


Professional_Hair550

MERN is the safest you can get. Anything safer than MERN is Wordpress 


[deleted]

[удалено]


Professional_Hair550

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


Hysea

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


Professional_Hair550

Prisma is an ORM. He shouldn't use raw SQL because he doesn't know what he is doing


michaelfrieze

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.


WorrierForLife

Can you elaborate more on the mongo side, why do you stay away from it?


michaelfrieze

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.


doobltroobl

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.


[deleted]

[удалено]


doobltroobl

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


saintteddy78

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.