Skip to content

Technologies

Henri Sjöblom edited this page Nov 11, 2024 · 6 revisions

Reasons for these technologies

Since this a school project, most of these technologies are brand new to most of us. This is a great opportunity to learn and deepen knowledge of certain technologies.

Frontend

Next.js

Next.js is a modern full stack framework for React and is gaining popularity at a fast pace. The developer experience is great, for example routing has been made really easy. You just need to create a folder for the route and that's it. No hardcoding routes to App.tsx like with React Router.

TailwindCSS

Tailwind allows you two write CSS to the component's className, which makes coding styles more convenient. This style is called inline CSS. Tailwind has a lot of third-party libraries, like Shadcn that is used in some places. Tailwind offers an excellent documentation on their site which also creates a great developer experience.

TypeScript

We used TypeScript in our project to enhance code quality and maintainability by providing static typing. TypeScript helps us catch errors early and makes our code more robust and easier to manage.

Backend

Next.js

We used Next.js for server-side rendering to deliver fast, fully rendered pages and for API routes to handle server-side logic, including authentication, database interactions with Supabase, and AI integration with OpenAI API.

Typescript

We used TypeScript in our project to enhance code quality and maintainability by providing static typing. TypeScript helps us catch errors early and makes our code more robust and easier to manage.

External

Supabase

Supabase is a popular open source alternative to Google's firebase. We chose Supabase for our web app because it provides:

  • Authentication: Helps users sign up and log in securely.
  • Authorization: Manages user permissions and access levels.
  • Database: Offers a reliable and scalable database for storing our data.

OpenAI API (GPT-4)

OpenAI's GPT models seems to be the standard for large language models used in AI assistants, which is why we chose them. The developer experience has a lot of to improve, for example the requests are not always returned as JSON which can break a lot of stuff. Despite this, the pricing is affordable, and the model's capabilities are well-suited to our project.

Cloud

We used Vercel to host our app because it provides easy deployment. Vercel integrates perfectly with Next.js, making it simple to deploy and manage our application.

Clone this wiki locally