Multilingual Event Marketplace Rebuild with Next.js & Strapi by Aqib JavaidMultilingual Event Marketplace Rebuild with Next.js & Strapi by Aqib Javaid

Multilingual Event Marketplace Rebuild with Next.js & Strapi

Aqib Javaid

Aqib Javaid

Scalable multilingual event marketplace built with Next.js and Strapi.
Rescued a failing event platform by architecting a robust headless marketplace supporting five languages, real-time messaging, and Stripe payments. Engineered a custom AWS Translate-powered engine in Strapi 5 to automate complex nested content localization while preserving SEO integrity.
Client
Jun 2026
Eduard Y profile photo

Eduard Y

Founder • Planuojam

“Very professional developer, he helping to build really difficult project in time, and for reasonable price. Work with him not first time and really happy with his work”

“One if not the best proffecional which i met in Upwork. Fast and professional”

Confidential Enterprise Project (Protected Under NDA)

Proprietary source code, database architectures, and internal endpoint credentials are confidential. This case study highlights non-proprietary architectural patterns, technical solutions, and verified outcomes.
The project started as a recovery job. The client already had a website, but it was not working properly and was not structured for long-term growth. Patching isolated issues would have kept the same underlying problems in place, so I suggested a more practical direction: rebuild the system around a proper content model, a cleaner backend, and a frontend that preserved the client-approved visual direction while improving the user experience.
The biggest technical challenge was multilingual content. Planuojam needed to support Lithuanian, English, Russian, Polish, and Estonian across pages, listings, categories, event types, navigation, email templates, SEO metadata, and user-facing workflows. A normal CMS translation setup would still leave the team manually duplicating large amounts of content. Listings were not simple text pages either. They included vendor and venue blocks, pricing packages, FAQs, working schedules, media galleries, location data, social links, rich text, SEO fields, and relations to categories and event types. Translating that manually across every language would have been slow, expensive, and error-prone.
The platform also had to work as a real marketplace, not just a directory. It needed listing management, user accounts, provider profiles, bookings, availability calendars, reviews, messages, promotions, subscriptions, invoices, payment flows, email notifications, map discovery, and search-engine-friendly pages.
I rebuilt the backend in Strapi 5 and used it as both a headless CMS and the main application data layer. The content model was structured around the real business objects: listings, categories, event types, pages, bookings, messages, reviews, promotions, invoices, subscriptions, SEO settings, header, footer, site settings, and user profile extensions.
On the frontend, I built the marketplace in Next.js with locale-prefixed routes and server-rendered listing pages. The design direction stayed close to the previous website, but I improved the areas that affected usability, content quality, SEO, and conversion. Listing detail pages became richer and more useful, with galleries, videos, vendor or venue information, pricing plans, FAQs, ratings, reviews, availability, booking actions, map location, hot deals, and recommended listings.
For multilingual content, I built a custom auto-translation system on top of Strapi. When content is created or updated, the backend detects the source locale, finds the target locales, loads the full populated entry, and translates the right fields using AWS Translate. The system handles normal text, rich text blocks, components, dynamic zones, media, relations, nested listing data, and localized slugs. It also preserves existing manual translations, skips URLs, avoids copying SEO fields across languages incorrectly, retries failed translation calls, chunks long text safely, and uses loop guards so translation updates do not trigger endless translation cycles.
This turned multilingual publishing from a manual content duplication problem into a repeatable workflow. The team can update content in one language and let the platform generate the other locale versions while still keeping the option to manually refine translated content later.
Headless Strapi backend for content, marketplace data, SEO, and administration
Next.js frontend with locale-prefixed routes for Lithuanian, English, Russian, Polish, and Estonian
Dynamic CMS pages built from reusable Strapi content blocks
Vendor and venue listing profiles with galleries, videos, descriptions, pricing packages, FAQs, contact information, social links, and working schedules
Mapbox-powered vendor and venue discovery
Listing creation and editing flows for service providers
Booking and availability workflows with calendar support
Fallback inquiry flow when a provider does not use the availability calendar
User profile area for listings, bookings, messages, invoices, promotions, reviews, and account settings
Real-time messaging with Socket.IO, attachments, unread counts, read status, and typing indicators
Reviews and rating aggregation for listing trust signals
Hot deals and promoted listings for marketplace visibility
Star-based promotion logic and promotion usage tracking
Stripe subscription checkout for paid listing plans
Stripe payment intents for promotion and star purchases
Webhook-driven subscription and invoice handling
Public invoice links secured by unique invoice tokens
Localized email flows for OTP verification, welcome emails, bookings, messages, subscriptions, invoices, and inquiries
Custom authentication flows with email OTP, social login exchange, provider phone validation, preferred language, and password setup for social-auth users
Centralized site settings for logo, currency, fallback SEO, star packages, cancellation rules, and promotion pricing
SEO support with canonical URLs, hreflang alternates, Open Graph metadata, Twitter metadata, XML sitemaps, sitemap index, and JSON-LD structured data for listings and FAQs
I handled the project as a full-stack rebuild and recovery engagement. I reviewed the broken project, identified that the client needed a stronger foundation instead of another patch cycle, and recommended a rebrand with a proper backend architecture.
I designed and built the Strapi backend, including the content types, relations, custom controllers, middleware, lifecycle logic, user extensions, payment-related schemas, invoice records, messaging support, site settings, SEO models, and the auto-translation system.
I built the Next.js frontend around the new backend while keeping the client-approved visual direction. I implemented the localized routing setup, dynamic page rendering, listing pages, map experience, profile dashboard, booking flows, messaging UI, promotions, subscriptions, invoice access, email notifications, sitemap routes, metadata generation, and structured data.
I also handled the production polish that makes the platform usable beyond launch: caching and revalidation, server-rendered listing content, localized SEO, safer invoice access, cleaner listing filtering, promoted-first listing sorting, translated email templates, and ongoing fixes from real testing and client feedback.
The auto-translation system is the core technical highlight of the project. It does not simply translate a single title and description field. It understands Strapi content structures and translates nested content while preserving the data that should not be translated.
For example, listing content can include dynamic vendor or venue blocks, rich text, media, relations, pricing packages, working schedules, FAQs, and SEO components. The backend separates translatable fields from non-translatable fields, copies media safely, maps localized relations when available, skips fields that would corrupt SEO or URLs, and only processes changed fields on updates when possible.
The marketplace also includes several production-grade application workflows: authenticated real-time messaging, booking status management, provider dashboards, review aggregation, Stripe checkout, Stripe webhooks, subscription records, invoice generation, public invoice tokens, promotion tracking, and multilingual transactional emails.
On the frontend, listing detail pages are built to serve both users and search engines. The pages are server-rendered from Strapi, include localized metadata, expose JSON-LD for local business and FAQ content, and generate sitemaps for pages, listings, categories, services, and event types.

Gallery

Tech stack

Strapi 5

Timeline & Milestones

Like this project

Posted Oct 15, 2026

Rebuilt and optimized a multilingual event marketplace using Next.js and Strapi.

Likes

0

Views

1

Timeline

Jan 1, 2026 - Jun 30, 2026