Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/memory/MEMORY.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
- [Architecture](architecture.md) — Astro 6 static export, React 19 hydrated portfolio island, GitHub GraphQL/REST build-time repository data, terminal UI theme, SEO/analytics, and shared data layer design
- [Architecture](architecture.md) — Astro 7 static export, React 19 hydrated portfolio island, GitHub GraphQL/REST build-time repository data, terminal UI theme, SEO/analytics, and shared data layer design
3 changes: 2 additions & 1 deletion .agents/memory/architecture.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Portfolio Site Architecture
description: Astro 6 static export, React 19 hydrated portfolio island, GitHub GraphQL/REST build-time repository data, terminal UI theme, SEO/analytics strategy
description: Astro 7 static export, React 19 hydrated portfolio island, GitHub GraphQL/REST build-time repository data, terminal UI theme, SEO/analytics strategy
type: project
---

Expand All @@ -9,6 +9,7 @@ type: project
- **Astro pages/layouts**: `src/pages/index.astro` fetches repository data at build time and renders the React portfolio island with `client:load`; `src/pages/resume.astro` renders the print-optimized resume route.
- **Hydrated React island**: `src/components/Portfolio.tsx` owns the interactive homepage UI, scroll/reveal effects, project workbench, contact actions, and terminal easter egg.
- **Static export**: `astro.config.ts` sets `output: "static"` and `outDir: "out"`; `main-release.yml` uploads that artifact for GitHub Pages.
- **Astro 7 fit**: The repo benefits from the Rust `.astro` compiler, Vite 8/Rolldown path, queued rendering, and background dev server commands while staying static. Do not add `src/fetch.ts`, route cache providers, or SSR adapters unless hosting changes away from static GitHub Pages.

**Why:** Build-time data fetching keeps the deployed site as static HTML/CSS/JS while preserving live GitHub profile/repository data when CI provides `GITHUB_TOKEN`.

Expand Down
9 changes: 7 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# jonathanperis.github.io — AGENTS Guide

Standardized repository instructions for agent harnesses working on this Astro 6 and React 19 static portfolio, deployed to GitHub Pages.
Standardized repository instructions for agent harnesses working on this Astro 7 and React 19 static portfolio, deployed to GitHub Pages.

**Live:** https://jonathanperis.github.io/

Expand All @@ -10,7 +10,7 @@ Standardized repository instructions for agent harnesses working on this Astro 6

| Technology | Purpose |
|-----------|---------|
| Astro 6 | Static site build and GitHub Pages export |
| Astro 7 | Static site build and GitHub Pages export; Rust compiler, Vite 8, queued rendering, and background dev server support |
| React 19 | Hydrated interactive portfolio UI |
| TypeScript 6 | Strict type checking through `astro/tsconfigs/strict` |
| Tailwind CSS 4 | Custom low-glare terminal-style design system via `@tailwindcss/vite` |
Expand All @@ -25,6 +25,10 @@ Standardized repository instructions for agent harnesses working on this Astro 6
```sh
bun install # install dependencies
bun run dev # Astro dev server on :4321
bun run dev:bg # Astro 7 background dev server for agent-assisted work
bun run dev:status # check background dev server status
bun run dev:logs # read background dev server logs
bun run dev:stop # stop the background dev server
bun run lint # astro check
bun run build # static export to ./out
bun run preview # preview the built ./out artifact
Expand Down Expand Up @@ -63,6 +67,7 @@ Data layer
## Key Patterns

- **Static export** — `astro.config.ts` sets `outDir: 'out'`; GitHub Pages deploys the generated artifact.
- **Astro 7 fit** — This repo adopts Astro 7 for the Rust compiler, Vite 8/Rolldown path, queued rendering, and AI-friendly background dev server. It intentionally does not add `src/fetch.ts`, route cache providers, or SSR adapters while hosting remains static GitHub Pages.
- **Build-time GitHub data** — `src/pages/index.astro` calls `fetchRepos()` during `bun run build`; the deployed browser page does not call GitHub APIs.
- **Pinned + ledger model** — `src/lib/github.ts` fetches GitHub profile pinned repos and owned public non-fork repos, excludes metadata repos, preserves pinned order, and removes pinned repos from the lower ledger.
- **Pages URL enrichment** — REST `GET /repos/jonathanperis/{repo}/pages` provides `pagesUrl`; standard `https://jonathanperis.github.io/<repo>/` homepage URLs are fallback Pages links.
Expand Down
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ The site includes a print-optimized `/resume` route, SEO metadata, JSON-LD, GA4

| Technology | Version / source | Purpose |
|-----------|------------------|---------|
| Astro | `^6` | Static site build and GitHub Pages export |
| Astro | `^7` | Static site build and GitHub Pages export, Rust compiler, Vite 8, and agent-friendly dev server support |
| React | `^19` | Interactive portfolio UI (`client:load`) |
| TypeScript | `^6` with `astro/tsconfigs/strict` | Type safety |
| Tailwind CSS | `^4` via `@tailwindcss/vite` | Styling system |
Expand All @@ -37,6 +37,7 @@ The site includes a print-optimized `/resume` route, SEO metadata, JSON-LD, GA4
- Google Analytics 4 loaded only when `PUBLIC_GA_ID` is set
- Konami-code terminal easter egg
- Static export deployed to GitHub Pages from `out/`
- Astro 7 background dev server scripts for agent-assisted local inspection

## Getting Started

Expand All @@ -57,6 +58,15 @@ bun run dev

Open <http://localhost:4321>.

For agent-assisted work, Astro 7 can run the dev server in the background and expose status/log subcommands:

```bash
bun run dev:bg
bun run dev:status
bun run dev:logs
bun run dev:stop
```

To build with live repository data instead of fallback data:

```bash
Expand Down
Loading