ErrandWiz Website
Project Overview #
Timeline: September 2025 - December 2025
ErrandWiz Website is a production-grade marketing website built for a SaaS platform still in pre-launch phase. The project demonstrates modern infrastructure practices by deploying professional cloud architecture before public product launch, featuring automated deployments and semantic versioning.
Built with Hugo static site generator and Hextra theme, deployed on AWS S3 + CloudFront infrastructure, the website showcases how to deliver enterprise-level hosting with Infrastructure as Code.
Live Site: www.errandwiz.com (coming-soon page)
Project Profile #
Challenge #
Deploy professional website infrastructure for a SaaS product before launch, with:
- Production-grade AWS hosting (S3 + CloudFront with SSL/TLS)
- Pre-launch page for public
- Automated deployments and semantic versioning
- Zero-downtime deployment capability
- Infrastructure that’s ready to support full product launch
Solution Approach #
- Hugo static site generator for fast, secure content delivery
- Hextra theme for modern, professional design
- Pulumi Infrastructure as Code for reproducible AWS deployment
- Automated deployment with Semantic Release versioning
Project Scope #
- Timeline: September - December 2025
- Deployment: AWS S3 + CloudFront + Route53 + ACM
- Automation: Semantic versioning and automated deployments
- Infrastructure: Pulumi TypeScript for complete AWS stack
Technical Architecture #
Tech Stack #
- Frontend: Hugo static site generator (v0.150.0 Extended)
- Theme: Hextra - modern, documentation-focused Hugo theme
- Hosting: AWS S3 static website hosting
- CDN: AWS CloudFront global content delivery network
- DNS: AWS Route53 with ALIAS records
- SSL/TLS: AWS Certificate Manager (ACM) with automatic certificate management
- IaC: Pulumi TypeScript for infrastructure as code
- Analytics: Google Analytics 4
Infrastructure Architecture #
AWS Cloud Platform #
- S3 Bucket: Static website hosting with website configuration
- CloudFront Distribution: Global CDN with custom domain and SSL/TLS
- Route53 Hosted Zone: DNS management with automatic ALIAS record creation
- ACM Certificate: SSL/TLS certificate for www.errandwiz.com (auto-validated, auto-renewed)
- CloudFront Functions: Future capability for edge computing
Pulumi Infrastructure as Code #
- Declarative Infrastructure: Complete AWS stack defined in TypeScript
- Encrypted Configuration: Secrets managed via Pulumi config encryption
- Stack Outputs: Automated CloudFront distribution ID, S3 bucket name, certificate ARN
- Single Command Provisioning:
pulumi updeploys entire infrastructure - Separation of Concerns: Infrastructure provisioning vs. content deployment scripts
Hugo Build Process #
- Hugo Modules: Automatic theme download (no git submodules)
- Minification: Production builds with minified HTML, CSS, JS
- Version Injection: Build-time version embedding from git tags
- Asset Optimization: Optimized static files for fast delivery
Deployment Workflow #
Semantic Versioning #
- Automated version management based on conventional commits
- Automatic git tags for each release (v1.0.0, v1.1.0, etc.)
- Automated CHANGELOG.md updates
- Footer version number auto-updated from git tags
Automated Deployments #
- Hugo build with production settings and minification
- Sync to S3 with Pulumi
- CloudFront cache invalidation for instant updates
- AWS credentials stored encrypted in Pulumi config
Deployment Efficiency #
- Separated Concerns: Infrastructure provisioning (rare) vs. content deployment (frequent)
- Fast Content Updates: Site deployment takes ~30 seconds (S3 sync + CloudFront invalidation)
- No Downtime: Zero-downtime deployments via CloudFront cache invalidation
- Deployment Script:
./deploy-site.shhandles Hugo build, S3 sync, cache invalidation
Technical Challenges Solved #
Challenge 1: Production Infrastructure Before Public Launch #
Problem: Need professional cloud infrastructure in place before public launch, but can’t expose incomplete product to search engines or early visitors. Want to test infrastructure thoroughly without revealing product details.
Solution:
- Full AWS S3 + CloudFront infrastructure with SSL/TLS deployed and tested
- Pre-launch page optimized for SEO with proper metadata
- Infrastructure validated under real production conditions
Result: Professional infrastructure operational and battle-tested before launch. Zero infrastructure surprises on launch day.
Challenge 2: Automated Version Management #
Problem: Manual version updates are error-prone and time-consuming, especially with version numbers displayed in footer and referenced in deployments. Risk of version mismatches between git tags, footer display, and documentation.
Solution:
- Semantic Release analyzes conventional commits to determine version bumps automatically
- Git tags created automatically with each release (v1.0.0, v1.1.0, etc.)
- Version.txt generated at build time from latest git tag
- Footer displays dynamic version number from version.txt
- CHANGELOG.md automatically updated with each release
- Single source of truth: git tags drive all version references
Result: Zero-touch version management. Developers write conventional commits (feat:, fix:, etc.), releases happen automatically with proper versioning, tagging, and documentation. Version displayed in footer always matches git tag.
Challenge 3: Modern Hugo Theme Integration #
Problem: Hugo’s traditional theme setup using git submodules is complex and error-prone. Submodule sync failures break builds, updating themes requires multi-step git operations.
Solution:
- Migrated to Hugo Modules system for theme management
- Hextra theme installed via
hugo modcommands - Automatic theme download during builds via
hugo mod tidy - No git submodules to maintain or sync
- Clean
go.modconfiguration - Theme updates via standard Hugo module commands
Result: Simplified theme management with automatic updates and no submodule headaches. Builds reliably download theme every time without git authentication complexity.
Challenge 4: Infrastructure as Code Best Practices #
Problem: Manually configured cloud infrastructure is difficult to replicate, version control, and maintain across environments. Credentials scattered across GitHub secrets create security risks. No clear separation between infrastructure changes and content updates.
Solution:
- Complete infrastructure defined in Pulumi TypeScript (declarative)
- Secrets encrypted in Pulumi config (not checked into git, not GitHub secrets)
- Stack outputs automated (CloudFront ID, S3 bucket name, certificate ARN)
- Single command provisioning:
pulumi up - Separate deployment script for frequent content updates:
./deploy-site.sh - Infrastructure versioned in git alongside code
Result: Reproducible infrastructure that can be deployed to new AWS accounts in minutes. Clear separation between infrastructure provisioning (rare, deliberate) and content deployment (frequent, automated). Credentials managed securely via Pulumi encryption.
Development Timeline #
Phase 1: Website Infrastructure (September 2025) #
- Hugo static site setup with Hextra theme via Hugo Modules
- AWS S3 + CloudFront infrastructure provisioning via Pulumi
- SSL/TLS certificate automation with ACM
- Route53 DNS configuration
- Pre-launch page design and content
Phase 2: Content Development (October 2025) #
- Homepage content and hero section
- About page with value proposition
- Features page with product capabilities
- FAQ page answering common questions
- Privacy Policy and Terms of Service pages
- Pricing page structure
Phase 3: Automation (November 2025) #
- Automated deployment workflow
- Semantic Release integration for version management
- Pulumi AWS deployment automation
- CloudFront cache invalidation automation
- Version display in footer
- Deployment script optimization
Phase 4: Pre-Launch Optimization (December 2025) #
- SEO optimization
- Google Analytics 4 integration
- Cross-browser testing
- Mobile responsiveness validation
- Performance optimization
Tools & Workflow #
- Hugo: Static site generator with live reload
- Pulumi: Infrastructure as Code with TypeScript
- Git: Version control with GitHub Flow branching strategy
Technologies Used #
Frontend Technologies #
- Hugo Extended v0.150.0: Static site generator with Sass support
- Hextra Theme: Modern Hugo theme via Hugo Modules
- Vanilla JavaScript: Theme-provided interactivity (dark mode toggle, search)
- CSS3: Responsive styling with Hextra’s design system
- HTML5: Semantic markup with SEO optimization
Cloud Infrastructure #
- AWS S3: Static website hosting with website configuration
- AWS CloudFront: Global CDN with custom domain and edge locations
- AWS Route53: DNS management with hosted zone
- AWS ACM: SSL/TLS certificate management (auto-validated, auto-renewed)
- Pulumi: Infrastructure as Code using TypeScript
DevOps & Automation #
- Semantic Release: Automated versioning and changelog generation
- Git Flow: Branching strategy for feature development
- AWS CLI: S3 sync and CloudFront cache invalidation
Monitoring & Analytics #
- Google Analytics 4: User behavior tracking and insights
- CloudFront Monitoring: CDN performance and usage metrics
Key Takeaways #
This project demonstrates modern website infrastructure and deployment practices:
- Infrastructure Before Launch: Production-grade AWS infrastructure deployed and tested before public launch
- Automated Everything: Semantic versioning, deployments, version display all automated
- Modern Hugo Practices: Hugo Modules instead of git submodules for cleaner theme management
- Infrastructure as Code: Complete AWS stack reproducible from Pulumi TypeScript
- Deployment Efficiency: Separated infrastructure provisioning (rare) from content deployment (frequent)
- Automated Releases: Conventional commits drive semantic versioning
- Zero-Downtime Deployments: CloudFront cache invalidation for instant updates
- Security Best Practices: Credentials encrypted in Pulumi config, not stored in GitHub
- Ready to Scale: Infrastructure tested and operational before product launch day
Result: Professional website infrastructure deployed, tested, and ready to support product launch with zero infrastructure work required on launch day.