Files
voicebox/landing
Jamie Pine b97c565a45 feat(ui): shared ListPane primitive + misc polish
ListPane is a compound component (Header / TitleRow / Title / Actions /
Search / Scroll) that owns the relative wrapper, faded right divider
(50px top fade), top scroll mask, and absolute-positioned header used by
every list-detail tab. Wires up CapturesTab, StoryList, and EffectsList.
EffectsTab gets -mx-8 / pr-8 to match the edge-to-edge layout used
elsewhere.

Other changes:
- MCPPage: native <select> → shadcn <Select> for default voice and
  per-binding voice pickers
- Button outline variant: add hover:border-accent
- Drop hover:text-destructive from trailing delete buttons
  (HistoryTable, GpuAcceleration, GpuPage, EffectsChainEditor,
  EffectsDetail)
- HistoryTable empty state moved behind t('history.empty')
- StoryContent scroll padding pt-14 → pt-16
- backend health reports the captures dir
- landing CapturesMockup: "Send to" → "Export" with Download icon
- CHANGELOG: drop [Unreleased] personality section
2026-04-24 17:23:14 -07:00
..
2026-01-25 13:40:18 -08:00
2026-01-25 13:40:18 -08:00
2026-01-25 13:40:18 -08:00

Voicebox Landing Page

Landing page for voicebox.sh - a modern Next.js 16 application.

Tech Stack

  • Next.js 16 with App Router
  • Bun for package management
  • Tailwind CSS with shadcn/ui components
  • TypeScript with strict mode
  • Railway deployment ready

Getting Started

Prerequisites

Installation

cd landing
bun install

Development

bun run dev

Open http://localhost:3000 to view the landing page.

Build

bun run build

Production

bun run start

Configuration

Edit src/lib/constants.ts to update:

  • LATEST_VERSION - Current release version
  • DOWNLOAD_LINKS - GitHub release download URLs
  • GITHUB_REPO - Repository URL

Update GitHub Username

Replace USERNAME in src/lib/constants.ts with your actual GitHub username.

Deployment to Railway

  1. Connect your GitHub repository to Railway
  2. Railway will auto-detect nixpacks.toml
  3. Set root directory to landing/
  4. Railway will automatically:
    • Install dependencies with bun install
    • Build with bun run build
    • Start with bun run start
  5. Configure custom domain voicebox.sh in Railway settings

Project Structure

landing/
├── src/
│   ├── app/
│   │   ├── layout.tsx      # Root layout with metadata
│   │   ├── page.tsx        # Landing page
│   │   └── globals.css     # Global styles
│   ├── components/
│   │   ├── Header.tsx      # Top navigation
│   │   ├── Footer.tsx      # Footer
│   │   ├── DownloadSection.tsx  # Download buttons
│   │   └── ui/             # shadcn/ui components
│   └── lib/
│       ├── utils.ts        # Utility functions
│       └── constants.ts    # App constants
├── public/
│   └── voicebox-logo.png   # Logo asset
└── nixpacks.toml          # Railway deployment config

Features

  • Responsive design (mobile-first)
  • Dark mode by default
  • SEO optimized metadata
  • Download links for Mac, Windows, Linux
  • Feature showcase
  • Platform highlights
  • GitHub integration