Official website for Cuarto y Mitá, a coffee shop and store in the heart of Oviedo, Spain.
Live Site: https://www.cuartoymita.com/
/— Landing/menu— Menu with tabs by category (coffees, teas, cured meats, cheeses)/cuartoymita— About us, values, testimonials/contacto— Map, address, phone and email/politica-cookies— Cookie policy (not indexed)
- App Router with fully static generation (SSG) on every route — CDN-servable with no SSR runtime
- Server Components by default, Client Components only where interaction requires (
Header,MenuTabs,CookiesBanner) - Strict TypeScript end-to-end with typed data sources (
MenuCategory,Testimonial) - Tailwind CSS v4 with design tokens declared via
@theme(notailwind.config.ts) - Turbopack as bundler
- Path aliases (
@/*) for clean imports - Fonts served via
next/font(Cormorant Garamond + DM Sans), self-hosted and preloaded - Images optimized with
next/imageand WebP format
- Responsive layout with mobile hamburger menu (body scroll-lock when open)
- Header transparent over the hero, switches to solid on scroll via custom
useScrolledhook - Menu tabs synced with
window.location.hash— deep-linkable and reactive tohashchange - Selective smooth scroll using Next.js 16
data-scroll-behavior="smooth" - Cookie banner persisted in
localStorageand reopenable from the footer
role="tablist"/role="tab"/role="tabpanel"witharia-selectedandaria-controlson menu tabsaria-current="page"on active navigation linksaria-expandedandaria-controlson mobile hamburger buttonrole="dialog"on cookie banner- Visible
focus-visibleoutlines on all interactive elements - Semantic landmarks (
<header>,<main>,<nav>,<footer>) and descriptivealttext
- Security Headers:
X-Content-Type-Options,X-Frame-Options,Referrer-PolicyandPermissions-Policyconfigured for all routes vianext.config.ts - Cookie Policy: GDPR-compliant cookie consent management with reopen flow
- Metadata: Unique title and description for each page, with template fallback in root layout
- Social Sharing: Site-wide OpenGraph and Twitter Card (
summary_large_image) with per-page overrides - Sitemap & Robots: Auto-generated
sitemap.xml(withpriorityandchangeFrequency) androbots.txt - Canonical URLs: Defined on every page
- Selective indexing:
noindexon/politica-cookiesplus explicit disallow inrobots.txt
Contributions are welcome! Feel free to open an issue or submit a pull request.