Created
January 15, 2026 18:41
-
-
Save JefCurtis/6be20d22c31c4301bf180cb08fee97bd to your computer and use it in GitHub Desktop.
[26Q1] π Astro Migration for Landing Pages
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [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