Skip to content
TadasBaPublic

About

Next.js and TypeScript restaurant concept exploring typed localisation, accessible interactions, static rendering, motion and performance.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Cechas

Static bilingual website for a fictional 30-seat open-fire bistro in Paupys, Vilnius.

Problem

Restaurants need a fast, credible site that answers the essentials: atmosphere, menu, events, location, and reservation intent without a backend.

Audience

Diners, private-event guests, and reviewers looking at a polished frontend portfolio project.

Implemented

I built the full static Next.js site: bilingual routing, typed copy, menu data, reservation sentence UI, motion, local fonts, SEO metadata, JSON-LD, sitemap, robots, Cloudflare headers/redirects, CI checks, and Pages deployment workflow.

Structure

  • app/ routes: Lithuanian at /, English under /en/.
  • components/ UI, layout, page sections, menu, reservation.
  • content/ typed dictionaries and menu data.
  • lib/ locale, metadata, dates, fonts, mock reservations.
  • public/ static assets plus Cloudflare _headers and _redirects.
  • tests/ and scripts/ static SEO/export validation.

Decisions

Next.js static export keeps hosting simple and cheap on Cloudflare Pages. The build uses webpack explicitly for reliable static exports. Copy is dictionary-driven so missing translations fail typecheck. Images are unoptimized because there is no server runtime. Security headers avoid CSP because the static Next output needs inline framework scripts. The example site is blocked from search indexing through page metadata, response headers, and robots.txt.

Tests

Run:

npm run check

This runs ESLint, TypeScript, static SEO tests, production build, export validation, and npm audit --audit-level=moderate.

Deployment

Connect the repository through Cloudflare Pages and use:

  • Production branch: main
  • Build command: npm run build
  • Build output directory: out
  • Environment variable: NODE_VERSION=20.20.2

wrangler.toml is the deployment source of truth and fixes the publish directory to out. Cloudflare deploys successful builds automatically. GitHub Actions runs the full npm run check suite for pull requests and pushes; no Cloudflare secrets are stored in GitHub.

Unfinished

Reservations still use a mock API. A real release needs a Cloudflare Worker or Pages Function, persistent storage, real business details, analytics/monitoring, and final domain redirects in Cloudflare.

About

Next.js and TypeScript restaurant concept exploring typed localisation, accessible interactions, static rendering, motion and performance.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages