Advanced architecture review available — with an experienced human
Not a bot or boilerplate output. A live session where we dig into your context, trade-offs, and what to ship next.
h1bpulse.com
Architecture Risk & System Assessment
External observation of publicly visible signals. Not a security audit — no active testing, no source access.
1. Executive Summary
Domain: h1bpulse.com
Detected Stack:
- hosting: Resolves to IP 185.158.133.1
- edge: Cloudflare (cf-ray)
- server: cloudflare
- ssl: Google Trust Services
- email: DMARC policy none
- routing: http→https redirect
- app: cloudflare
- frontend: JavaScript SPA (framework not detected)
- dns: Google Domains
- database: Supabase
System Maturity: Early-stage — functional but not yet hardened for sustained traffic
Top Findings:
- 🟡 Medium — API errors return HTML instead of JSON
Error pages are showing internal framework details like stack traces and file paths. - 🟡 Medium — Rate limiting not detected on public endpoints
Your API endpoints don't appear to have rate limiting. - 🟡 Medium — Domain trust risk (missing DMARC)
Anyone can send emails pretending to be from your domain.
If this architecture remains unchanged:
- Expect integration and monitoring issues due to SPA catch-all routing swallowing well-known paths
- Expect degradation or downtime under traffic spikes — no rate limiting is in place
- Expect email deliverability issues and domain trust degradation without email authentication records
- Expect silent production failures — errors accumulate undetected until users report them
2. Architecture Snapshot
Textual stack signals are in §1 Executive Summary only. Here: diagram (if any) and HAR-backed runtime detail.
flowchart LR
subgraph user [User]
Browser
end
subgraph infra ["h1bpulse.com"]
server["cloudflare"]
frontend["JavaScript SPA (framework not detected)"]
end
subgraph sub_www ["www.h1bpulse.com"]
sub_www_svc["cloudflare"]
end
subgraph external [External Services]
Google_Analytics["Google Analytics"]
end
Browser -->|HTTPS| server
server --> frontend
Browser --> sub_www_svc
frontend --> Google_Analytics
Detected backends (from HAR):
Captured from authenticated browser session. Reflects actual runtime traffic.
| Host | Service | API Calls | Transferred | Sample Paths |
|---|---|---|---|---|
wxvzllkvjtewlwiohgxi.supabase.co |
Supabase | 14 | 552.7 KiB | /rest/v1/app_config, /rest/v1/signals |
www.google-analytics.com |
— | 3 | 60 B | /g/collect |
h1bpulse.com |
— | 1 | 80 B | /~api/analytics |
3. Architecture Fitness
This setup is functional for early users and development workflows. Cloudflare in front of your origin (apex 185.158.133.1) covers the basics, but several operational and architecture gaps will become problems as traffic and team size grow.
🟡 Medium — API errors return HTML instead of JSON observed
What this means: Error pages are showing internal framework details like stack traces and file paths.
When it hurts: This gives detailed knowledge of your tech stack, file structure, and potentially sensitive configuration.
What to do next: Enable production mode in your framework to suppress debug output on error responses.
Evidence: Inconsistent error format: API errors return HTML (consider application/json for /api/*).
🟡 Medium — SPA fallback masks well-known and API discovery paths inferred
What this means: Your SPA catch-all returns 200 OK for every URL path, including well-known discovery endpoints.
When it hurts: Monitoring tools, search engines, and security scanners can't distinguish real pages from missing ones. It also hides API routing bugs.
What to do next: Configure your web server to return proper 404 responses for /.well-known/, /robots.txt, and /api/ paths.
Evidence: SPA fallback is overly broad and swallows well-known and API discovery paths (robots.txt, security.txt, openid, swagger, graphql → 200 HTML). Real production smell.
⚪ Info — SPA catch-all may mask server-side fetch or proxy endpoints inferred
What this means: The SPA catch-all makes it impossible to tell from outside whether server-side proxy endpoints exist.
When it hurts: If the backend has URL-fetching routes, they could be used to reach internal services — but we can't confirm this externally.
What to do next: Audit any server-side fetch or proxy routes and restrict target URLs to an explicit allowlist.
Evidence: SPA fallback routes well-known paths to HTML; server-side URL-fetching endpoints, if present, are not externally discoverable.
4. Dependency Risk Profile
No dependency-level risks identified from external observation.
5. Operational Readiness
Email Deliverability
🟡 Medium — Domain trust risk (missing DMARC) observed
What this means: Anyone can send emails pretending to be from your domain.
When it hurts: When someone sends phishing emails as you — your domain reputation tanks and your real emails land in spam.
What to do next: Add a DMARC DNS record. Start with p=none to monitor, then tighten to p=quarantine or p=reject.
Evidence: DMARC record not configured or set to p=none with no reporting.
🟡 Medium — Domain trust risk (missing SPF record) observed
What this means: There's no SPF record telling email servers which IPs can send as your domain.
When it hurts: Phishing becomes trivial, and legitimate emails from your domain get flagged or rejected.
What to do next: Add an SPF TXT record listing your authorized senders (Google Workspace, your transactional email service, etc.).
Evidence: No SPF TXT record detected in DNS.
Observability
🟡 Medium — No error monitoring detected observed
What this means: No error tracking service (like Sentry) was detected in your frontend.
When it hurts: Errors hit production and nobody knows until users complain. Security incidents also go unlogged.
What to do next: Add Sentry, Bugsnag, or equivalent. Most have free tiers that cover early-stage traffic.
Evidence: No Sentry, Datadog, New Relic, or similar error-tracking SDK found in client bundle or HAR traffic.
Edge Protection
🟡 Medium — Rate limiting not detected on public endpoints observed
What this means: Your API endpoints don't appear to have rate limiting.
When it hurts: When bots or abusive users hammer your endpoints, causing slowdowns or outages for real users.
What to do next: Add rate limiting at your reverse proxy or API gateway. Most platforms offer this as a built-in feature.
Evidence: No X-RateLimit-, RateLimit-, or Retry-After headers observed in responses.
Routing & Headers
🔵 Low — Standard hardening headers absent observed
What this means: Some standard security headers are missing from your HTTP responses.
When it hurts: These are low-effort best practices. Missing them mostly matters for compliance checklists and defense-in-depth.
What to do next: Add the missing headers in your web server or CDN configuration — usually a few lines of config.
Evidence: Headers not observed: X-Frame-Options, Permissions-Policy.
⚪ Info — No responsible disclosure policy published observed
What this means: There's no security.txt file telling researchers how to report vulnerabilities.
When it hurts: If someone finds a bug, they have no clear way to reach you — which may lead to public disclosure instead of a private report.
What to do next: Publish /.well-known/security.txt with a contact email and policy link (RFC 9116).
Evidence: /.well-known/security.txt not found or returns SPA HTML (catch-all fallback).
⚪ Info — Certificate authority not restricted (no CAA record) observed
What this means: Any certificate authority can issue TLS certificates for your domain.
When it hurts: If a rogue CA issues a cert for your domain, someone could impersonate your site. Rare but preventable.
What to do next: Add a CAA DNS record restricting issuance to your CA (e.g., letsencrypt.org).
Evidence: No CAA (Certificate Authority Authorization) record detected in DNS.
6. Failure Scenarios
Scenarios below are derived from detected signals only. If a signal is absent, the scenario is omitted.
If traffic suddenly increases:
- API endpoints may degrade or become unresponsive — no throttling is in place
If bots or abusive traffic targets your endpoints:
- No throttling in place — sustained scraping or abuse has no automated circuit-breaker
If the application starts failing silently:
- No error tracking means failures accumulate silently before anyone notices
7. Cost Profile
⚠️ Incomplete coverage: Detected stack entries — hosting (Resolves to IP 185.158.133.1, cloudflare) — are not matched by any recognised cost plugin for those categories. The table below reflects only identified SaaS services. Actual costs for unmatched categories are unknown and may be significant.
Tier: indie (~500 users). External observation only — actual costs depend on usage patterns and contracts.
| Service | $/mo | Plan |
|---|---|---|
| Cloudflare | $0 | Free (CDN, DDoS, DNS) |
| Domain Registrar | $1–2 | ~$12-20/yr amortised monthly |
| Let's Encrypt | $0 | Free (automated renewal via ACME) |
| Mixpanel | $0 | Free (20M events/mo) |
| PostHog | $0 | Free (1M events/mo) |
| Sentry | $0 | Developer (free, 5K errors/mo) |
| Supabase | $0 | Free (up to 50K MAU auth, 500MB DB) |
| Identified services subtotal | $1–2/mo | (infrastructure costs not included) |
- Domain Registrar: Typical .com registration; premium TLDs cost more
- Sentry: ~25 estimated errors/mo at this tier
8. Recommended Next Steps
Prioritized by impact — architecture and operational issues first, hygiene last.
- Fix routing for well-known and API paths
(prevents hidden bugs, unblocks proper 404 handling, and improves monitoring reliability) - Standardize API error responses to return JSON
(prevents framework details from leaking and makes frontend error handling predictable) - Fix domain email authentication (add DMARC and SPF records)
(stops anyone from sending email as your domain and protects deliverability) - Add error monitoring (Sentry or equivalent)
(gives visibility into production failures before users report them) - Enable rate limiting at the edge or API gateway
(protects against traffic spikes, bot floods, and application-layer abuse) - Add standard hardening response headers
(low-effort hygiene that satisfies compliance checklists and adds defense-in-depth) - Add a CAA DNS record
(restricts which certificate authorities can issue TLS certificates for your domain)
9. Scope & Limitations
This assessment is based on external observation of publicly visible signals:
- DNS records (A, AAAA, MX, TXT, CAA, NS)
- HTTP/HTTPS response headers and status codes
- TLS certificate metadata
- HTML source and JS bundle fingerprinting
- Subdomain discovery (HTML, headers, DNS, JS, HAR, and Certificate Transparency from public providers — wildcard + identity queries)
This assessment does NOT include:
- Active exploitation or penetration testing
- Source code review
- Authentication bypass or session testing
- Internal network, database, or infrastructure access
- Dynamic application testing (DAST)
- Compliance review (PCI, HIPAA, SOC 2)
Findings reflect the external footprint visible to an unauthenticated observer and architectural inferences drawn from public signals. A comprehensive review requires authenticated testing, source access, and infrastructure visibility.