Skip to content

Post-Migration Roadmap

Items deferred during the R940 sovereignty migration sprint. Ordered by priority for post-migration execution. None block current migration work.


Tier 1 — Active post-migration projects (do these after sovereignty complete)

Execute after the full R940 sovereignty migration is complete: Onset, SPRINT-7 (last1.app + RadioCheck), SPRINT-8 (admin reconnect).

1. SendGrid → Resend (email provider migration)

Field Detail
Scope ALL products currently using SendGrid: last1.app, RadioCheck, LastVet, Onset. Audit which actually send email before kickoff.
Rationale Resend is cleaner DX, free at current volume, better developer experience.
Approach Uniform pass across all products. Not interleaved product-by-product (avoid split-provider state).
Onset note Onset was not migrated during its sovereignty sprint. Include Onset in this pass.
Per-product work Swap send logic, migrate templates, update DNS (SPF/DKIM/DMARC for Resend sending domain), test deliverability across every transactional email path.
Complexity LOW–MEDIUM (email is standards-based, no regulatory layer).
GG secrets SendGrid keys retire as part of this (was GG 29615727 for last1.app).
Inventory SENDGRID_TO_RESEND_INVENTORY.md — 13-key matrix (2026-08-30)

2. CF Pages marketing split (last1.app)

Field Detail
Scope last1.app is currently a Railway Node monolith (Vite SPA + Express API). Split the marketing/SPA tier to Cloudflare Pages; leave the API on R940.
Rationale Matches the pattern used for last1.id (lean SPA on CF Pages, API separate).
Deferred from SPRINT-7 (SPRINT-7 does lift-and-shift monolith as-is; this split is an optimization, not a migration requirement).
Complexity MEDIUM

Related muster / docs: realoutcomes-marketing-pages-split (RealOutcomes variant, separate item), cloudflare-pages-marketing-migrations (closed track for other sites).


3. MATR consolidation

Field Detail
Scope MATR consolidation: new GitHub org migration to R940.
Muster matr-consolidation-new-github-org-migrate-to-r94
Sequencing After all Last 1 Enterprises product migrations complete.
Complexity TBD (needs its own audit).

Tier 2 — Researched but postponed (revisit on trigger)

4. Twilio → alternative SMS provider

Field Detail
Status POSTPONED. Roadmapped for consideration, not committed.
Trigger to revisit RadioCheck moves from dormant to active outreach/development at real volume.

Current situation

RadioCheck is dormant (2 active users, near-zero recent SMS). Twilio cost is negligible at current volume. The cost argument only becomes real at scale.

Two distinct pain points

Pain Urgency
Cost Future-tense. Only material if RadioCheck reactivates and scales. Not urgent while dormant.
Configuration Present frustration ("ton of trouble configuring a simple SMS campaign"). Largely A2P 10DLC compliance, which follows to any US SMS provider. Partly unavoidable regardless of provider.

Key constraint

A2P 10DLC brand + campaign re-registration required with any new US SMS provider. Not a config flip. Budget real setup time. Migrating a dormant product's SMS now (then possibly again on reactivation) is worse than waiting for the trigger.

Candidate alternatives (evaluate when triggered)

Verify current pricing, DX, and 10DLC process at decision time. These change fast.

Candidate Notes
Telnyx Lead candidate. Direct carrier connections, generally cheaper per-message, better support reputation than Twilio at small scale. Best fit for stated pain (cost + support).
Plivo Mature Twilio alternative, competitive pricing, similar positioning.
Bandwidth Direct carrier, good pricing, more enterprise / heavier onboarding.
AWS SNS / Pinpoint Not recommended. 10DLC UX arguably worse than Twilio, AWS-complex, not the DX improvement sought.

Evaluation criteria (when triggered)

  1. 10DLC registration DX + support quality (the actual pain)
  2. Per-message cost at projected volume

Reality check

SMS is never truly "free" like Resend is for email. Carrier + 10DLC fees exist regardless of provider. The win is DX, support, and cost-at-scale, not zero-cost.

Bundling

If migrated, apply uniformly to any product using SMS (currently RadioCheck; confirm whether last1.app or LastVet send SMS).


Notes

  • Tier 1 items execute after the full R940 sovereignty migration (Onset, SPRINT-7 last1.app/RadioCheck, SPRINT-8 admin) is complete.
  • Tier 2 Twilio revisits on RadioCheck reactivation, independent of the sovereignty timeline.
  • This doc captures decisions and context from the migration sprint so they do not live only in conversation history.

References