Skip to content

patrickmburrell/tabitha

Repository files navigation

Tabitha

Dynamic identity tab page generator with customizable colors and titles—perfect for visually organizing browser tabs.

What is Tabitha?

Tabitha is a serverless function that generates HTML pages on-demand with:

  • Custom titles displayed in the center of the page
  • Custom background colors
  • Matching circular favicons (generated as SVG)
  • Zero configuration required

Usage

Production URL Format

https://your-deployment.vercel.app/api/index?title=YOUR_TITLE&color=HEX_COLOR

Query Parameters:

  • title: Text to display (URL encoded)
  • color: Hex color code (with or without #)

Examples:

/api/index?title=DS%20Shuttle&color=ffa500
/api/index?title=Work&color=007bff
/api/index?title=PMB&color=ff6b9d

Local Development

Prerequisites

  • Python 3.13+
  • uv for Python package management
  • nvm and npm for Vercel CLI

Setup

# Clone the repository
git clone https://github.com/patrickmburrell/tabitha.git
cd tabitha

# Install dependencies
uv sync
source .venv/bin/activate

Run Development Server

python dev_server.py

Visit:

  • http://localhost:8000/?title=Test&color=ffa500
  • http://localhost:8000/?title=Work&color=007bff

Press Ctrl+C to stop the server.

Deployment

Initial Setup

  1. Login to Vercel:
vercel login
  1. Deploy to production:
./deploy.sh

This will deploy the project and provide the Vercel URL.

Custom Domain Setup

After initial deployment, configure the custom domain:

./domain.sh add

Then configure your DNS provider:

  • Record Type: CNAME
  • Name: tabitha
  • Value: cname.vercel-dns.com

Management Scripts

  • ./deploy.sh - Initial deployment to production
  • ./update.sh - Redeploy changes to production
  • ./remove.sh - Remove project from Vercel
  • ./domain.sh add - Add custom domain
  • ./domain.sh remove - Remove custom domain
  • ./domain.sh list - List all domains
  • ./domain.sh inspect - Inspect domain configuration

Architecture

  • Serverless Function: api/index.py handles HTTP requests
  • Dynamic Generation: HTML created on-the-fly with inline styles
  • SVG Favicon: Circular favicon generated as base64 data URI
  • Caching: 1-hour HTTP cache for performance

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published