Day 1

Strategy, architecture and cloud infrastructure

We established the positioning, target audience and technical architecture. We split the project into two repositories, defined the API contracts and created all the AWS infrastructure with Terraform.

  • Commercial positioning plan and message structure documented in Markdown
  • Technology choices: Astro for the frontend, AWS serverless for the backend, Terraform for infrastructure
  • API specifications (OpenAPI) written before the first line of code
  • Terraform modules: web hosting (S3 + CloudFront + ACM + Route53), leads API (Lambda + API Gateway + DynamoDB)
  • TLS certificate, CloudFront function for clean URLs, encrypted S3 bucket with public access blocked
  • SSM parameters as an automated bridge between repositories
TerraformOpenAPI 3.1AWS CloudFrontS3Route53SSM
Day 2

Backend API and the design system

We built the lead capture API with validation, anti-spam and notifications, then created the entire visual system from scratch — no CSS frameworks, no themes.

  • POST /v1/leads — field validation, anti-bot honeypot, IP-based rate limiting with DynamoDB
  • Lead storage with automatic 90-day expiry, email notifications via SES
  • GET /v1/health for monitoring
  • Colour palette: warm cream, dark brown and bronze — premium identity without gimmicks
  • Typography: Cormorant Garamond + Manrope, responsive sizing
  • Components: Header, Footer, Lead form, Mobile CTA, section headings
Python 3.12LambdaDynamoDBSESAstro 5TypeScriptCSS
Day 3

All pages and security

We built the homepage with a complete narrative arc, all commercial pages, and added WAF, CloudWatch alarms and the staging environment.

  • Homepage: Problem → Solution → Services → Process → FAQ → Form
  • Pages: Services (3), Industries (3), About, Audit, Contact, Botosani location, Legal (3), 404
  • WAF on CloudFront: traffic rate limiting, rules for common attacks and malicious inputs
  • CloudWatch alarms on Lambda, API Gateway and DynamoDB with SNS notifications
  • Full staging environment — same Terraform modules, separate configuration
AstroAWS WAFCloudWatchSNSTerraform
Day 4

CI/CD, SEO and conversion

Automated deployment pipelines for both repositories, structured data for Google, analytics and mobile conversion optimisations.

  • Automated deploy: Terraform apply on push, Astro build → S3 sync → CloudFront invalidation
  • OIDC authentication: GitHub Actions with a temporary IAM role, zero static keys
  • Structured data: Organization, BreadcrumbList, FAQPage, LocalBusiness with coordinates
  • Dynamic XML sitemap, robots.txt, conditional GA4 integration
  • Event tracking on CTAs, form submissions and scroll depth
  • OG image automatically converted from SVG to PNG with Sharp at build time
  • Fixed mobile CTA button with safe-area spacing for notched devices
GitHub ActionsOIDCSchema.orgGA4Sharp
Day 5

Smooth navigation, technologies and finishing touches

We turned the site into an app with instant navigation, built the technologies page, this timeline and polished every detail.

  • Client-side navigation with Astro ClientRouter — no full page reloads
  • Persistent header, scroll animations with progressive delay, capsule-style mobile menu
  • Technologies page: 9 categories, 40+ tools, each with a description
  • This timeline page with technical details for every phase
  • Content iterations: results-oriented messaging, consistent company voice
  • Final site: 19 pages, 0 TypeScript errors, build under 1 second
Astro View TransitionsIntersectionObserverCSS
Next project

We want to build something similar for you.

Same process, same rigour, adapted to your specific problem. Tell us what you need.

Hai sa vorbim