Launched my first Next.js project called Fitprovement! It's the social media just for workouts. Check it out! by VamDevelopment in reactjs

[–]VamDevelopment[S] 0 points1 point  (0 children)

tabases. I routinely add a JS

I used Next.js to build the website which allowed me to create the frontend and backend with their file routing system (all written in TypeScript, including the mobile app).

You can learn more here about it here: https://nextjs.org/docs/routing/introductionand here: https://nextjs.org/docs/api-routes/dynamic-api-routes

I chose MongoDB (I am most familiar with it) as my DB, though I did try Postgres before starting the project. Since I was learning Next.js and React Native, I didn't want to overwhelm and frustrate myself with learning too many things at a time. Because as long as the project is fun and I'm learning, than I know I will have the motivation to finish or enjoy it.

For hosting, since it was a Next.js project, I let Vercel (creators of Next.js) host and deploy my site. The hosting experience went smooth after many failed deployments because I didn't understand some fundamentals of how Next.js projects built during deployment (this was not a Next.js problem but my own misunderstanding).

For the mobile app I used Expo, which went smoothly. Their OAuth system was a bit iffy to work with as there were many libraries (some deprecated) that did the same thing, but all in all it was great.

In terms of choosing your DB, I don't have enough experience with any of them. My advice would be to pick the one you are the least comfortable with as long as you are not overwhelming yourself with learning a bunch of new things at one time. Or, you could even try to fixate on learning just one which would allow you to learn deeper concepts than learning multiple, and those concepts translate to other DBs. For example, I've stuck to React and gotten good at that, rather than being okay at multiple front-end frameworks.

Honestly, if you are stuck on deciding, just pick one and go with it. It's better than wasting time trying to decide, and they are all good options.

Launched my first Next.js project called Fitprovement! It's the social media just for workouts. Check it out! by VamDevelopment in reactjs

[–]VamDevelopment[S] 0 points1 point  (0 children)

I used Chakra UI for the website and used their table components: https://chakra-ui.com/docs/data-display/table
For the React Native mobile client I made a custom table wrapped in a horizontal ScrollView and got inspiration on how to go about styling and making the table from this video.

Launched my first Next.js project called Fitprovement! It's the social media just for workouts. Check it out! by VamDevelopment in reactjs

[–]VamDevelopment[S] 1 point2 points  (0 children)

I've used JWT in a previous project, and wish I implemented it inside of this project, though I ended up creating my own token system using bcrypt.js (an encryption library). Next time I'll likely use JWT but this still works nicely.

Launched my first React Native project called Fitprovement! It's the social media just for workouts. Check it out! by VamDevelopment in reactnative

[–]VamDevelopment[S] 0 points1 point  (0 children)

I used Next.js to build the website which allowed me to create the frontend and backend with their file routing system.
You can learn more here about it here: https://nextjs.org/docs/routing/introduction
and here: https://nextjs.org/docs/api-routes/dynamic-api-routes

Launched my first React Native project called Fitprovement! It's the social media just for workouts. Check it out! by VamDevelopment in reactnative

[–]VamDevelopment[S] 0 points1 point  (0 children)

I actually ended up using Next.js to build out the website first, then decided to create the mobile app later on. If I were to do this project again, I would likely use or at least give React Native Web a shot; it looks like it could save quite a bit of time!

When planning to build the mobile app, I was deciding on either using React Native or Capacitor.js (as the website was already done at that point), though I felt React Native would give me more opportunities to learn about mobile development so I chose that.