Skip to main content

Webv2 frontend

This is the main frontend of the Tadoku website. It contains all logging & contest functionality.

Architecture

  • A Next.js app written using TypeScript
  • Data is fetched through React Query and response is validated with Zod
  • Consumes the following APIs:
    • immersion-api: the main api for logging and contest functionality (specs: services/immersion-api/http/rest/openapi/api.yaml)
    • content-api: the api for fetching blog posts & pages (specs: services/contest-api/http/rest/openapi/api.yaml)
  • The app uses Tailwind CSS for styling
  • Uses the Tadoku component library "ui" from within the workspace
    • Refer to frontend/apps/styleguide for a reference on how to use this component library
  • All forms are written with react-hook-form
  • Dates are manipulated using Luxon