portfolio

mcp
Security Audit
Warn
Health Pass
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 16 GitHub stars
Code Warn
  • network request — Outbound network request in scripts/gen-about-portrait.mjs
  • network request — Outbound network request in scripts/gen-blog-covers.mjs
  • network request — Outbound network request in scripts/gen-hero-frames.mjs
  • network request — Outbound network request in scripts/gen-hero-image.mjs
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Agent-ready portfolio of Ruben Marcus, AI Fullstack Engineer. A cinematic WebGL site for humans and a protocol surface for agents: a remote MCP server (io.github.rubenmarcus/portfolio, on the official MCP Registry), a public Agent Skill, llms.txt and a plain-text resume over curl. Built with Astro 5, Svelte 5, Three.js and GSAP.

README.md

rubenmarcus.dev

rubenmarcus.dev — the first portfolio made for agents

Personal portfolio. Agent-ready · humans welcome. Terminal-green and agent-first: a cinematic 3D hero, a blog
written for humans and machines, and an MCP server so AI agents can read the
resume and book a call without ever rendering the page.

Live: rubenmarcus.dev

Stack

  • Astro 5 (islands, content collections, i18n EN/PT)
  • Svelte 5 (runes) for interactive components
  • Three.js — custom GLSL shaders (ice-flow background,
    contour/wireframe/ASCII render states)
  • GSAP + Lenis — scroll choreography
  • Tailwind CSS 3
  • Vercel (adapter with edge middleware, Analytics)

Features

  • Hero with an AI-generated, auto-rigged 3D character that types at a desk and
    dissolves through render states (contour isolines → wireframe → scanline
    point cloud → ASCII) driven by scroll
  • Live HUD telemetry fed by GitHub/npм stats, degrading gracefully offline
  • Bilingual blog (EN + PT mirrors) with generated particle-art covers,
    copy-button code blocks, view counter (optional Supabase)
  • /api/mcp — a hand-rolled JSON-RPC 2.0 MCP server (tools/list,
    tools/call) exposing resume data and a book_intro tool
  • /api/hire — contact endpoint with field caps + honeypot, relayed via
    formsubmit.co
  • llms.txt, robots.txt with AI-crawler rules, RSS (EN/PT), sitemap with
    hreflang, JSON-LD — built for answer engines, not just search
  • Edge middleware easter egg: curl rubenmarcus.dev returns a plain-text resume
  • Bottom-right audio deck (YouTube IFrame API) persisted across page
    transitions
  • Visual QA gauntlet (scripts/visual-gauntlet.mjs) that screenshots every
    page on desktop + mobile and captures console errors

Getting started

pnpm install
pnpm dev

Production build:

pnpm build
pnpm preview

Quality gates:

pnpm check       # astro check (types)
pnpm text:gate   # prose lint for the blog voice (scripts/text-gate.mjs)

Environment variables

Everything degrades gracefully without env vars. Optional:

  • PUBLIC_SUPABASE_URL + PUBLIC_SUPABASE_ANON_KEY — blog view counter
  • OPENROUTER_API_KEY — only for the asset-generation scripts in scripts/

Project structure

src/
  components/        # Svelte/Astro components (hero, deck, cards, lab demos)
  content/           # blog (EN) + blog-pt collections, zod-validated
  layouts/           # BaseLayout: SEO, OG, JSON-LD, analytics, audio deck
  lib/               # data (projects, agents, tools), three/, motion/, assets/
  pages/
    api/             # hire.ts, mcp.ts, resume.json.ts, resume.txt.ts
    pt/              # PT mirrors of every page
    work/            # case studies
  middleware.ts      # edge: curl user-agent → text resume
scripts/             # asset generators (OpenRouter) + text-gate + visual gauntlet
public/art/          # generated covers, logos, frames
qa/                  # gauntlet shots + scoring log

License

MIT

Reviews (0)

No results found