2.4 KiB
DRE Portal Pages
Last updated: Jul 8, 2026
File locations
Public portal — portal.debtrecoveryexperts.com
Root: /var/www/capabilities/
| File | Purpose | Auth |
|---|---|---|
debt-recovery.html |
Claim intake form (split-screen) | Turnstile only |
login.html |
Login page with SSO button | None (points to internal) |
dre-fee-calculator.html |
Fee calculator | None |
dre-pay.html |
Payment page | None |
Internal portal — internal.debtrecoveryexperts.com
Root: /var/www/internal/
Auth: Cloudflare Access SSO (@germainebrown.com and @yahoo.com domains)
| File | Purpose |
|---|---|
index.html |
Landing page with 4 card links |
dre-dashboard.html |
Claims dashboard with AI analysis |
dre-case-aging.html |
Days-in-stage tracking, overdue alerts |
letter-queue.html |
Demand letters pending review/approval |
dre-client-dashboard.html |
LIGHT theme — what clients see |
Persistent nav (all internal pages)
5 links: Home, Claims, Aging, Letters, Clients. Active link gets class="nav-link active". CSS:
.nav-link { font-size:13px; color:#94a3b8; text-decoration:none; transition:color 0.15s; }
.nav-link:hover { color:#f59e0b; }
.nav-link.active { color:#f59e0b; font-weight:500; }
Dark theme (most pages): bg-[#0f172a] border-b border-[#1e293b]
Light theme (client view): bg-white border-b border-gray-200
DRE Logo (Concept C)
D (amber-500) | (gray-400) R (slate-400) | (gray-400) E (amber-500)
Inside w-8 h-8 rounded-lg badge with bg-[#1e293b] (dark) or bg-white (light).
Wordmark: "DEBT Recovery Experts" (uppercase DEBT, rest normal case).
Caddy config pattern
portal.debtrecoveryexperts.com {
root * /var/www/capabilities
try_files {path} /debt-recovery.html
file_server
}
internal.debtrecoveryexperts.com {
header Access-Control-Allow-Origin "*"
root * /var/www/internal
try_files {path} {path}.html /index.html
file_server
}
File permission gotcha
write_file creates files at 600. Caddy (non-root) can't read → 403. Always chmod to 644 after creating HTML files.
Agent DRE chatbot pattern
Frontend-only JS with keyword matching in getAnswer(). Responses should be short elevator pitches (2 sentences + follow-up question), not detailed process dumps. Matches on: fee, document, process/work, time, texas/lien, what is DRE, hello, login.