What Astro gives you, and what it costs

Astro is the destination, and a destination needs its own argument. Leaving Webflow is one decision. Arriving somewhere specific is another, and "a codebase you own" is equally true of Next.js, Nuxt or hand-written HTML.

Gemin Pak updated Platforms

Summarize with AI

What is in this

Astro is the destination, and a destination needs its own argument. Leaving Webflow is one decision. Arriving somewhere specific is another, and "a codebase you own" is equally true of Next.js, Nuxt or hand-written HTML.

Here is what changes on the day a site moves, stated as the Webflow behavior it replaces. Each of these is checkable in a build or in a browser, and the last section is the case for not doing it.

Content mistakes stop the build, not the visitor

Configured content collections can validate content against their schemas. Define which fields and relationships must be checked, and verify the actual loader and rendering path used by the project.

The comparison depends on the validation configured in each system. Missing optional content can remain valid in either one; important requirements need explicit rules.

This is the difference people underrate. It is not that Astro catches more mistakes; it is that the mistakes arrive in front of a developer at build time rather than in front of a visitor at read time.

What to check: ask to see a build fail. Remove a required field and watch the deploy stop.

Nothing ships that the page does not use

Astro can render component output without hydrating it in the browser. Client directives, explicit scripts and third-party integrations determine the JavaScript a particular page actually ships.

Compare the actual resources requested by representative pages on the existing site with the proposed implementation. Do not assume every Webflow page loads the same dependencies.

The useful claim is measurable: identify which browser dependencies the new implementation removes or changes, then check the effect on real templates.

What to check: compare the JavaScript requested on a text-only page, before and after.

One slow thing stops being everyone's problem

Astro provides separate hydration choices for interactive components. They still share the device and network, so a heavy script can affect other interactions; test the page as a whole.

Where personalization is involved, a component can render on the server separately from the page around it, with placeholder content until it arrives. The cached page stays cacheable and the personalized part catches up.

This matters on sites with embeds, maps, chat widgets or logged-in state. On a brochure site it is worth very little, and anybody selling it to you as the reason to move is selling.

Images are handled without anybody remembering

Configured Astro image handling can generate suitable formats and dimensions. Responsive behavior depends on the component options, source and image service; inspect the rendered output rather than assuming every image is optimized automatically.

Choose image handling as part of the implementation and verify the selected hosting or image-service arrangement. Costs and supported behavior depend on that setup.

What to check: view the rendered markup and look for a srcset with several widths, and for width and height on the tag.

The site is not hostage to one vendor

An Astro site is files plus a small adapter for wherever it runs: Cloudflare, Vercel, Netlify, a Node server, or nothing at all if the output is static.

The work involved in moving hosts depends on adapters, runtime APIs, redirects, storage and external services. Keep those dependencies documented so a future move can be assessed realistically.

Compare that with a platform where the hosting, the CMS, the forms and the publishing are one account and one invoice.

You are not hiring for a niche

Astro runs components from React, Svelte, Vue, Solid and Preact, and more than one of them on the same page.

Supported UI framework integrations can preserve useful skills and components. Components coupled to a particular router, server API or global state may need adaptation; inspect representative examples before promising reuse.

Separate framework capabilities from project decisions

A framework provides tools and defaults. The implementation decides how well they serve the site. An Astro migration can reduce unnecessary browser work, introduce a useful content model and make deployment more explicit. None of those outcomes follows from changing a package name alone.

For every claimed benefit, ask for the configuration or evidence behind it. If the proposal promises validated content, identify the fields and relationships being checked. If it promises less JavaScript, inspect which components and third-party tools still run in the browser. If it promises easier publishing, demonstrate the CMS workflow rather than pointing at the framework documentation.

Desired outcomeImplementation decisionEvidence to request
Reliable contentDefine and apply appropriate validationInvalid representative content produces a visible failure
Less browser workChoose client components and loading behavior deliberatelyNetwork requests and interaction traces on real templates
Suitable image deliveryUse configured image handling and correct source assetsRendered sizes, selected files and stable layout
Independent publishingBuild the editorial model, preview and release pathAn editor completes an ordinary change
Hosting flexibilityChoose compatible runtime features and servicesDocumented deployment and recovery procedure

