A modern, terminal-themed portfolio website built with Next.js and TailwindCSS. The site features a responsive design inspired by oh-my-zsh with the powerlevel10k theme, combining terminal aesthetics with clean typography and smooth interactions.
Clone the repository:
git clone https://github.com/yourusername/portfolio.git
cd portfolio
Install dependencies:
npm install
# or
yarn install
Start the development server:
npm run dev
# or
yarn dev
The site will be available at http://localhost:3000
npm run build
# or
yarn build
The project uses GitHub Actions to automatically deploy to AWS S3. To set up deployment:
stephenjacobs.io
Pushing to the main branch will trigger automatic deployment.
stephen-jacobs-website/
├── .github/
│ └── workflows/
│ └── deploy.yml
├── src/
│ ├── app/
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── components/
│ │ ├── Header.tsx
│ │ └── HeroSection/
│ │ ├── index.tsx
│ │ ├── ProjectCard.tsx
│ │ ├── BlogPost.tsx
│ │ ├── SkillTag.tsx
│ │ └── SocialLink.tsx
│ ├── data/
│ │ ├── projects.ts
│ │ ├── posts.ts
│ │ └── skills.ts
│ └── types/
│ └── index.ts
└── [configuration files]
The project uses a custom Tailwind configuration with:
Create a .env.local
file with:
NEXT_PUBLIC_SITE_URL=https://stephenjacobs.io
Content is managed through TypeScript files in the src/data
directory:
projects.ts
: Featured projectsposts.ts
: Blog postsskills.ts
: Technical skillsThe color scheme and theme settings can be modified in tailwind.config.js
. The default theme uses a dark color palette with cyan accents.
The site layout is component-based. Main components can be found in src/components/
and can be modified independently.
Update the content files in src/data/
to change the displayed information. The TypeScript types ensure content structure remains consistent.