Brainstorming
Website, blog and a site for US clients of a business growth consultancy, migrated from WordPress to Astro with a serverless backend.



The problem
A consultancy with three sites needed a maintainable, bilingual foundation protected against spam, without depending on WordPress.
What I built
I migrated the sites to Astro with a custom design. The serverless backend uses PostgreSQL, Upstash Redis caching and transactional email with Resend and React Email. Content is managed by a custom CMS I also built.
Outcome
Three sites on one technical foundation, with content editable from the custom CMS.
Decisions that mattered
- 01
Protected forms
Cloudflare Turnstile protects every contact point; Resend sends the internal notification and the confirmation to the visitor.
- 02
Errors with context
Sentry records errors and logs with their context, while the messages users see stay generic.
- 03
Visible to search engines and to the business
Technical SEO with robots.txt and sitemap.xml, Google Analytics and Tag Manager, and Spanish and English internationalization.
Technologies
- Astro
- TypeScript
- PostgreSQL
- Upstash Redis
- Resend
- Turnstile
- Sentry
C4 model. The pulsing line is the main path of a request.
Level 1 · who uses the system and what it connects to
Level 2 · the applications and data stores it is made of
Level 3 · the components inside the API
- Person
- System
- Container
- Database
- External
- Main path
- 01Visitor
- 02Astro
- 03Turnstile
- 04Serverless API
- 05PostgreSQL
- 06Resend