Corporate website for Ledningsteknik AB, a pipe relining and inspection company operating in northern Sweden. Built with Next.js 16, React 19, TypeScript, and Tailwind CSS 4.
| Category | Technology |
|---|---|
| Framework | Next.js 16.2 (App Router) |
| Language | TypeScript 5 (strict) |
| Styling | Tailwind CSS 4 + shadcn/ui |
| UI Primitives | Radix UI 1.4 |
| Icons | Lucide React |
| i18n | i18next + react-i18next |
| Forms | React Hook Form + Zod |
| Nodemailer (SMTP) | |
| Notifications | Sonner |
npm install
cp .env.local.example .env.local # fill in SMTP credentials
npm run devOpen http://localhost:3000.
Create a .env.local file in the project root:
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=info@ledningsteknik.se
SMTP_PASS=your-password
CONTACT_TO=info@ledningsteknik.seThe contact form will not send emails without these variables.
npm run dev # Development server with Turbopack
npm run build # Production build
npm start # Start production server
npm run typecheck # TypeScript type check (tsc --noEmit)
npm run lint # ESLintapp/
actions/ # Server Actions (contact form email)
layout.tsx # Root layout — fonts, providers, metadata
page.tsx # Homepage
globals.css # Global styles and Tailwind theme tokens
components/
sections/ # Page sections (Hero, About, Services, Team, Contact, FindUs)
ui/ # shadcn/ui primitives (Button, Input, Label, …)
navbar.tsx # Navbar with language switcher and dark mode toggle
footer.tsx
cert-logos.tsx # Clickable BRiF / STVF / SINTEF logos with info dialogs
theme-provider.tsx
locales/
langs/
se.json # Swedish translations
en.json # English translations
i18n.ts # i18next configuration
public/ # Static assets (images, logos)
types/ # Ambient type declarations
- Bilingual — Swedish and English, switchable from the navbar
- Dark mode — system preference detected, persisted in localStorage
- Contact form — validated with Zod, sent server-side via SMTP
- Certification dialogs — clicking BRiF, STVF or SINTEF logos opens an info dialog
- Fully typed — TypeScript strict mode, zero
any
Any Node.js host that supports Next.js works (Vercel, Netlify, self-hosted). Set the environment variables listed above before deploying.
Code and design by Josefine.
