Architecture
Documentation Map
-
Architecture
-
Channel:
stable -
Source repo:
JaddaHelpifyr/jhf-web
Architecture
System Overview
jhf-web is a static-first website with a narrow serverless intake surface.
Core flow:
- static HTML, JS, locale JSON, and assets are built into
.pages-dist - Cloudflare Pages serves the public site and runs Pages Functions
- contact and early-access forms POST to
/api/contact /api/contactvalidates Turnstile and either:- forwards normalized payloads to an external webhook
- or falls back to a mailto response
- a mirrored Docker/nginx host on
<internal-runtime-redacted>exists for controlled operational checks
Main Components
- static page surface:
*.html,assets/,locales/ - client runtime:
assets/js/ - intake API:
functions/api/contact.ts - runtime visibility surfaces:
functions/health.tsfunctions/ready.ts
- build and verification helpers:
scripts/ - mirrored host runtime:
Dockerfiledocker-compose.ymlnginx.conf
Data Flow
Public content flow
Browser -> Cloudflare Pages -> HTML/JS/locales/assets
Intake flow
Browser form -> /api/contact -> Turnstile verification -> normalized payload -> optional webhook -> success/fallback response
Mirror runtime flow
Git/Gitea -> deployment sync -> Docker/nginx on <internal-runtime-redacted> -> optional exporter on :9113
External And Internal Interfaces
- public website routes
/api/contact/health/ready- optional outbound webhook via
CONTACT_WEBHOOK_URL - host-only:
/admin//nginx_status:9113/metrics
Dependencies
- Cloudflare Pages
- Cloudflare Turnstile
- Gitea CI/package path
- optional Docker mirror host
- optional external intake webhook
Operating Assumptions
- Linux runner CI is authoritative
- Gitea remains source of truth
- public production path is Cloudflare Pages
- mirrored host runtime is useful but secondary
Role In Helpifyr
This repo is the public presence and intake edge, not the backend system of record.
Expected Role Toward helpifyr-fabric
- expose identity, capabilities, and current runtime surfaces
- contribute status/readiness/presence signals
- remain mostly read-only from Fabric's perspective
License
AGPLv3. See LICENSE (LICENSE).
Learn more at helpifyr.com.