Personal portfolio site for Leo Johnston Mesia. Built with Next.js, statically exported, and deployed on Cloudflare Pages.
- Framework: Next.js 15 (App Router,
output: 'export') - Styling: Plain CSS (
app/globals.css) - Map: Leaflet (loaded client-side via
dynamic) - Deployment: Cloudflare Pages
The site calls daft-api for:
GET /spotify/now-playing— current or last played trackPOST /suggestions— song suggestions from visitors
npm install
npm run dev # http://localhost:3000Cloudflare Pages runs npm run build on push to main. Output directory is out.
app/
layout.tsx # Root layout, metadata, fonts
globals.css # All styles
page.tsx # Home route
terminal/page.tsx # /terminal easter egg
components/
HomePage.tsx # Main page component
TerminalPage.tsx # Terminal UI
MapSection.tsx # Leaflet map (client-only)
public/
assets/
figure.svg # Site mascot/figure
logo-mark.png # Brand mark
favicon.png