Skip to content
All Work

Personal Website

Personal portfolio

Gage OlsonDeveloper Portfolio & Interactive Playground

I developed gageolson.dev to give my programming work its own space. The site combines a developer-focused visual identity with project pages, website case studies, writing layouts, and interactive browser-based experiments.

It is the development half of my dual-portfolio project. While gageolson.com presents my cybersecurity and IT background, gageolson.dev focuses on what I build and how I approach development. Both sites live in one monorepo while retaining separate applications, content, and visual identities.

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

The challenge

Giving development work its own space.

Development work is easier to judge when visitors can see how it is presented and, where possible, try it for themselves. The site needed to organize several kinds of work while remaining distinct from my professional website.

  • A presentation suited to developers

    Development work speaks to a different audience than a professional background, and it needed a visual identity and structure built for that audience.

  • Interactive work beside written descriptions

    Some work is easier to understand by trying it. The site needed room for browser-based demonstrations alongside the written explanations of projects.

  • Several kinds of work in one place

    Projects, website case studies, writing, and experiments each needed their own home and a clear way for visitors to move between them.

  • Two distinct sites, one workflow

    The development site needed its own identity while staying coordinated with gageolson.com in the same repository and development workflow.

The approach

A developer portfolio with interactive pieces built in.

I organized the site around a developer-focused homepage, keyboard-friendly navigation, a playground of browser-based demonstrations, and dedicated areas for projects, website case studies, and writing.

Developer-focused presentation

A visual identity that reads as a developer’s portfolio from the first screen.

  • A terminal-inspired homepage with animated command and output text, as a visual presentation component rather than a working shell
  • Developer-oriented typography, reusable cards, and technology badges
  • Dedicated About, Projects, Websites, Writing, Playground, and Contact routes
  • Responsive navigation and layouts
  • A contact form that prepares a message in the visitor’s own email client

Keyboard navigation

A quick way to move around the site without reaching for the mouse.

  • A command palette opened with Ctrl+K or Cmd+K
  • Searchable navigation commands
  • Shortcuts to configured project and demo entries and external profiles

Interactive playground

Small browser-based demonstrations visitors can use directly.

  • A bubble-sort visualizer with adjustable array size and animation speed
  • A regular-expression tester with editable patterns, flags, and test text, plus match details and error feedback
  • A color-palette generator with adjustable color count, saturation, and lightness, and controls for copying colors

Project and website presentation

Listing and detail views that keep projects and website work organized.

  • Project listing and detail interfaces
  • Filtering components with technology and category labels
  • A website case-study collection queried through TinaCMS
  • Structured website fields for description, role, technology stack, images, tags, and destination links

Writing interfaces

Layouts ready for articles about development work.

  • Article listing and detail layouts
  • Markdown and code presentation components

Some project entries and articles on the site are sample content used to demonstrate the layouts, including projects such as a network monitor, an API gateway, and an analytics dashboard. Those applications are not implemented in this repository, and this case study describes the interfaces that present them.

Technical highlights

The details behind the presentation.

Two parts of the project that shape how visitors experience the site and how its content is managed.

1

A terminal look with practical navigation

The homepage sets a developer tone, and the command palette gives keyboard users a fast way to get around.

The terminal on the homepage is a presentation component: animated command and output text that introduces the site. It does not run commands.

The command palette, built with cmdk, opens with Ctrl+K or Cmd+K. It searches a set of navigation commands, configured project and demo shortcuts, and external profiles. It is navigation search, not a full-text search of every page on the site.

2

Structured website case studies with TinaCMS

Website case studies follow a consistent structure, so each entry presents the same kinds of information.

The website case-study collection is queried through TinaCMS, with fields for descriptions, role, technology stack, images, tags, and destination links.

TinaCMS schemas also exist for other content, but the project and writing pages currently load sample, hardcoded content. Those areas are built and ready for real entries rather than fully CMS-driven.

Outcome

A development-focused portfolio that complements my professional website while sharing a common repository and workflow.

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, cmdk
Content
TinaCMS, Markdown / MDX content structures
Repository
pnpm workspaces, Turborepo
Source control
GitHub

What this demonstrates

The same skills, applied to your project.

gageolson.dev is my own portfolio, but the pieces behind it apply to many websites and web applications. This is the kind of work I can build for you.

View All Work
gageolson.com
Screenshot of the gageolson.com homepage

Personal Website · Dual Portfolio Project

Gage Olson — Cybersecurity & IT Portfolio

The professional side of my dual portfolio, presenting my cybersecurity and IT background, technical learning, and searchable technical writing.

Start a conversation

Give your work a home of its own.

A portfolio built around your work can present projects, writing, and interactive pieces in a way that suits your audience.