Skip to content
← Work

Bilingual site with an admin panel and auto-translation for a university comedy club.

Role
Full-stack developer
Type
Live site · client
Year
2026
Witty Minds Club screenshot
Witty Minds Club on a phone

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
Next projectBHOS Football