Consulting Intake
Search the build
-
6a3fbc62026-07-25 chore: lint (intake write try/catch), v0.1.2 (session close) -
cdc70672026-07-25 harden public /api/intake: per-IP + global rate limiting (no new deps) -
c3c30a52026-07-19 intake sign-in: hero Ken-Burns pan-zoom + reduced-motion guard (parity with RENTV portal motion layer) -
b6ee91b2026-07-17 chore: v-bump (session close) -
0b5ab1d2026-07-17 Intake app: rich UX — rotating skyline hero, editorial dark-gold system, restyled questionnaire -
cc8c4132026-07-17 Consulting Intake template home — public questionnaire front door -
eb9a6242026-07-17 scaffold consulting portal for Consulting Intake
Authors
- Steve7
Agents used
Skills used
- /catch1
- /intake1
- /day1
Creative ideas + design notes
cdc7067 · 2026-07-25 · harden public /api/intake: per-IP + global rate limiting (no new deps)
Zero-dependency in-memory sliding-window limiter: 5 submissions/IP/10min plus a 500/day global backstop so distributed spam can't fill intakes.json. trust proxy so it keys on the real client IP through nginx (X-Forwarded-For), not loopback. Verified: 5x200 then 429 same-IP; distinct IPs get independent buckets.
File tree
- .deploy.conf
- .gitignore
- build.mjs
- data/ads.json
- data/best-times.json
- data/client.json
- data/competitors.json
- data/content-calendar.json
- data/directories.json
- data/intakes.json
- data/media.json
- data/socials.json
- data/suggestions.json
- package-lock.json
- package.json
- public/admin/index.html
- public/intake.html
- public/portal.html
- public/signin.html
- public/versions/bold.html
- public/versions/classic.html
- public/versions/editorial.html
- public/versions/modern.html
- public/versions/warm.html
- server.js