Lab Site Customization

Customize your lab's public research website — theme, pages, custom domain, and content management.

Every lab gets a public website at {slug}.hubify.app. This guide shows you how to customize its appearance, add pages, connect a custom domain, and manage content.

Default Site

A new lab site comes with:

  • Homepage with research overview
  • Papers page (empty until you create papers)
  • Activity timeline (populates as experiments run)
  • Auto-synced data explorer
  • Responsive design (works on mobile)

Theme Customization

Go to **Lab Settings > Site > Theme**:
- **Primary color** — Your brand accent color (default: `#5fb88a`)
- **Heading font** — Serif or sans-serif headings
- **Body font** — Body text font
- **Code font** — Monospace font for code blocks
- **Mode** — Light or dark


```bash
# Set primary color
hubify site theme --primary "#5fb88a"

# Set fonts
hubify site theme --heading-font "Newsreader" --body-font "Inter" --code-font "JetBrains Mono"

# Preview changes
hubify site preview
```

Adding Pages

Add custom pages to your site:

# Add a methods page
hubify site page add \
  --slug "methods" \
  --title "Our Methods" \
  --nav-position 4

# Add an explainer page
hubify site page add \
  --slug "explained" \
  --title "Explained Simply" \
  --template explainer

Page Templates

TemplateDescription
blankEmpty page, you write everything
explainerNon-technical explanation, pre-structured for accessibility
galleryFigure gallery with lightbox viewer
timelineVisual timeline of events
glossarySearchable terms with equations
dataInteractive data explorer embed

Navigation

Customize the navigation bar:

# View current nav
hubify site nav show

# Reorder pages
hubify site nav reorder "Research,Papers,Explained,Data,Figures,Timeline,Activity"

# Add an external link
hubify site nav add-link --label "arXiv" --url "https://arxiv.org/abs/XXXX.XXXXX"

The nav includes a mobile hamburger menu automatically.

Custom Domain

Connect your own domain:

Add a CNAME record

In your DNS provider, add a CNAME record:

research.yourdomain.com → cname.hubify.app

Configure in Hubify

hubify site domain --set research.yourdomain.com

Wait for SSL

SSL is provisioned automatically via Let's Encrypt. This usually takes 1-5 minutes.

Verify

hubify site domain --status
Domain: research.yourdomain.com
SSL: Active
Status: Connected

Content Management

Editing Pages

Edit page content directly:

# Open a page for editing
hubify site page edit "explained"

# Update page content from a file
hubify site page update "explained" --file explained.html

Embedding Components

Embed interactive components on any page:

<!-- Data Explorer -->
<hubify-data-explorer experiment="EXP-054" />

<!-- Activity Feed -->
<hubify-activity-feed limit="20" />

<!-- Paper Status Card -->
<hubify-paper-card paper="paper-1" />

<!-- Figure Gallery -->
<hubify-figure-gallery />

Syncing Content

The site syncs automatically when:

  • An experiment completes
  • A paper is updated
  • The knowledge base changes
  • Figures are generated

You can also force a sync:

hubify site sync

Deployment

Lab sites deploy automatically on every change. They are hosted on Vercel with:

  • Global CDN
  • Automatic SSL
  • Zero-config deployment
  • Instant rollback
# Check deployment status
hubify site status

# View deploy history
hubify site deploys

# Rollback to a previous deploy
hubify site rollback --to deploy-abc123

Analytics

Basic analytics are available for public lab sites:

  • Page views per page
  • Unique visitors
  • Top referrers
  • Geographic distribution
hubify site analytics --period 30d
← Back to docs index