Framer or Astro for a startup marketing site in 2026
Most startup marketing sites should stay in Framer. A few should move into code, and Astro is where I would move them. The two side by side, the cases that decide it, and what a move costs.

Agustin Dell’Aquila13 October 2026, 8 min read
On this page
I build marketing sites two ways: in Framer and in code. So I am asked which one a startup should be on, usually by a founder who has a Framer site and a developer who would like to rewrite it.
For most of them my answer is to stay in Framer. Move to code when the site runs into one of a few specific walls. When it does, and the site is mostly content, Astro is the framework I would move it to.
The short answer
- Stay in Framer if the people who change the site are not developers, the site fits inside Framer’s plan, and its pages show content and collect leads.
- Move to code if the pages need logic of their own, the content outgrows the plan, or developers will be the ones editing it.
- Having a product does not decide it. The app can live at its own address while the marketing site stays where marketing can reach it.
- If it is code and the site is mostly content, build it in Astro.
Framer and Astro, side by side
They are different kinds of thing. Framer is a product you rent: an editor, a CMS and hosting on one plan. Astro is an open-source framework you build with. This is each by its maker’s own account.
| As of 13 October 2026 | Framer | Astro |
|---|---|---|
| Who changes a page | Anyone with a seat, on the page itself. An editor is $20 a month and a content editor $10. | Whoever can commit to the repository. Or anyone, once a CMS is connected. |
| Content | Framer’s CMS. Pro holds 2,500 items, and 40,000 with add-ons. | Files in the repository, or a CMS behind a loader. Its docs put collections at tens of thousands of entries. |
| Pages | Pro holds 150, and 700 with add-ons. Past that is Enterprise. | As many as you build. |
| What a page can do | Content, forms, translations and A/B tests. React components and custom code for the rest. | Whatever you write. HTML by default, and JavaScript only where a component asks for it. |
| Hosting | Framer’s, as part of the plan. There is no HTML export for self-hosting. | Yours. Static files by default, or official adapters for Node.js, Netlify, Vercel and Cloudflare. |
| Price | Pro is $30 a month. Extra seats and add-ons come on top. | Free, under the MIT licence. Hosting, a CMS and upkeep are yours to pay for. |
| Upkeep | Framer’s job. | Yours. Astro shipped two major versions in 2026: 6 in March and 7 in June. |
Why Framer is usually right
A marketing site is changed by marketing. A headline for a launch, a new customer logo, a price that moves on a Thursday night. In Framer the person who wants the change makes it on the page and publishes it. Nobody opens a pull request, and there is no server of yours to keep alive.
It is also quicker to build. I design in Figma, and a full build in Framer starts at $3,200. The same build in code starts at $5,000. That gap is the hours a visual tool saves, and it comes back every time the site changes.
And the words reach machines. Framer’s help centre lists pre-rendering and server-side rendering among the things its hosting does. You do not have to take that on trust: my AEO check reads one page the way a crawler meets it, without running its JavaScript, and tells you what it found.
When code is the right answer
Five cases.
- The pages run logic. A price that depends on who is asking, a page built from your product’s data, anything behind a login. Framer’s React components cover a calculator or an embed. Past that you are writing an application inside a design tool.
- The content outgrows the plan. A blog is unlikely to pass 40,000 entries. A directory generated from data, or a large set of documentation, can.
- Developers will own it. A team that already lives in a repository is usually slower in a visual editor than in its own tools.
- You need to hold the files. Framer’s help centre says it “does not offer HTML export for self-hosting”. If a contract or a compliance rule says the source must sit in your own repository, that settles it.
- You need to choose what the browser is sent. In Framer I can tune a page, but its runtime is Framer’s. In code the runtime is mine to choose, and in Astro the default is none.
Two things are missing from that list on purpose. A product: the app can run at app.yourcompany.example, or under a path of your domain through a rewrite, which Framer sells as an add-on to Pro. And a store: I run stores from Shopify in both cases.
Why Astro, if it is code
Because a marketing site is content, and Astro is built for content. Its documentation says it was designed for content-rich websites, and names blogs, documentation and landing pages among them.
It also does not pick your component library. React, Vue, Svelte, Solid and Preact components all run in it, so the pricing calculator your product team wrote in React can go on the page.
If the site is closer to an application than to a set of pages, the choice is a different one, and I wrote it up apart: Next.js or Astro for a marketing website.
What moving costs
Framer does not hand the site over as code, so a move is a rebuild. This is the list I go through.
| Part of the site | In Framer | In Astro |
|---|---|---|
| The design | Pages, components and motion, in the Framer project. | Rebuilt as components. |
| CMS content | Collections in Framer’s CMS. | Exported through a plugin as CSV or JSON, then loaded into collections or a CMS. |
| Editing | On the page, with a seat. | A headless CMS, set up and paid for apart. Or every change goes through a developer. |
| Forms | Built in. Submissions go to email, Google Sheets or a webhook. | A handler you write, or a form service. |
| Addresses | Every page has one, and search engines know it. | Each one kept as it is, or redirected to the page that replaced it. |
| Hosting | Part of the plan. | A host you choose, in an account you own. |
| Translations and A/B tests | Paid add-ons. | Astro routes the locales. Translating and testing are separate tools. |
Two of those rows are where a move goes wrong.
Editing. The day the site is code, marketing loses its editor. Decide before the build starts whether a CMS goes in or every change waits for a developer.
Addresses. Every page that has earned a place in search has an address. My migration planner maps old addresses to new ones, flags the rows that need a second look, and leaves you with a launch checklist.
It is tempting to think an AI agent has made the rebuild free. An agent writes the first pass of a build for me too. The first pass is the generic part. What costs is everything after it: the design carried over exactly, the content moved, the addresses kept.
For the money, the website cost estimator turns a page count, a platform and a list of features into a first-year budget. Every rate in it is yours to change.
Which one, when
| Your situation | What I would do |
|---|---|
| Marketing edits the site, nobody owns a repository, and it fits the Pro plan. | Framer. Nothing here needs code. A rebuild would cost more to make and more to keep. |
| The same, and there is a product. | Framer for the site. The app keeps its own address. Marketing ships pages without the product team. |
| Developers edit the site and own a repository, and nothing else forces a move. | Either. Let whoever edits it decide. If marketing takes it over later, the answer flips. |
| Pages run logic, or the content is past Pro’s ceiling, and developers will own it. | Astro. This is what code is for. |
| The same, but marketing still edits. | Astro, with a CMS. And a named owner for the repository. Put both in the budget. |
What to do next
- Find your row in that table for the site you have today, not the one you imagine in two years.
- If the answer is Framer, stop there and spend the rebuild money on the pages.
- If the answer is code, name two people before anything else: who edits the site and who owns the repository.
- List every address the current site has, and map each one before anybody writes a line.
- Check one page with the AEO check now, and the same page again after the move.
Either way the site should end up in an account that is yours: your Framer workspace, or your repository and your host. That is how I hand over every project, in both.