How our website is built¶
What you see on workwingman.ai¶
The public website is a normal multi-page website. Each page is built on the server and sent as HTML. It is not the same kind of app as the WorkWingman desktop product.
Two different products, two different builds¶
| What | How it’s built | Why that style |
|---|---|---|
| Public website (marketing, content, CMS-backed pages) | Server-built pages + light interactivity (htmx) | Fast loads, good search ranking, simple content edits |
| Desktop app | Angular single-page app | Rich product UI, app-like navigation and state |
That split is intentional and standing policy: website = multi-page server site; app = Angular SPA.
What “server-built” means day to day¶
- Someone updates content in WingCMS.
- That content lives in our GCS store (the system of record).
- When a visitor opens a page, the server pulls the content and renders the full page.
- The browser gets ready-to-read HTML—not an empty shell that waits for a big app to boot.
Light interactivity (htmx)¶
The public site uses htmx so navigation and some interactions feel snappy without turning the whole site into a heavy JavaScript app.
- Public browsing can use “boosted” navigation (smoother page changes without a full old-school reload feel).
- Admin areas intentionally do not use that boost behavior, so admin forms stay predictable and safe.
Security and layout notes (plain language)¶
- The site runs a strict security policy for scripts and styles. That means we avoid some “clever” CSS/JS shortcuts that work on other stacks but break under our rules.
- The sticky header height comes from one shared setting (70px in the stylesheet). Spacing under the header must follow that setting, never a hard-coded guess.
Where it runs¶
- The site runs on Google Cloud Run.
- Cloudflare sits in front for edge delivery and protection.
- Release and deploy steps are documented in the release-pipeline guide.
If you’re starting website work¶
Start from the MPA branch that already finished the htmx 2.0 move:
wt/WT-e33f/WING-207-mpa
Older site branches can have messy, unrelated history—don’t base new work there.
What this is not¶
- Not the Angular desktop product.
- Not a full client-side SPA for marketing pages.
- Not on the newest experimental htmx 4 beta—we stay on the htmx 2.0 line that already shipped for this site.