thisdesign.space

Contribute

Add your design, in five minutes.

The lab grows by pull request. Drop a JSON file under /entries/<category>/, add yourself to /contributors/, run bun run validate, and open a PR. The build refuses entries that fail the schema, so most reviews are about taste rather than syntax.

1. Pick a category

The lab is organised by what you're contributing:

  • design — a full-page sheet. A self-contained index.html / styles.css / script.js goes at the repo root in /<your-slug>/; the JSON entry describes it. Use any framework as long as your final output is plain static files.
  • library — a curated reference to a UI / drawing / motion library worth bookmarking. Records framework, install line, a minimal quick-start snippet, and the homepage in links. The lab curates rather than mirrors docs.
  • animation — a motion recipe. CSS keyframes, Framer Motion, GSAP, Motion One, Lottie, raw SVG. One snippet, optional preview.
  • font — a face worth keeping. Family, foundry, weights, embed snippet, sample text.
  • palette — a coordinated colour set with role names. Light, dark, or either.
  • technique — a tip that recurs. The kind of trick that should be in a cookbook somewhere.

2. Add yourself to /contributors

Make /contributors/<your-github-handle>.json:

{
  "schemaVersion": 1,
  "handle": "your-github-handle",
  "name": "Your name",
  "avatar": "https://github.com/your-github-handle.png",
  "github": "https://github.com/your-github-handle",
  "bio": "One sentence about yourself.",
  "joinedAt": "2026-06-01"
}

The avatar URL https://github.com/<handle>.png always works — GitHub serves it.

3. Add the entry

Make /entries/<category>/<slug>.json. Minimum shape for a design:

{
  "schemaVersion": 1,
  "category": "design",
  "slug": "your-slug",
  "no": "31",
  "kicker": "V12 · Your kicker",
  "title": "Your headline.",
  "tagline": "The italicised feel-line.",
  "summary": "1–3 sentences. What the sheet is doing.",
  "palette": ["#F8F7F4", "#1B1A18", "#B5251C"],
  "paletteMode": "light",
  "fonts": ["Your Display Sans"],
  "techniques": [],
  "tags": [],
  "author": "your-github-handle",
  "createdAt": "2026-06-01",
  "source": { "type": "iframe", "path": "/p/your-slug/index.html" }
}

The full schema for each category lives in site/lib/schema.ts.

4. Validate

cd site
bun install
bun run validate

The validator parses every JSON file in /entries and /contributors, checks the discriminated union, and asserts that every author handle has a contributor file. Errors include the offending file path.

5. Open the PR

Title it add: <category>/<slug>. The PR template will ask for a one-line description and links to any source/article. Reviewers focus on whether the entry adds something to the collection — duplication of an existing direction without a clear angle will usually be sent back.

License

Everything in the lab is offered under MIT by default. If your entry uses a different license (e.g. a font with SIL OFL), declare it in the entry's license or fontLicense field.

Code of conduct

Be kind. Disagree about craft, never about people. The lab is for taking aesthetics seriously and the people who make them seriously too.

Questions or stuck? Open an issue with the question template — these become the FAQ. See who's contributed so far.