Built with NextJs13.4 making use of sever actions and server components.
Most pages are generated SSR and revalidated on client-side user action with the help of a redis based database (vercel redis in this case).
Uses tailwindCss for styling along with two plugins: tailwind-animate and tailwind-scrollbar
Different parts of the app are divided into semantically-named folders, for example the auth folder contains all the needed backend-side api calls (server actions) AND the UI React components used on the /auth page.
Further, each folder is divided into sub-folders, for example the auth folder is divided into actions, lib and ui where:
actionscontains the api calls (server actions) that run server-onlylibcontains type definitions and other helper classes.uicontains the react components used in the/app/auth/page.tsxpage.
actions and ui are a common pattern while the /auth folder contains the [...nextauth], this is a catch-all route handler that handles all https requests: GET, POST, PUT, etc...
This is the only route handler in the app as everything else is handled using server actions. This might change in the future as NextAuth might add server actions support.
the test folder contains sub-folder each with it's own page.tsx that can be used to render components in isolation for testing. for example, test/button/page.tsx can be used to test the button component at ui/buttons/Button.tsx. This acts as a lightweight pseudo-storybook alternative.