Skip to content

knixan/ledningsteknikAB

Repository files navigation

Ledningsteknik AB — Corporate Website

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.

Ledningsteknik AB mockup

Tech Stack

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
Email Nodemailer (SMTP)
Notifications Sonner

Getting Started

npm install
cp .env.local.example .env.local   # fill in SMTP credentials
npm run dev

Open http://localhost:3000.

Environment Variables

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.se

The contact form will not send emails without these variables.

Scripts

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        # ESLint

Project Structure

app/
  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

Features

  • 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

Deployment

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.

Releases

No releases published

Packages

 
 
 

Contributors