How We Build/Software Stack
1Software & Packages

What runs in the app

A practical map of the frameworks, UI libraries, and utilities declared in the project. Nothing here is a WordPress plugin — every item is an explicit package wired in code.

Foundation

Next.js 15Application framework

File-based routing, React Server & Client Components, API routes, and the production build the host runs. The spine of the codebase.

React 19UI layer

Components, state, and hooks. Every interactive element on the page is a React component.

TypeScript 5Type safety

Static typing on top of JavaScript. Larger refactors stay safer and editors give better autocomplete across the whole project.

Styling & UI

Tailwind CSSUtility-first styling

Design tokens and layout utilities. Ships only the CSS classes actually used on the page — no dead weight.

Radix UIAccessible component primitives

Dialogs, navigation menus, and form controls with correct ARIA attributes built in. No custom wheel-reinventing for accessibility.

GeistFont family

Vercel's clean, modern typeface — optimised for both screen readability and branding consistency.

lucide-reactIcon set

Consistent SVG icons used throughout the UI. Lightweight and tree-shakeable.

next-themesLight / dark mode

Handles theme switching without flash-of-wrong-theme on load.

Forms & Validation

react-hook-formForm state management

Performant form handling without unnecessary re-renders. Pairs with Zod for validated submissions.

ZodSchema validation

Type-safe runtime validation for form input, API responses, and environment variables. Errors surface early and clearly.

Data & Connectivity

Supabase / PostgreSQLDatabase layer (when needed)

Much of the site is static — a visitor reading a page does not need a live database. When features require saved records, sign-in, or real queries, Supabase provides managed PostgreSQL, authentication, and HTTP APIs addressed from the app with environment keys. It is a deliberate dependency you add, not a hidden part of a page builder.

Fetch / HTTPSAPI connectivity

Route handlers and serverless functions call external services over HTTPS. Secrets stay in environment variables, never in the browser bundle.

@anthropic-ai/sdkAI model access

Available for API routes that need model-backed behaviour — smart search, content generation, or automation hooks. Separate from the static public shell of most pages.

Analytics & Utilities

@vercel/analyticsFirst-party traffic

Measures page views and referrers without a third-party cookie banner. Data stays with the project.

Recharts / date-fns / sonnerCharts, dates, toasts

Lightweight utilities for data visualisation, date formatting, and notification toasts where a page needs them.

class-variance-authority / tailwind-merge / clsxClass name helpers

Keep conditional Tailwind class lists maintainable and conflict-free across component variants.