A static-first portfolio built with Next.js, TypeScript, Tailwind CSS, shadcn/ui patterns, and Framer Motion.
npm install
npm run devProduction checks:
npm run lint
npm run buildMost ongoing edits should happen in content/site-data.ts.
This file controls:
- hero copy and contact links
- featured project case studies
- smaller projects
- experience and education
- skills and interests
The downloadable resume is stored at:
public/resume/skyler-smith-resume-2026.pdf
Replace that file when you want to publish a newer version.
The layouts are ready for real media. Recommended folders:
public/images/aboutpublic/images/projects/trust-scorespublic/images/projects/redopublic/images/projects/ella-risespublic/videos/projects/trust-scorespublic/videos/projects/redopublic/videos/projects/ella-rises
After adding files, update the src values in content/site-data.ts.
Examples:
{
type: "image",
src: "/images/projects/trust-scores/dashboard-hero.jpg",
alt: "Trust Scores dashboard screenshot",
caption: "Verification flow overview.",
placeholder: "Hero screenshot slot"
}{
type: "video",
src: "/videos/projects/redo/claims-walkthrough.mp4",
poster: "/images/projects/redo/claims-poster.jpg",
alt: "Redo walkthrough video",
caption: "Short product walkthrough.",
placeholder: "Internal tool walkthrough slot"
}This project is configured for static export via next.config.mjs.
Build output:
npm run buildThe static site will be generated in out/.
Recommended low-cost AWS setup:
- Create an
S3bucket for the static files. - Upload the contents of
out/to the bucket. - Put
CloudFrontin front of the bucket for HTTPS, caching, and custom domain support. - Point your domain through
Route 53.
- The homepage is the primary recruiter experience.
- Each flagship project has its own static case study page.
- The design intentionally supports missing media gracefully, so you can polish the content over time without breaking the layout.