Skip to content

tobyurff/openthatlink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenThat.Link

Open links in your browser from Zapier, n8n, or any webhook-capable automation tool.

Deploy with Vercel

How it works

  1. Install the browser extension - generates a unique webhook URL
  2. Copy your webhook URL - shown in the extension popup
  3. Send links to the webhook - from Zapier, n8n, or any tool
  4. Links open automatically - in your browser within ~30 seconds

Browser Extension

Browser Status
Chrome / Edge Load unpacked
Firefox Load temporary

See the extension README for installation, development, and self-hosting configuration.

Quick Start

Deploy to Vercel (Recommended)

Click the "Deploy with Vercel" button above. During setup:

  1. Connect your GitHub account
  2. Configure the Upstash Redis integration (automatically provides Redis credentials)
  3. Deploy!

That's it! All environment variables have sensible defaults. The app will auto-detect your Vercel URL.

Local Development

# Clone the repository
git clone https://github.com/tobyurff/openthatlink.git
cd openthatlink

# Install dependencies
pnpm install

# Start Redis locally
redis-server

# Start the dev server
pnpm dev

API Reference

Enqueue Links

Add links to the queue for the Chrome extension to open.

GET /api/:secret?link=example.com
GET /api/:secret?link=a.com,b.com,c.com
POST /api/:secret with {"links": ["example.com", "other.com"]}

Query Parameters:

  • link - Single URL or comma-separated URLs
  • links[] - Array of URLs

JSON Body:

  • link - Single URL string
  • links - Array of URL strings

Response:

{
  "ok": true,
  "queued": 2,
  "links": ["https://example.com/", "https://other.com/"],
  "message": "Queued 2 link(s)."
}

Poll for Links (Extension)

Used by the Chrome extension to retrieve and consume queued links.

GET /api/:secret/extension-poll

Response:

{
  "ok": true,
  "delivered": 2,
  "links": ["https://example.com/", "https://other.com/"]
}

Environment Variables

All environment variables are optional and have sensible defaults.

Variable Default Description
APP_NAME My Personal OpenThat.Link Application name
PUBLIC_BASE_URL Auto-detected from Vercel Public URL of your deployment
RECOGNIZABLE_TOKEN OTL Token embedded in secrets
SECRET_TOTAL_LEN 16 Total length of generated secrets
SECRET_INSERT_POS 8 Position to insert token
QUEUE_KEY_PREFIX otl:q: Redis key prefix
MAX_QUEUE_SIZE 100 Max links per queue
MAX_DELIVER_PER_POLL 10 Max links returned per poll
QUEUE_ITEM_TTL_SECONDS 172800 Queue item TTL (2 days)

Redis Configuration

For Vercel (Production): The Upstash integration automatically provides credentials. We support both naming conventions:

  • UPSTASH_REDIS_REST_URL / KV_REST_API_URL
  • UPSTASH_REDIS_REST_TOKEN / KV_REST_API_TOKEN

For Local Development:

  • REDIS_URL - Local Redis connection string (default: redis://localhost:6379)

Project Structure

openthatlink/
├── apps/
│   ├── web/              # Next.js web app
│   └── extension/        # Browser extension (Chrome, Firefox, Edge)
├── packages/
│   └── shared/           # Shared types and utilities
├── .env.example
├── pnpm-workspace.yaml
└── README.md

Scripts

Command Description
pnpm dev Start web app dev server
pnpm build Build web app for production
pnpm ext:dev Start extension dev mode (Chrome)
pnpm ext:dev:firefox Start extension dev mode (Firefox)
pnpm ext:build Build extension for Chrome
pnpm ext:build:firefox Build extension for Firefox
pnpm ext:build:all Build extension for all browsers
pnpm ext:zip Build + zip for Chrome Web Store
pnpm ext:zip:all Build + zip for all stores

White-labeling

This project is designed to be easily white-labeled. Simply set the environment variables:

  1. APP_NAME - Your custom app name
  2. PUBLIC_BASE_URL - Your custom domain
  3. RECOGNIZABLE_TOKEN - Your custom token (e.g., your initials)

License

MIT

About

Webhook → New browser tab. Trigger your local Chrome to open URLs from Zapier, n8n, your code, or any webhook-capable automation tool.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors