Back to projects

Project 01

Portfolio

Terminal assistant portfolio

This site. A scrollable portfolio and a terminal that is the AI assistant, both reading one shared content source.

2
interfaces over one shared content source: web and terminal assistant

Problem

A conventional portfolio page tells visitors about engineering work but doesn’t demonstrate it. Recruiters skim it and technical visitors have nothing to explore.

Solution

Built a Next.js site with two interfaces over one shared content source: a scrollable editorial portfolio, and a centered terminal modal where visitors talk to a streaming assistant about Daniel and follow links back into the site.

Architecture

App Router pages for structure and SEO, a ChatProvider-owned terminal overlay that streams OpenRouter replies as a REPL transcript, and a completions API that accepts a context identifier so answers about a specific project or role are grounded without building the prompt in the browser.

Engineering decisions

  • Kept context resolution server-side. The client sends a contextType/contextId, not a constructed prompt
  • Reused the same profile and project data across the web UI and the AI system prompt to avoid maintaining duplicate facts
  • Made the terminal the chat interface instead of running a command language beside a separate sidebar assistant

Technology

Next.js · TypeScript · Tailwind CSS · MongoDB · OpenRouter

Results

  • One shared content source powering the web UI and the terminal assistant

What Daniel learned

One overlay is easier to explain than a command palette that hands off to a second chat panel.