Corporate website for Thornebridge Holdings. A minimal, design-forward static site showcasing the company portfolio, open positions, and engineering philosophy. Built with React 19 and Vite, served via Nginx in Docker.
Live: thornebridge.tech
- Portfolio showcase -- Project cards for each Thornebridge product with tech stack, problems solved, and future roadmap
- Careers section -- Expandable role listings with pay bands, responsibilities, and one-click email apply
- Responsive design -- Mobile-first layout with hamburger navigation and scroll-to-top
- Animations -- CSS reveal animations with staggered delays
- Konami code -- Hidden easter egg that adjusts the bridge watermark opacity
- SPA routing -- Client-side routing via React Router with Nginx fallback
- Static build -- Vite production build with hashed assets for aggressive caching
- Security headers -- X-Content-Type-Options, X-Frame-Options, Referrer-Policy via Nginx
- Gzip compression -- Nginx-level compression for all text-based assets
| Layer | Technology |
|---|---|
| Framework | React 19 |
| Language | TypeScript |
| Build | Vite 6 |
| Routing | React Router 7 |
| Styling | Tailwind CSS 3 |
| Server | Nginx (Alpine) |
| Container | Docker (multi-stage build) |
| Runtime | Node.js 22 (build stage only) |
src/
pages/
HomePage.tsx -- Hero section and careers listing
ProjectsPage.tsx -- Portfolio grid with project cards
components/
BridgeLogo.tsx -- SVG bridge watermark
CareersSection.tsx -- Expandable role cards
MobileMenu.tsx -- Slide-out mobile navigation
ProjectCard.tsx -- Individual project display
ScrollToTop.tsx -- Route-change scroll reset
TechBadge.tsx -- Stack technology pill
data/
projects.ts -- Portfolio project definitions
hooks/
useKonamiCode.ts -- Konami code easter egg hook
layouts/
RootLayout.tsx -- App shell with header, footer, and navigation
pnpm install
pnpm devdocker build -t thornebridge-tech .
docker run -d --name thornebridge-tech -p 80:80 thornebridge-tech