Production-ready Next.js portfolio showcasing TeamPilot AI — a project management platform with grounded AI.
This is not a traditional developer portfolio. It’s designed like a SaaS product landing page, where visitors discover what I build before they discover who I am.
The experience flow:
portfolio/
├── app/
│ ├── layout.tsx # Root layout with fonts, metadata
│ ├── page.tsx # Main page (all sections)
│ └── globals.css # Global styles, custom CSS
├── components/
│ ├── Navigation.tsx # Fixed navbar
│ ├── Hero.tsx # Product hero section
│ ├── ProductOverview.tsx # What TeamPilot is
│ ├── DemoVideo.tsx # YouTube embed
│ ├── EngineeringMindset.tsx # How I build software (principles)
│ ├── Architecture.tsx # System architecture diagrams
│ ├── TechnicalDecisions.tsx # Trade-offs explained
│ ├── EngineeringChallenges.tsx # Problems solved
│ ├── TechStack.tsx # Technologies & reasons
│ ├── OtherWork.tsx # TToô, GitHub, IBM Challenge
│ ├── About.tsx # About the builder (concise)
│ └── Contact.tsx # Hire section
├── public/
│ └── cv/ # Resume PDF
└── tailwind.config.ts # Design system config
#0F62FE (TeamPilot brand)#0D1B2A#1B2838#FFFFFF (headings), #B8C5D0 (body), #6B7C8E (muted)#43E97B), Warning (#FFB84D), Error (#FF6584)4px96px (desktop), 64px (mobile)npm install
npm run dev
Open http://localhost:3000 in your browser.
npm run build
This generates a static export in the out/ directory, ready for deployment to GitHub Pages, Vercel, or any static host.
npm run buildout/ directory contains the static sitegh-pages branch or configure GitHub Actions✅ Product-first narrative — Visitors see the product before the developer
✅ Engineering depth — Architecture diagrams, trade-offs, challenges solved
✅ Real data only — No fabricated metrics, no fake testimonials
✅ Premium design — Inspired by Linear, Stripe, Vercel
✅ Fast & accessible — Static export, semantic HTML, keyboard navigation
✅ SEO optimized — Metadata, structured content, fast load times
Every section follows this rule:
“Would this increase the probability that a startup founder hires me?”
If no, it doesn’t ship.
Replace placeholder in Hero.tsx with actual TeamPilot screenshots:
Place screenshots in public/img/teampilot/ and update component imports.
Add Vercel Analytics or Plausible for privacy-focused tracking:
// app/layout.tsx
import { Analytics } from '@vercel/analytics/react';
export default function RootLayout({ children }) {
return (
<html>
<body>
{children}
<Analytics />
</body>
</html>
);
}
MIT License — feel free to fork and adapt for your own portfolio.
Dieudo Tshibangu
Email: tshibangudieudo@gmail.com
GitHub: github.com/tshibangu-dieudo
LinkedIn: linkedin.com/in/dieudo-tshibangu-b3ab0336a
Built with Next.js, TypeScript, and Tailwind CSS.