This keeps the argument tied to the website being built. It also makes acceptance criteria easier to agree before development begins.

Follow a hypothetical article page through the system

Consider an article with a title, author, hero image, body and a small interactive calculator. The content can be stored in a CMS or another supported source. The page renderer combines that content with the article layout and produces the visible document.

The calculator has a separate reason to execute in the browser: it responds to visitor input. The headline and body do not become interactive merely because they share a page with it. That distinction helps the team decide where browser JavaScript is useful and where ordinary markup is sufficient.

The publishing arrangement is another decision. A prerendered page may update when a deployment runs. A request-rendered route can obtain content at request time, subject to the implementation's caching and availability choices. The correct approach depends on freshness, personalization, cost and operational requirements.

The example is useful because it connects architecture to a normal page. The goal is not to eliminate every dynamic feature. It is to explain which part of the system provides each behavior and how the team knows it is working.

What Astro does not replace by itself

Astro is not automatically the editorial interface, CRM, payment processor, search service or monitoring system. A project can connect those capabilities, but the integrations still need design, configuration and ownership.

For forms, identify where submissions are validated and delivered. For search, decide what content is indexed and how updates reach the index. For previews, define which unpublished content can be seen and by whom. For localization, decide how records, routes and metadata relate across languages.

A proposal that accounts for these responsibilities is more useful than one that treats them as minor details after the page build. They are often the parts the business relies on most, even when they occupy little space on screen.

Keep interactive boundaries understandable

Independent components still share the visitor's device and network. A large third-party script can consume resources even if it was introduced by one small widget. Delayed loading can help, but it should be chosen around user behavior and tested rather than treated as an isolation guarantee.

For each interactive feature, record when it should initialize, what data it needs and what the visitor sees before it is ready. If the feature fails, the surrounding content should remain useful where possible. A map may have an address and external link as a fallback; a calculator may explain the underlying assumptions in text.

This approach improves clarity as well as resilience. It prevents an essential piece of information from existing only inside a script that may not load under the visitor's conditions.

Evaluate maintenance after the launch

A repository makes changes inspectable, but someone still needs to review dependencies, configuration and deployment failures. Choose a maintenance arrangement that matches the business rather than assuming a completed migration runs indefinitely without attention.

Document how to update the site, how to restore a previous release and where provider-specific behavior is configured. Hosting portability is more credible when redirects, environment values, storage and forms are understood. A site can use portable framework code while still depending heavily on a particular external service.

The same applies to component reuse. Existing UI components may be reusable when their assumptions fit the new environment. Components tied to a specific router, server API or global application state can need adaptation. Inspect a representative component before promising that a whole library transfers unchanged.

A practical evaluation before committing

Choose one content-heavy route and one interactive route. Build a small representative slice, connect the intended content source and demonstrate publishing. Compare the result against the existing site for behavior, performance and maintainability.

Ask what became simpler, what new responsibilities appeared and who will own them. If the answer is concrete, Astro may be a good fit. If the case rests mainly on broad claims about speed or ownership, return to the site's requirements.

The CMS choice guide covers publishing options. The migration-in-code article shows how source content, components and routes connect during the move.

What it costs

Leaving a platform means taking on what the platform was doing.

Publishing is the big one. Webflow's CMS goes with Webflow, and what replaces it is a decision about who publishes and how often rather than a feature swap. Forms need a backend. Hosting needs choosing. Analytics and consent need re-establishing, and none of it is carried by an export.

There is also a floor: a site that changes twice a year and has no editor other than the person who built it is a site Webflow serves perfectly well. The move is worth making when the site has started behaving like a software project, and it costs more than it returns when it has not.

Read the honest version of that decision before reading anything else here as a recommendation.

Sources

Documentation for this revision

Reach out and see if we are a good fit.

Get in touch

Currently booking two to four weeks out.