Red-Moon-Software-Apprenticeship / redmoon-console

The marketing site, customer relationship management, and apprentice management software for Red Moon
https://redmoon-console.vercel.app
19 stars 10 forks source link

Proposal: Tech Stack #4

Closed mfong4151 closed 1 year ago

mfong4151 commented 1 year ago

TLDR, My proposal is that we use TypeScript, NextJS, and Prisma (PostgreSQL) for the website stack.

Pros:

  1. TS and NextJS are natural extensions of a skill that most people will come to the Red Moon Apprenticeship with, namely JavaScript. Most React conferences I've been to in the last couple months have been raving about server-side rendering. Honestly I'm not opinionated about which database we use, but I figured that there would probably be a couple joins we'll have to do (I've posted another issue to comment on this). In short, there's demand for these skills

  2. A JS monolith simplifies some of the issues with hosting: namely, finding somewhere to host. Heroku, Render, and Vercel all support some Node.js to varying degrees. There's naturally going to be questions about cost structure, but having the ability to host anywhere will provide a lot of flexibility with answering this question.

  3. This is a minor point, but the everyone stands to benefit from having the site indexed in major search engines because of the use of static HTML used to render the website.

Cons:

  1. I don't know if static typing would be prohibitive to people on boarding.
  2. This is less of a con, but more of a question about scaling and costs: if we need to send notification emails, I'm sure that one option among others would be to use serverless functions to send these out. Let's just use Vercel as an example. At a certain point of scale, we would need to upgrade to the $20/mo plan, and after 1m usage hours, an extra $2.00 is charged for every extra 1m usage hours: https://vercel.com/docs/functions/edge-functions/usage-and-pricing.
  3. I don't know if its going to be confusing for people to move outside of the client-server model.

I can get started on this.

LurieK commented 1 year ago

This sounds great! I am currently building the signup form in JS but can easily switch it over to TS if that is what others prefer. I have the data entered in the form currently saved in state, but of course, it will need to go to a backend. Prisma works for me. I am not a backend expert but am happy to start that process if no one else is able to do it.

mfong4151 commented 1 year ago

Hey @LurieK thanks for the reply. It might be easier for me to draft the Prisma schema simultaneously with the server set up. But I'm more than happy to pass the ball along with some documentation afterwards.

Let's definitely collaborate on this while we're helping this project get off the ground. :)

LurieK commented 1 year ago

Hey!  That sounds great!  Lurie Kimmerle, M.A., M.T.S.617-459-5959www.LurieKimmerle.com Private Tutor | Feminist Spiritual Coach  On Sep 6, 2023, at 5:31 AM, Max Fong @.***> wrote: Hey @LurieK thanks for the reply. It might be easier for me to draft the Prisma schema simultaneously with the server set up. But I'm more than happy to pass the ball along with some documentation afterwards.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

ChogLight commented 1 year ago

Can we use TailwindCSS for styling? I'm used to work with TailwindCSS but I don't know if everybody likes it

mfong4151 commented 1 year ago

Can we use TailwindCSS for styling? I'm used to work with TailwindCSS but I don't know if everybody likes it

I personally don't have any problems, but you might get more of a representative range of answers if you open a separate issue for this.

I've already completed the setup ready for PR, but I've been agnostic about certain items because I don't want to hog the legos and I don't want to make it seem like I'm calling all the shots :). If you get consensus for Tailwind, it should be pretty straight forward to add it on.