Marketing website for Kumuluz — a bilingual (English/Slovenian), statically exported Next.js site deployed to Netlify.
- Next.js 16 (App Router,
output: 'export'static build) - React 19 + TypeScript
- Tailwind CSS v4 (via
@tailwindcss/postcss) - motion and three /
@firecms/neatfor animated backgrounds - lucide-react icons
- ESLint + Prettier
npm install
npm run devThe dev server runs at http://localhost:3000. The bare root redirects to the
default English locale at /en/.
| Script | Description |
|---|---|
npm run dev |
Start the local dev server |
npm run build |
Static export to out/ |
npm run start |
Serve the production build |
npm run lint |
Run ESLint |
npm run lint:fix |
Run ESLint with --fix |
npm run format |
Format with Prettier |
npm run format:check |
Check formatting without writing |
npm run doctor |
Run react-doctor diagnostics |
app/ Next.js App Router
[lang]/ Locale-scoped routes (about, company, expertise,
kumuluz, partners, products, solutions)
layout.tsx Root layout
page.tsx Root → /en/ redirect
robots.ts robots.txt
sitemap.ts sitemap.xml
src/
components/ Shared UI (cards, backgrounds, icons, header)
content/ Localized copy per section
lib/ Routing, metadata, navigation, structured data, accents
views/ Page-level views and route wrappers
public/ Static assets
Content is served under a [lang] segment. Supported locales are en and sl
(see src/lib/router.ts). Routes and paths are built via buildPath /
parseRoute, and localized copy lives in src/content/.
Deployed on Netlify. netlify.toml runs next build and publishes the exported
out/ directory. Because the site is a static export (no server or middleware),
the / → /en/ redirect is handled at the Netlify edge.
Static-export constraints worth noting:
output: 'export'— no server-side runtimetrailingSlash: trueimages: { unoptimized: true }