Bilingual site with an admin panel and auto-translation for a university comedy club.
- Role
- Full-stack developer
- Type
- Live site · client
- Year
- 2026
- Links
- Live site ↗



Problem
The club needed a bilingual website that non-technical members could manage on their own.
Solution
A 9-page site and an admin panel. Members manage events, news, the team and galleries themselves, and the English version is translated automatically.
What I did
- Built a 9-page bilingual (AZ/EN) site for the club on my own and launched it at wittyminds.com.az.
- Built an admin panel with Payload CMS: members manage events, news, the team, galleries and site settings without touching code.
- Wrote automatic translation with DeepL: saving Azerbaijani text fills in the English version, keeps rich-text formatting, never overwrites manual edits and never makes the admin wait.
- Protected 4 public forms (membership, suggestions, contact, event sign-up) with a honeypot, per-IP limits, server-side Cloudflare Turnstile and validation.
- Added seat limits and closing times to event sign-ups, and blocked duplicate sign-ups at the database level.
- Deployed on Vercel, Neon Postgres and Vercel Blob: migrations run during the build, admin changes update the site immediately, with a sitemap and hreflang.
How it's built
VisitorsAZ / EN
Club membersFrom the admin panel
Next.js9 pages, 4 forms
Payload CMSAdmin and content
PostgreSQLNeon
DeepLAutomatic translation
A member writes an event in Azerbaijani, DeepL fills in the English version and everything is saved.
Stack
- Next.js
- Payload CMS
- PostgreSQL
- TypeScript
- Tailwind CSS
- DeepL
- Neon
- Vercel Blob
- Resend
- Vercel