```html

Building a Unified Ops Dashboard: Consolidating JADA's Tools, Payments, and Infrastructure

Over the past development session, we rebuilt the operations dashboard at https://ops.queenofsandiego.com/ to serve as a single source of truth for business-critical tools, payment infrastructure, and deployment management. What started as an incomplete page has become a comprehensive operational hub connecting Stripe payments, AWS infrastructure, event management systems, and external platforms.

The Problem: Fragmented Tooling

Before this work, critical business functions were scattered across multiple locations:

  • Payment links existed in Stripe but weren't easily accessible
  • Deployment information was buried in handoff documents
  • CloudFront invalidation required manual lookups
  • Public-facing sites weren't consolidated in one place
  • External platform links (DocuSign, ImprovMX, Instagram) required repeated searching

This fragmentation created friction during urgent operations—particularly when needing to charge deposits or troubleshoot live sites.

Solution Architecture: Centralized Ops Page

The ops page was rebuilt with seven logical sections, each addressing a specific operational need:

1. Payments Section (Top Priority)

We created a dedicated payments card with quick-access buttons to:

  • $500 Deposit Link — Direct Stripe payment link for upfront deposits
  • $1,560.00 JADA Charter Link — Newly generated Stripe payment link for full charter quotes
  • Zelle Details — Bank transfer option (Sail JADA Charters LLC / 619-986-7344)
  • $125 Birthday Sail Link — Sub-link to the birthday event payment
  • Recent Payments — Stripe dashboard link for transaction history
  • Balance & Payouts — Stripe Connect payouts management

Why this structure: Payment requests often come urgently during booking conversations. Having all payment options in one place—with direct links to Stripe—eliminates the need to hunt through email or documents.

2. Public Sites Directory

We consolidated all customer-facing properties:

  • sailjada.com — Primary booking and information site
  • queenofsandiego.com — Events and charters portal
  • Events Hub — Rady Shell event management (birthday, anniversary, concert events)
  • burialsatseasandiego.com — Memorial service site

Why separate from dev tools: These public-facing properties often need quick access during customer interactions, separate from the internal infrastructure tools below.

3. Dev & Infrastructure Tools

The infrastructure section now includes:

  • AWS — S3 bucket management, CloudFront distributions, DynamoDB crew dispatch table
  • Stripe — Dashboard, payment links, Connect payouts
  • Google Services — Rady Shell event automation script (separate from main booking engine), Google Business Profile
  • Email & Forms — ImprovMX alias management, DocuSign waiver handling
  • Analytics — Google Analytics for public sites

Technical Implementation Details

File Location and Deployment

The ops page is located at:

/Users/cb/Documents/repos/sites/ops/index.html

It's deployed to an S3 bucket with CloudFront distribution for fast access. The page uses semantic HTML5 with card-based layout for scanability—critical for quick lookups during high-pressure situations.

Stripe Integration

We created a new Stripe price object for the $1,560.00 JADA charter deposit using the Stripe API, then generated a payment link from that price. The link structure is:

https://buy.stripe.com/[unique-link-id]

This checkout link is embedded directly on the ops page, eliminating a step in the payment flow. The Stripe account configuration includes:

  • Product name: "JADA Charter — $1,560.00"
  • Payment method options: card, Apple Pay, Google Pay
  • Currency: USD
  • Connected payouts to business bank account

Why a dedicated payment link: Rather than requiring manual invoicing each time, a pre-built link can be copied and sent within seconds. Stripe handles PCI compliance, reducing operational risk.

CloudFront & S3 Configuration

The ops page is distributed through CloudFront with invalidation capability. When infrastructure changes occur (new deployment links, new tool integrations), we can invalidate the cache with a single command rather than waiting for TTL expiration:

aws cloudfront create-invalidation --distribution-id [DIST_ID] --paths "/*"

This ensures ops team sees updated links immediately after deployment.

Content Organization Decisions

Hierarchical Link Structure

Rather than a flat list of 30+ links, we organized by operational context:

  • Payments first — Most time-sensitive operations
  • Public sites second — For customer-facing communication
  • Dev tools below — For technical troubleshooting and maintenance

This hierarchy reflects the actual operational workflow: customer inquiry → check availability → send payment link → deploy updates if needed.

Quick-Action Buttons

Common operations get prominent button treatment:

  • $500 Deposit — Most frequent payment request
  • Port Sheet — Time-sensitive Sheraton reservation data
  • Recent Payments — For financial accountability

Less frequent operations (DynamoDB crew dispatch, Google Business Profile updates) are accessible but not front-and-center.

What Got Fixed

During this rebuild, we corrected several broken or outdated links:

  • Port Sheet — Updated Google Sheets ID from outdated reference to the actual ACTIVE handoff document ID (1jUxYXS24VS-D9tO37ckNqMNclvOBqQuh)
  • ImprovMX integration — Added email alias management link for bookings@ and other custom domains
  • Rady Shell GAS script — Separated from main booking engine (distinct script ID for event-specific automation)
  • DynamoDB link — Direct access to jada-crew-dispatch table for shift management

Infrastructure Patterns Used

Single Page of Truth: All critical links converge in one dashboard, reducing cognitive load during time-sensitive operations.

API-First Integrations: Stripe, AWS, and Google Services are accessed via API links to their dashboards, enabling programmatic extensions later if needed.

CloudFront Caching with