Modern Kostech website — Nuxt 4 + TailwindCSS v4 + Cloudflare Pages.
- Nuxt 4 (
compatibilityVersion: 4), TypeScript strict - Tailwind CSS v4 via
@tailwindcss/vite @nuxt/icon(Iconify: fa6-solid/regular/brands, lucide)@nuxt/image,@nuxtjs/color-mode,@nuxtjs/seo,@vueuse/nuxt- Server API on Nitro, deployed as Cloudflare Pages Functions
- Storage: Cloudflare KV (binding
CACHE) with in-memory fallback for local dev
/— bento home (mirror of rootindex.htmldesign)/servicii,/servicii/[slug]— services list & detail with FAQ JSON-LD/booking— 4-step booking wizard/contact— contact form/admin/login,/admin,/admin/leads,/admin/bookings— simple admin
pnpm install
pnpm --filter @kostech/web dev
# → http://127.0.0.1:3001KV/D1/R2 calls fall back to in-memory storage in dev. To test against real bindings use pnpm wrangler pages dev after pnpm build (requires glibc ≥ 2.35).
pnpm --filter @kostech/web build # → apps/web/dist
pnpm --filter @kostech/web deploy # wrangler pages deploy| Var | Notes |
|---|---|
NUXT_ADMIN_TOKEN |
Shared secret for /admin/login |
NUXT_PUBLIC_SITE_URL |
Canonical URL (e.g. https://kostech.md) |
NUXT_TURNSTILE_SITE_KEY |
Optional Cloudflare Turnstile site key |
NUXT_TURNSTILE_SECRET_KEY |
Optional Cloudflare Turnstile secret |
Class-based dark mode via @nuxtjs/color-mode (cookie key kostech-theme), with no-flash inline script in app.head. Toggle via the header button.