Skip to content
Back to all work
EventTech · Marketplace · Headless CMS · Multilingual Platform · Strapi

Planuojam - Multilingual Event Planning Marketplace

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

Role

Senior Full-Stack Developer

Year

2026

Category

EventTech · Marketplace · Headless CMS · Multilingual Platform · Strapi

Eduard Y profile photo

Eduard Y

Founder • Planuojam

5.0
Verified Client Partner
CONTRACT #1Planuojam - Strapi Architecturevia UPWORK
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
CONTRACT #2Wordpressvia UPWORK
One if not the best proffecional which i met in Upwork. Fast and professional
Total Milestone ReviewsRepeat Client • 2x Contracts

The Challenge#

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.


The Solution#

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.


Key Features#

  • 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

My Contribution#

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.


Technical Highlights#

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.

Tech stack

Next.js
React
TypeScript
Tailwind CSS
next-intl
Strapi 5
PostgreSQL
AWS Translate
Mapbox
Stripe
Socket.IO
Resend
Nodemailer
REST APIs
JSON-LD

Timeline

  1. Architecture & Recovery

    Q3 2025

    Audited legacy codebase, redesigned the content schema, and established a decoupled Next.js and Strapi 5 headless architecture.

  2. Core Engine & Payments

    Q4 2025

    Implemented Stripe subscriptions, Mapbox discovery, and Socket.IO real-time messaging workflows.

  3. Localization & Launch

    Q1 2026

    Built the custom AWS Translate localization engine, finalized localized SEO routes, and launched the platform.

Outcomes

  • Completed

    Project Recovery

    Broken project turned into a rebuilt marketplace platform |

  • Delivered

    Rebrand and Frontend Rebuild

    Previous website direction preserved, with improved user flows and marketplace screens |

  • Strapi 5

    Headless CMS

    Content, navigation, SEO, listings, categories, event types, site settings, and page blocks moved into Strapi |

  • 5 Languages

    Multilingual Publishing

    Five-language setup supported with custom auto-translation across nested Strapi content |

  • Production Ready

    Marketplace Workflows

    Listings, bookings, reviews, messages, availability, promotions, subscriptions, payments, and invoices implemented |

  • Fully Configured

    SEO Foundation

    Localized URLs, canonical metadata, hreflang, Open Graph, Twitter metadata, JSON-LD, and XML sitemaps added |

  • Enabled

    Operational Control

    The client can manage platform content and marketplace configuration without relying on code changes for routine updates |