Angular 19 + Hono + Firebase Hosting

Static pages where the contact form still talks to a live API.

sf5 keeps / and /contact pre-rendered for Firebase Hosting, while /api/contact is handled by a separate Hono service on Cloud Run.

Frontend

Angular routes are discovered and pre-rendered at build time.

The build output stays static, so Firebase Hosting can serve the app directly without a Node server for the UI.

Backend

Hono handles form validation in a separate Bun-powered service.

The contact endpoint accepts JSON, validates name, email, and message, then returns a simple success payload.

Hosting

Firebase Hosting forwards only the API path to Cloud Run.

That keeps static assets on Hosting while /api/** is rewritten to the sf5-api Cloud Run service.