Skip to content
All Work

Personal Website

Personal portfolio

Gage OlsonCybersecurity & IT Portfolio

I developed gageolson.com as a home for my professional background in cybersecurity and IT. The site brings together my experience, education, certifications, projects, and technical learning in a format visitors can explore beyond a traditional résumé.

It is one half of a dual-portfolio project. While gageolson.com focuses on my professional background, gageolson.dev focuses on my development work and interactive experiments. Both sites are maintained in one monorepo, with separate applications and distinct presentations.

Project type
Personal portfolio
Parent project
Gage Olson — Dual Portfolio
My role
Design, development, and content structure
gageolson.com
Screenshot of the gageolson.com homepage

The challenge

More than a résumé, without losing clarity.

A professional background covers experience, education, certifications, projects, and ongoing learning. The site needed to present all of it in a format visitors can explore, while staying clearly separate from my development portfolio.

  • A clear professional presentation

    Experience, education, certifications, and contact information needed to be easy to approach and quick to scan, without reading like a dense résumé.

  • Room for technical learning

    Hands-on work and ongoing learning needed space for more detail than a list of skills or a single line on a résumé can hold.

  • Different kinds of writing

    Blog posts, guides, lab write-ups, and case studies serve different purposes and needed to be organized so readers can find the type they want.

  • A distinct site beside a development portfolio

    The professional site needed its own presentation and audience while still belonging to the same portfolio project as gageolson.dev.

The approach

A professional home with room to go deeper.

I organized the site around a clear homepage for my background and a structured publishing area for technical writing, with content collections that keep new articles consistent.

Professional presentation

A homepage and supporting pages that introduce my professional background in a clear, approachable way.

  • Homepage sections for background, projects, certifications, courses, and contact information
  • Responsive navigation and layouts
  • Branded imagery and parallax sections
  • Separate routes for projects and articles

Structured technical content

One publishing area where different kinds of technical writing live side by side and stay easy to find.

  • A unified area supporting blog posts, guides, labs/write-ups, and case studies
  • Keyword search across indexed titles, descriptions, excerpts, and tags
  • Collection filters represented in URL query parameters
  • Individual article pages
  • Draft exclusion in the content loader

CMS and authoring

Structured content collections, so new writing follows a consistent shape.

  • TinaCMS configuration for structured content collections
  • Markdown and MDX content stored in the repository
  • Fields for article metadata, authors, tags, images, and SEO information
  • A custom inline-image component with image, alt text, and caption fields
  • MDX rendering and code-formatting support

The site presents certifications, courses, and education as part of my background; this case study describes how that information is organized, not the status of each credential. Not every content collection is populated yet.

Technical highlights

The structure behind the writing.

Two parts of the project that make a growing body of technical content practical to publish and easy to explore.

1

Searchable, filterable publishing

Readers can narrow a mix of posts, guides, lab write-ups, and case studies down to what they are looking for, and share the filtered view as a link.

Keyword search runs across indexed titles, descriptions, excerpts, and tags. Collection filters are stored in URL query parameters, so a filtered view survives a page refresh and can be bookmarked or shared.

The content loader excludes drafts, so unfinished articles stay out of listings and search until they are ready to publish.

2

Structured authoring with TinaCMS

Every article follows the same shape, so new writing is quicker to add and consistent to read.

A TinaCMS configuration defines the content collections and their fields: article metadata, authors, tags, images, and SEO information. Content is stored as Markdown and MDX files in the repository, so every change is versioned alongside the code.

A custom inline-image component gives authors dedicated fields for the image, its alt text, and a caption, which keeps accessibility details part of the writing process. MDX rendering includes code-formatting support for technical examples.

Dual Portfolio Project

Two sides of one professional identity

gageolson.com and gageolson.dev are separate websites within one portfolio project. The professional site presents my cybersecurity and IT background; the development site highlights software, websites, and interactive work. A shared repository and development workflow keep the two sites organized while allowing each to serve its own audience.

One monorepo

Two websites maintained in one code repository.

sites/cyber-site
The professional Next.js application behind gageolson.com.
sites/dev-site
The development Next.js application behind gageolson.dev.
pnpm workspaces
Organize the two applications within the repository.
Turborepo
Coordinates development and build tasks across both applications.
Root scripts
Individual build and dev commands for each app.

The sharing is limited to repository organization and tooling. Each site has its own component tree and its own TinaCMS configuration, and the two do not share a UI package, database, sign-in, or content.

Technology

Built with

Application
Next.js 15 App Router, React 19, TypeScript
Interface
Tailwind CSS 3, Radix UI/shadcn-style components
Content
TinaCMS, Markdown / MDX
Repository
pnpm workspaces, Turborepo
Deployment workflow
GitHub and Vercel deployment configuration

What this demonstrates

The same skills, applied to your project.

gageolson.com is my own portfolio, but the pieces behind it are what many professionals, creators, and organizations need from a website. This is the kind of work I can build for you.

View All Work

Start a conversation

Present your experience with clarity.

A professional website can show your background, your learning, and your work in more depth than a résumé.