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 sitequeenofsandiego.com— Events and charters portalEvents 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-dispatchtable 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