My personal developer portfolio — an interactive, 3D, space-themed single-page site built with Next.js, TypeScript and Tailwind CSS. It showcases my projects, skills and experience, and lets visitors reach me through a contact form.
🔗 Live site: danilbellahmer.dev
| Skills | Experience |
|---|---|
![]() |
![]() |
| Projects | Contact |
![]() |
![]() |
- Interactive 3D keyboard — a Spline keyboard where each keycap is a skill, revealing its title and description on hover/press.
- Smooth animations — GSAP + Motion driven scroll, hover and reveal effects, with Lenis smooth scrolling.
- Space theme — floating particles on a dark canvas, plus full light/dark mode.
- Projects & experience — my real freelance and internship work (Amtech, LAR Castellum, Sonatrach) and academic projects.
- Contact form — email delivery via Resend.
- Downloadable CV — served as a PDF from the site.
- Responsive — works across all screen sizes.
| Layer | Technologies |
|---|---|
| Framework | Next.js 16, React 19, TypeScript |
| Styling | Tailwind CSS, Radix UI, shadcn/ui |
| Animation | GSAP, Motion, Lenis |
| 3D | Spline runtime, Three.js |
| Resend | |
| Validation | Zod |
- Node.js 18+
- pnpm (recommended)
# 1. Install dependencies
pnpm install
# 2. Configure the environment
cp .env.example .env.local
# then fill in the values (see below)
# 3. Start the dev server
pnpm devOpen http://localhost:3000.
| Variable | Required | Description |
|---|---|---|
RESEND_API_KEY |
Yes | API key from Resend for the contact form |
NEXT_PUBLIC_WS_URL |
No | WebSocket URL for optional realtime features |
UMAMI_DOMAIN |
No | Umami analytics script URL |
UMAMI_SITE_ID |
No | Umami website ID |
.env*.localis git-ignored. Use.env.exampleas a template.
| Command | Description |
|---|---|
pnpm dev |
Start the dev server |
pnpm build |
Build for production |
pnpm start |
Run the production build |
pnpm lint |
Lint the project |
Deployed on Vercel: push to the repository, import it into Vercel, add the environment variables, and Vercel handles automatic deployments on every push.
Built on the open-source 3D Portfolio template by Naresh Khatri, adapted with my own content, projects and design tweaks. Licensed under the MIT License.




