Skip to content

Instantly share code, notes, and snippets.

@JefCurtis
Created January 15, 2026 18:41
Show Gist options
  • Select an option

  • Save JefCurtis/6be20d22c31c4301bf180cb08fee97bd to your computer and use it in GitHub Desktop.

Select an option

Save JefCurtis/6be20d22c31c4301bf180cb08fee97bd to your computer and use it in GitHub Desktop.
[26Q1] πŸš€ Astro Migration for Landing Pages
[David M](twist-mention://4028) and I, are spearheading the migrating of our marketing landing pages from Next.js to Astro! 🎯
This continues the successful experimentation we've been doing with Astro (Help Center and pairing sessions) and we're now ready to tackle the full landing pages migration.
**Why Astro?**
Our current Next.js setup has significant pain points: slow page loads, large client bundles, and poor performance, especially on slower connections and mobile devices. We're hitting Next.js limitations that block us from achieving our performance goals, and the framework just seems to be heading in the wrong direction for what we need it for.
Astro solves these problems with near-zero JavaScript by default and static generation. Plus, we keep our existing Atomic React componentsβ€”no full rewrite needed.
---
## πŸ› οΈ Foundation phase
Before diving into migration, we'll handle:
- **Migration strategy document** outlining the incremental rollout approach βœ…
- Platform GH issues will be created as pages are ready to go live and replace the Next.js versions
- **Performance baseline metrics** (Core Web Vitals, bundle sizes, load times) β™»οΈŽ
- Request Metrics makes this easy for us. We’ll add the before and after to the [migration spreadsheet](https://docs.google.com/spreadsheets/d/11EGImfn0SsLXxrx3ItmzCeytPe0jj6V5y0hWjbchihQ/edit?gid=0#gid=0).
- **Component compatibility audit** (React Server Components β†’ Astro islands) βœ…
---
## πŸ€– AI-Assisted Migration Approach
We'll be leveraging AI tools to handle the mechanical parts of the migration (component conversions, import updates, prop transformations). However, finding the right balance between AI efficiency and human reviewability is crucial.
Our approach:
- **AI handles**: Repetitive component conversions, boilerplate updates, test scaffolding
- **Humans handle**: Architecture decisions, performance optimizations, edge cases
- **Tests cover everything**: Comprehensive test suites validate AI-generated changes before review
Each PR will include:
- Clear description of what was automated
- Test coverage demonstrating correctness
- **Reasonable diff sizes** for effective human review
This isn't about replacing human judgment, but much of the business logic and solutions have already been battle tested in production and should continue to work well work with Astro. That being said, we need to strike the right balance between PR diff sizes and efficiency to accomplish the lofty goal of **migrating all the pages in one quarter**.
---
## βœ… Work scope
Migrate all marketing landing pages incrementally to Astro, starting with higher-traffic pages.
Everything must be:
- **Faster**: Minimal client bundles, near-instant server responses
- **More reliable**: Statically rendered at build time whenever possible, no runtime failures
- **Better SEO**: Improved Core Web Vitals scores, faster indexing
Target pages include:
- Homepage, Features, Pricing
- Productivity method pages
- Contentful custom landing pages
- Integration pages
- Template pages
- The entire Inspiration hub
- Critical upgrade workflows
---
## 🚒 Deployment plan
We'll deploy incrementally using CloudFront routing rules to gradually shift traffic from Next.js to Astro.
**Phase 1**: Deploy Astro build alongside Next.js (separate subdomain or path)
**Phase 2**: Route high-traffic pages to Astro, monitor metrics and issues
**Phase 4**: Switch primary traffic, keep Next.js as fallback
**Phase 5**: Full cutover once metrics validate success
**Phase 6 (stretch)**: Wipe the Next.js project from the monorepo. πŸ’£πŸ’₯
This approach minimizes risk and allows us to rollback at any point.
---
## πŸ“Š Measures of success
**Hypothesis**: Migrating to Astro improves performance and user experience.
Metrics:
- **Lighthouse scores**: All pages hit 90+ performance scores
- **Core Web Vitals**: Pass all thresholds (LCP, FID, CLS)
- **Bundle size**: Reduce from ~2MB to <100KB JavaScript
- **Page speed**: Sub-1s First Contentful Paint on 4G
We'll track these weekly during rollout and compare against baseline.
---
**References:**
- [Solution spec](https://docs.google.com/document/d/1ewURPqXlyQpRaTBrAM7WWekrJtJKF-bnLqUtSujmAgo/edit?tab=t.0)
- [Migration spreadsheet](https://docs.google.com/spreadsheets/d/11EGImfn0SsLXxrx3ItmzCeytPe0jj6V5y0hWjbchihQ/edit?gid=0#gid=0)
Questions, concerns, or suggestions? Drop them below! πŸ‘‡
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment