This wants to be a rewrite in NextJS (stack below) of all the websites that PoliNetwork currently has. First, it will be a rewrite of our homepage.
- Next.js
- Tailwind CSS (eventually with shadcn)
- TRPC to connect to backend
Backend calls are server-only (src/lib/backend.ts) and carry a service token for the website client (scope
backend:public:read): the backend refuses calls without one. These variables are required (see .env.example):
IDP_PUBLIC_URL, and optionallyIDP_INTERNAL_URLfor in-cluster token requestsOAUTH_BACKEND_RESOURCE_URI: the backend's resource identifier, the token's audienceOAUTH_WEBSITE_CLIENT_IDandOAUTH_WEBSITE_PRIVATE_JWK(secret): the client and its private signing key as a JWK
If you are contributing, you may check GUIDES.md
/matricole reads resources, Telegram links and the five selected FAQs from web.freshman.getContent
through the existing server-only website client. The route renders at request time so admin changes are
visible on subsequent page loads. Titles, introductory text, group headings and responsive layout remain fixed.
Cards resolve their icons from the backend's allowlist; empty destinations remain non-clickable placeholders.
FAQ answers are rendered as text in the existing accordion. If content cannot be loaded, the page keeps its
intro and displays an unavailable message instead of static fallback data.
This integration requires a running backend with the Freshman router and migration. The pinned
@polinetwork/[email protected] does not yet include the Freshman type contract: once the updated package is
published, update the dependency and lockfile, then run pnpm check, pnpm typecheck and pnpm build.
Until then, typecheck reports the missing contract. No temporary declaration patches are included.