A personal site made from scratch! https://badblocks.dev
Find a file
badbl0cks 72e57fb7ff
Break out contact form into separate component and implement OTP and rate
limiting, add iconify-icon dependency

Add src/components/ContactForm.astro implementing OTP verify/send flows and
server-side validation Add src/lib/Otp.ts (otplib-backed) with per-hour OTP and
per-week message rate limits and helper functions Expose OTP_SUPER_SECRET_SALT
in astro.config and add otplib Rename src/lib/cap.ts to src/lib/CapAdapter.ts
and update imports Replace inline contact page logic with ContactForm and adjust
SMS client Add iconify-icon dependency
2026-01-09 10:25:15 -08:00
.vscode Initial commit from Astro 2025-12-19 14:06:51 -08:00
db Add support for cap, a pow captcha, and implement on contact form 2026-01-06 20:50:30 -08:00
public new minimal retro theme, progress on parallax hero, refactor into semantic html, 2026-01-04 21:36:24 -08:00
src Break out contact form into separate component and implement OTP and rate 2026-01-09 10:25:15 -08:00
.dockerignore docker image building and docker compose support 2026-01-06 08:08:12 -08:00
.gitignore work on porting over contact form from old site, also added initial db support 2026-01-06 08:07:19 -08:00
astro.config.mjs Break out contact form into separate component and implement OTP and rate 2026-01-09 10:25:15 -08:00
bun.lockb Break out contact form into separate component and implement OTP and rate 2026-01-09 10:25:15 -08:00
docker-compose.yml docker image building and docker compose support 2026-01-06 08:08:12 -08:00
Dockerfile docker image building and docker compose support 2026-01-06 08:08:12 -08:00
package.json Break out contact form into separate component and implement OTP and rate 2026-01-09 10:25:15 -08:00
tsconfig.json Add support for cap, a pow captcha, and implement on contact form 2026-01-06 20:50:30 -08:00