What I built
- Layered spam defenses on the contact form: hidden honeypot fields, timing checks, a rate limit and a spam score. Bots get a fake "thanks".
- An admin area for projects, photos, the blog and events. Photos upload in bulk in the background, and big files shrink automatically.
- Event sign-ups with capacity limits, where guests can pick what to bring.
- Search-engine basics: structured data, a live sitemap, and a visitor counter that ignores bots.
- Redesigned it with seigaiha waves, device-framed project cards and a film-style photo contact sheet.