Live site: https://vaesposito.github.io/outshift-design/
Repository: https://github.com/vaesposito/outshift-design
outshift-design-main/
├── index.html # Homepage
├── hax.html # The Human-Agent Experience initiative
├── research.html # Research hub
├── blog.html # Blog listing page
├── making-room-for-agents.html # Blog article (inline HTML)
├── building-accessible-interfaces.html
├── future-of-design-systems.html
├── foundational-principles.html
├── cognitive-frameworks.html
├── societal-impact.html
├── security-privacy.html
├── human-centered-ai-patterns.html
├── guiding-principles.html
├── agent-impact-map.html
├── cognitive-load-audit.html
├── foresight-canvas.html
├── assistant.js # Shared AI chat widget + nav JS
├── images/
│ ├── blog/ # Blog cover images & article assets
│ │ ├── making-room-agents/ # Article images (SVG mockups)
│ │ ├── navigating-multi-agent-future.png
│ │ └── ai-ethics-and-design.svg
│ └── outshift_logo.svg / outshift_logo-white.svg
├── videos/ # Hero videos (e.g. hax-hero.mp4)
├── files/ # PDFs (e.g. ai-ethics-and-design.pdf)
├── robots.txt
└── sitemap.xml
Copy an existing article as a template:
cp making-room-for-agents.html my-new-article.htmlKey sections to update inside the file:
| Element | What to change |
|---|---|
<title> |
Article title — Outshift Design |
<meta name="description"> |
1–2 sentence summary |
<meta property="og:title/description/url/image"> |
Social preview data |
<script type="application/ld+json"> |
JSON-LD Article schema (headline, author, date, keywords) |
.breadcrumb |
Update the last breadcrumb item to the article title |
.article-meta |
Update tags and date |
<h1> |
Article title |
.author-name / .author-title |
Author details |
.author-avatar img |
Author headshot — place in images/blog/<slug>/ |
.article-body |
Article content (HTML) |
Place article images in images/blog/<article-slug>/:
images/blog/my-new-article/
├── hero.png # Cover image (used in blog card, 1200×630 recommended)
├── author.jpg # Author headshot (square, min 80×80)
└── figure-01.png # Any inline content images
Reference them in HTML as src="images/blog/my-new-article/hero.png".
Images are expandable in a lightbox modal — add class="article-img" or wrap pairs in <div class="article-img-pair"> to get click-to-expand automatically.
Inside <!-- Blog Grid -->, add a new card before the closing </div>:
<a href="my-new-article.html" class="blog-card-item" data-tags="design,ai,product-design">
<div class="blog-card-cover">
<img src="images/blog/my-new-article/hero.png" alt="Article title">
</div>
<div class="blog-card-body">
<div class="blog-card-tags">
<span class="blog-card-tag">Design</span>
<span class="blog-card-tag">AI</span>
</div>
<h3>My Article Title</h3>
<p class="blog-card-desc">Short description of the article.</p>
<div class="blog-card-meta">
<span>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<path d="M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2"/>
<circle cx="12" cy="7" r="4"/>
</svg>
Author Name
</span>
<span>Month Day, Year</span>
</div>
<div class="blog-card-footer">
<span class="blog-read-time">X min read</span>
<span class="blog-read-more">Read more →</span>
</div>
</div>
</a>data-tags must use kebab-case and match the filter buttons: research, ai, ai-ethics, product-design, design.
In index.html, find the <!-- Blog --> section and add a .blog-card element matching the existing ones.
Add a new <url> entry to sitemap.xml:
<url>
<loc>https://vaesposito.github.io/outshift-design/my-new-article.html</loc>
<priority>0.8</priority>
</url>All content is plain HTML — open the relevant .html file and edit directly.
The nav is duplicated inline in every page's <style> and bottom <script> block (no shared CSS file). To change a nav link across all pages, update each file or use a bulk find-and-replace.
CSS variables are defined in each page's <style> block under :root (light) and [data-theme="dark"] (dark). Key tokens:
| Variable | Use |
|---|---|
--color-bg |
Page background |
--color-text |
Primary text |
--color-text-muted |
Secondary text |
--color-accent |
Brand cyan (#00BCEB) |
--color-surface |
Header / card background |
--color-border |
Borders |
Place .mp4 files in videos/ and reference them in the <video> tag of the relevant page.
The site deploys automatically to GitHub Pages on every push to main.
Deployment takes ~1–2 minutes. Check status at:
https://github.com/vaesposito/outshift-design/actions
git add .
git commit -m "Your message"
git push- All pages are crawlable (
robots.txtallows all) sitemap.xmllists all public pages- Key pages have Open Graph, Twitter Card, and JSON-LD structured data
- The site is static HTML/CSS/JS — no build step required
- To add a page: copy an existing
.htmlfile, edit content, add a blog card, updatesitemap.xml, commit and push - There is no CMS — all content lives directly in the HTML files in this repository