A personal site or portfolio is a solved problem for an agent: Astro or Hugo, Markdown pages, optimized images, a contact form, free static hosting. That part takes a sitting. What you give up is the bundle people actually pay for: a visual editor a non-coder can use, a store with payments, tax and shipping, courses and memberships, and one vendor for domain, hosting and email. Pick the DIY route if you are comfortable editing Markdown and selling nothing online.
Before you buildSquarespace has no free plan, only a 14-day trial. A free static host plus this build costs about a domain a year, but you give up the visual editor and the store.
Build me a personal website to replace Squarespace. Requirements: - Astro 5 + TypeScript + Tailwind CSS, static output. Content lives in ./src/content as Markdown or MDX with Zod schemas for pages, posts and projects. `npm run dev` serves http://localhost:4321 and `npm run build` writes ./dist. - One layout with a header and footer driven by site.config.ts (title, nav links, social links, accent color, font), dark mode through CSS variables and no layout break down to 360 px wide. A work page shows projects as a grid with cover images, each linking to a Markdown case study. - Images: originals in ./src/assets, processed with `astro:assets` into AVIF and WebP at three widths with width and height set. The build fails when an image has no alt text. - Blog: posts with date, tags, draft flag and reading time; tag pages, RSS (`@astrojs/rss`), a sitemap (`@astrojs/sitemap`) and Open Graph tags on every page. - Contact form: a static page that posts to /api/contact, a Cloudflare Pages Function that checks a honeypot field and a 5,000-character limit, rate-limits by IP and sends mail through the Resend HTTP API (RESEND_API_KEY as a Pages secret, never in the repo). - Local editor: `npm run edit` starts a server bound to 127.0.0.1:4322 for creating and editing pages and posts with a live preview, dropping images into src/assets, and a Publish button that runs the build and `wrangler pages deploy dist`. - Migration: `npm run import:squarespace export.xml` converts the WordPress-format XML export from Squarespace into Markdown files (`fast-xml-parser`, `turndown`), downloads the images, and writes a _redirects file for the old URLs. - Single user, no accounts, no telemetry and no third-party scripts in the built pages. - Out of scope: a store or checkout, memberships, scheduling, email campaigns, several editors. - README: pointing DNS at Cloudflare, what the Squarespace export leaves out (products, store pages, video and audio blocks, custom CSS), and `npm run check`, which builds and runs `linkinator` to report broken internal links.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Squarespace.
Add redirects from my old Squarespace URLs to the website in this folder. Requirements: - Read old-urls.txt (one path per line, for example /blog/2022/3/my-post) and map each to the new URL by slug match first, then by title similarity above 0.8; list the rest as unmatched. - Write the result to public/_redirects as 301 rules and to redirects-report.csv with the match type. - Never create a redirect chain or a loop; fail the build if either exists. - After deploy, `npm run check:redirects` requests each old path against the live site and prints any that do not end in a 200. - Update the README.
Add a simple shop to the website in this folder. Requirements: - A products.json file (id, name, price in cents, currency, image, description, stock) rendered into product pages and a /shop grid at build time. - A "Buy" button that calls a Cloudflare Pages Function creating a Stripe Checkout session (`stripe` package, STRIPE_SECRET_KEY as a Pages secret, test keys first). - A webhook function for checkout.session.completed that verifies the signature, emails me the order through Resend and decrements stock in a KV namespace. - Show "sold out" when stock is 0. No cart, one product per checkout. - Update the README with the Stripe test-mode steps and a note that tax and shipping are not handled.
Add a newsletter signup to the website in this folder. Requirements: - A form component that posts an email to /api/subscribe, a Cloudflare Pages Function that validates the address, ignores honeypot hits and stores it in a KV namespace with the time. - Send a confirmation email with a signed link through Resend; only confirmed addresses count. - `npm run export:subscribers` writes confirmed addresses to subscribers.csv. - Every address can be removed with a one-click unsubscribe link. - No third-party scripts on the page. Update the README.
Squarespace takes someone from an idea to a polished site with a domain, hosting, email and a store without opening a code editor. Templates look good, nothing needs patching, and there is support when something breaks. For a small shop or a service business that bundle is worth more than a free static host.
Estimate · Cloudflare Pages is free at personal scale, and the domain is the only running cost, about $1 to $2 a month. Resend's free tier covers a contact form. The build is token usage on your agent plan.
Checked 2026-10-19 against Squarespace's docs: 1, 2, 3, 4, 5, 6
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Basic | $25 | $19 | 2 contributors, 30 minutes of video hosting, 10 one-time AI credits, card rates from 2.9% + $0.30, a 2% fee on online-store sales and 7% on courses and memberships. No code injection, discount tools or Google Workspace year. |
| Core | $39 | $29 | Unlimited contributors, 5 hours of video, 20 AI credits a month, no store fee, a 5% fee on courses and memberships, code injection, discounts and payment plans, shipping labels, carrier-calculated shipping, a free year of Google Workspace email. |
| Plus | $65 | $49 | Core plus 50 hours of video, 40 AI credits a month, card rates from 2.7% + $0.30, a 1% fee on courses and memberships, a reserved cart with timer and elevated support. |
| Advanced | $139 | $99 | Plus with unlimited video, 120 AI credits a month, card rates from 2.5% + $0.30, no fee on courses and memberships and a high-traffic checkout. |
No free plan: every site starts with a 14-day trial that needs no credit card.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: The drag-and-drop editor (Fluid Engine) that non-developers can use, The built-in store: checkout, Squarespace Payments, automated tax, shipping labels and abandoned-cart emails.
About $25 a month on the Basic plan, $300 a year (checked 2026-10-19).
The drag-and-drop editor (Fluid Engine) that non-developers can use; The built-in store: checkout, Squarespace Payments, automated tax, shipping labels and abandoned-cart emails; Courses, memberships and paid content with built-in billing; Domain, SSL, Google Workspace email and 24/7 support on one bill; Integrations such as Mailchimp, Zapier and OpenTable. If any of those matter to you, keep paying.
Yes: Ghost (open source), Publii (open source), Webstudio (open source).