Status: active
Overview
howlingglobal.com is the umbrella website for all Howl divisions. It’s built as a showcase of the full-stack approach we take with every project — from architecture to deployment, everything is hands-on.
Architecture
- Framework: Astro with hybrid SSR mode — static pages where possible, server-rendered where needed
- UI: React 19 islands for interactive components (contact form, future demos)
- Styling: Tailwind CSS v4 with a custom design system
- Content: Astro Content Collections with Markdown, validated by Zod schemas
- Database: SQLite via Drizzle ORM for contact submissions and future features
Infrastructure
The site runs on our own Ubuntu home server, alongside other projects like the Calgary Housing Calculator. Key infrastructure decisions:
- Cloudflare Tunnel — no public ports exposed, outbound-only connection
- Nginx reverse proxy — handles static assets, rate limiting, and security headers
- Systemd service — the Node.js SSR server runs as a managed service
- Git-based deployment — push from MacBook, pull on server, rebuild, restart
Design Decisions
- No vendor lock-in — self-hosted, open source stack, no proprietary services
- Content as code — all content lives in Markdown files in the repo
- Progressive enhancement — the site works without JavaScript, React islands add interactivity where needed
- Security first — CSP headers, Cloudflare WAF, Turnstile CAPTCHA, rate limiting
