Personal portfolio of Nathan Jessen — AI-native engineer shipping production software with Next.js and agentic workflows.
- Modern, responsive single-page design using TailwindCSS
- Mobile-first approach with a clean, minimalist UI
- Fast page loads with Next.js 16 App Router
- Component-driven development with Storybook
- SEO optimized
- TypeScript for type safety
- Deployed on Vercel with automatic CI/CD
- Next.js ^16 - React framework for production
- React ^19 - UI component library
- TypeScript - Static type checking
- TailwindCSS - Utility-first CSS
- PostCSS - CSS processing
- ESLint - Linting
- Prettier - Code formatting
- Storybook - Component development
- @next/bundle-analyzer - Bundle analysis
- Vercel - Hosting & CI/CD
- Node.js 20.9.0 or later
- npm 10 or later
- Clone the repository:
git clone https://github.com/nathanjessen/portfolio.git
cd portfolio- Install dependencies:
npm install- Start the development server:
npm run dev # Standard mode
npm run dev:turbo # Turbo mode (faster builds)npm run dev- Start development servernpm run dev:turbo- Start with Turbo modenpm run storybook- Start Storybook
npm run build- Create production buildnpm run start- Start production servernpm run clean- Remove build artifactsnpm run build-storybook- Build Storybook
npm run typecheck- TypeScript checknpm run lint- ESLint checknpm run lint:fix- ESLint autofixnpm run format- Prettier formatnpm run format:check- Prettier checknpm run check- All checks
npm run analyze- Bundle analysis
portfolio/
├── app/ # Next.js App Router pages and layouts
│ └── layout.tsx # Root layout
├── components/ # React components (one directory per component)
├── constants/ # Data and configuration (projects, experience, techlist, etc.)
├── public/ # Static assets
├── stories/ # Full-page Storybook stories
└── styles/ # Global CSS
ESLint and Prettier configuration:
eslint.config.mjs- ESLint rules.prettierrc- Prettier config.prettierignore- Formatting exclusions
Found a bug? Report it here or submit a PR with the fix.
Deployed on Vercel with:
- Production Branch:
main - Framework Preset: Next.js
- Build Command:
npm run build - Output Directory:
.next