# Shinecode Frontend Standards

## Stack
- Next.js 16 (for SEO, Discovery, and Public Pages)
- Laravel Blade (for the Booking Engine)
- React 19
- TypeScript
- Tailwind CSS 4.x
- Shared Shinecode UI package

## The Booking Wizard Exception (Critical)
The transactional booking wizard is the most critical conversion tool in the platform. To minimize client-side state friction and streamline execution, **the booking wizard must bypass heavy JavaScript frameworks.**

- **Do not** compile template workflows through heavy asset scripts (`npm run build`).
- **Do not** use Vue.js, React, or SPAs for the core booking engine.
- **Do** embed the booking wizard components directly into server-side Laravel Blade layouts.

This ensures maximum reliability, instant execution, and zero client-side hydration delays at the point of conversion.

## TypeScript (Next.js Apps)
Strict mode is mandatory. Do not use `any` to suppress design or API problems.

## React & Next.js Constraints
Use Next.js for the `/sc/shinecode_frontend/` ecosystem only (discovery and public surfaces).

Prefer: Server Components by default, small components, explicit data flow.
Avoid: Global state without justification, huge components, client components without a real reason.

## Performance
Do not add client JavaScript without understanding its cost. Every client component should have a reason. If information can be rendered by the server (Next.js SSR or Laravel Blade), it must be.
