Company website for Dev AS — a Norwegian web development studio. Built with Next.js 15, deployed on Vercel.
Live: devify.no
| Framework | Next.js 15 (App Router, Turbopack) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 |
| Forms | React Hook Form + Zod |
| Resend | |
| Spam protection | Google reCAPTCHA v3 |
| Deployment | Vercel |
| Package manager | pnpm |
pnpm install
cp .env.example .env
# fill in .env values (see below)
pnpm devOpen http://localhost:3000.
Copy .env.example to .env and fill in the values:
# Google reCAPTCHA v3
# https://www.google.com/recaptcha/admin
RECAPTCHA_SECRET_KEY=
NEXT_PUBLIC_RECAPTCHA_SITE_KEY=
# Resend — transactional email
# https://resend.com
RESEND_API_KEY=
RESEND_FROM_EMAIL=Dev AS <noreply@yourdomain.com>
RESEND_TO_EMAIL=you@yourdomain.com
RESEND_FROM_EMAILmust use a domain verified in your Resend account.
pnpm dev # dev server with Turbopack
pnpm build # production build
pnpm start # serve production build
pnpm check # lint + typecheck
pnpm format:write # format all files with Prettiersrc/
├── app/
│ ├── api/contact/ # Contact form API route (reCAPTCHA + Resend)
│ ├── personvern/ # Privacy policy page
│ ├── layout.tsx
│ └── page.tsx # Main landing page
├── components/
│ └── RecaptchaWrapper.tsx
├── env.js # Type-safe env via @t3-oss/env-nextjs
└── styles/
└── globals.css
Deployed on Vercel. Set the environment variables in the Vercel project dashboard — do not commit .env to git.
vercel env add RESEND_API_KEY
vercel env add RESEND_FROM_EMAIL
vercel env add RESEND_TO_EMAIL
vercel env add RECAPTCHA_SECRET_KEY
vercel env add NEXT_PUBLIC_RECAPTCHA_SITE_KEYThis project is source-available under the Devify Non-Commercial License 1.1.
You may use and modify it for personal, private, internal, and other non-commercial purposes only. Commercial use, public deployment, public hosting, and redistribution require prior written permission from Dev AS.