# Pixlib write-up

You are writing the on-site Pixlib page. Read this file, then edit `projects/pixlib.html`. Do not invent a new layout, and do not write a product landing page.

## Where it goes

- Page: `projects/pixlib.html`
- Skeleton: copy `projects/_template.html`
- Homepage already links here (`projects/pixlib.html`). Leave that. Do not point the list item, or anything on this page, at pixlib.app or any other live product URL.

## Site feel

Match the homepage, not Pixlib the product.

- Sky WebGL background (`wind.js`), 520px column, black text on sky
- Inter 14px / weight 460. Title (`h1`) weight 500. Section (`h2`) weight 600, same size
- Newsreader italic only for `<em>` and `.margin-note`
- First person, short, no pitch. Same voice as "I'm a builder from Atlanta."
- Straight apostrophes. No hero headline, no metric row, no cards, no pills, no gallery, no dark UI, no new fonts/colors/widths

## Shape

```
← Back
Pixlib
January 2026

What it is (one paragraph).
Why it exists (one paragraph).
How it works, in one or two sentences.

## The interesting problem
What broke, what you did, what's still open.

## What's live
What works now. No changelog dump.
```

Optional: one in-column `<figure>` with a muted caption. Optional: one `.margin-note` of a few words, not a second column of body copy. No footer clock.

## HTML

Keep the chrome from the template: fonts, `../styles.css`, `body.project`, wind canvas, `aside.project-nav` (Index + TOC filled by `project.js`), Agentation on localhost. `h2` needs an `id` so the left nav can list it.

```html
<aside class="project-nav">
  <a class="project-back" href="../">Index</a>
  <p class="project-toc-title"></p>
  <ul class="project-toc"></ul>
</aside>
<article class="article">
  <header>
    <h1>Pixlib</h1>
    <time datetime="2026-01-01">January 2026</time>
  </header>
  <p>…</p>
  <h2 id="the-ip-problem">The IP problem</h2>
  <p>…</p>
</article>
```

- `h2` needs an `id` (kebab-case) so the left nav can list it
- Product name is plain text, not a link
- `basic-link` is for people and unrelated sites only — never pixlib.app

## Facts you may use

Pixlib is a remote MCP server that gives Claude a curated image library. Claude searches by tag or purpose and gets a public URL for a landing page, doc, PDF, or deck.

Two read-only tools: `search_images` and `list_images`. Metadata in Postgres. Files on Cloudflare R2. Remote auth is OAuth through Clerk. Bulk import auto-tags with Claude Haiku.

Local stdio works in Claude Desktop. Remote is StreamableHTTP.

The open problem: Anthropic's servers sit in `160.79.104.0/21`. Supabase Storage and R2 both refuse that range. Images load in a browser; Claude cannot fetch them server-side, so PDFs with embedded pictures are still broken. The store already moved once (Supabase → R2). Next is a CDN that does not block the model.

Do not invent metrics, user counts, or a pricing story. Do not paste architecture diagrams or stack lists.

## Done when

The page still looks like this site: one column, same type, sky behind it. A person who never saw pixlib.app can read it and know what you built.
