Skip to content

Instantly share code, notes, and snippets.

View futzlarson's full-sized avatar

Ryan DuVal futzlarson

View GitHub Profile
@futzlarson
futzlarson / checkly-vs-better-stack.md
Last active March 23, 2026 20:24
Checkly vs Better Stack - Feature & Cost Comparison

Checkly vs Better Stack vs Sentry vs Uptime Kuma vs UptimeRobot

General uptime monitoring + catching intermittent TLS failures on specific AWS API Gateway nodes.

Verdict

  • General monitoring: Start with Checkly Free (6 locations, 1-2 min checks) + Sentry uptime ($1/monitor/month) if you're already on Sentry. Or self-host Uptime Kuma for free on a $5/mo VPS. UptimeRobot Free (50 monitors, 5-min checks) is another solid zero-cost option if you just need simple HTTP pings.
  • Catching today's issue: Checkly Team ($64/mo) — 30s checks across 24 locations with TLS error detail. Better Stack, Sentry, Uptime Kuma, and UptimeRobot all fall short here — single-location or multi-failure requirements mean a bad node in a round-robin pool likely goes undetected.

Comparison

@futzlarson
futzlarson / ssl-investigation.md
Created March 19, 2026 13:39
SSL ERR_SSL_PROTOCOL_ERROR Investigation - curiticspulse.com

SSL Investigation: ERR_SSL_PROTOCOL_ERROR

Domains: cm.curiticspulse.com (production) · cm-uat.curiticspulse.com (UAT) Date: 2026-03-19

What Was Reported

  • An employee on cm-uat.curiticspulse.com and a client on cm.curiticspulse.com both seeing ERR_SSL_PROTOCOL_ERROR in Chrome on Windows
  • Works fine for the developer (macOS)

What Was Checked

@futzlarson
futzlarson / gist:7c95c7a7e451fab7769f3ec8d1d46964
Last active March 15, 2026 15:32
Risk Adjustment - Lambda Timeout Analysis Report (2026-03-15)

Risk Adjustment — Lambda Timeout Analysis Report

Date: March 15, 2026
Triggered by: CloudWatch Alarm vapor-Curitics-RA-production-d-timeout-warning
Alarm threshold: 28,000ms (approaching 30s Lambda limit)
Datapoint that fired: 28,877ms at 14:53 UTC


TL;DR

@futzlarson
futzlarson / claude-pr-review.md
Last active March 13, 2026 20:01
Claude PR Review: GitHub App vs GitHub Actions vs Local Skill (Laravel Boost)

Claude PR Review: GitHub App vs GitHub Actions vs Local (Laravel Boost)


Option 1 — GitHub App (github.com/apps/claude)

Installed once at the org level via claude.ai/admin-settings/claude-code. Reviews are posted as inline PR comments.

Triggers

  • Auto on PR open/push (configurable)

Step 2 — One-Time Setup: php artisan goto:setup {tenant_id}

All GoTo setup for a tenant is handled by a single artisan command (app/Console/Commands/Telephony/GoToSetup.php) run locally by a Curitics admin. The setup flow itself — including the OAuth callback — is handled entirely within the command via an embedded TCP socket listener. No Laravel routes or controllers are required during setup. (The webhook route and controller are separate and exist for the ongoing call event integration, not the setup.)

How environments are handled: The command is always run locally, pointed at the target environment's database. Once run against production, the tenant's GoTo config (tokens, channel ID, account key) lives in the production DB and flows down to UAT and local via the standard DB backfill — those environments never need to run goto:setup independently.

What the command does

php artisan goto:setup {tenant_id}
@futzlarson
futzlarson / vapor-env-approaches.md
Last active March 6, 2026 14:56
Approaches to Environment Variables Beyond Vapor's 2KB Lambda Limit

Replacing Vapor's Encrypted Env Files: Approaches & Laravel Integration

Due to AWS Lambda limitations, Vapor environment variables are capped at ~2,000 characters. Vapor's built-in solution — encrypted environment files — works but has significant DX tradeoffs. This document evaluates alternatives with specific attention to how they integrate with Laravel's .envconfig() pipeline.


How .env Works in Laravel (and Why It Matters)

Understanding the boot sequence is critical to evaluating alternatives:

@futzlarson
futzlarson / performance.md
Last active March 5, 2026 04:17
Performance skill
name performance
description Analyzes the codebase for easy-win performance improvements. Activate when the user asks about performance, slow queries, N+1 problems, missing indexes, optimization, or wants to find quick wins.
disable-model-invocation true
argument-hint [top-n]
context fork
agent Explore

Performance Analysis