Findugo: a multilingual editorial platform, built from scratch

3 min read

Findugo is my own product — a multilingual editorial blog covering online shopping, tech, and personal finance. In 2026 I rebuilt it from the ground up: from a single-language WordPress.com site into a self-hosted, three-language platform with a custom theme, its own search engine, and a compliant affiliate layer. Because I own and built every part of it, it doubles as the clearest demonstration of how I work.

The Challenge

The original Findugo was a small Russian-language blog on WordPress.com Premium, and it had hit a ceiling on every front. The platform blocked custom themes, custom PHP, and granular SEO control. Reach was capped by a single language in a competitive, expensive keyword market. Monetization had grown organically with no infrastructure behind it — affiliate links added by hand, with no sponsored attributes, no disclosure pages, and no tracking. And a generic theme did the editorial content no favors.

My Approach

I made one strategic decision: a full migration to self-hosted WordPress, with everything custom-built on top. I broke the work into five phases over about eight weeks.

  1. Migration foundation. Moved off WordPress.com to self-hosted WordPress on Hostinger, kept the findugo.com domain, redirected DNS, and preserved all existing content and images.
  2. A “Noir Editorial” design system. A dark theme built from scratch — near-black background, a single gold accent, a serif/sans pairing, mobile-first and fully responsive. Hand-written CSS, no page builder, no framework.
  3. Three languages with Polylang. Russian as the default, English on /en/, Ukrainian on /uk/, automatic hreflang, and a filter-based translation layer (PHP arrays instead of .mo files, for reliability). The model is selective by design: a Russian master, more than a dozen pieces already translated into English and Ukrainian, and all new articles published across the three languages — rather than mass-translating content that wouldn’t serve those audiences.
  4. A real monetization layer. A custom “partner” post type, a helper and shortcode for affiliate links, and an automatic filter that guarantees the right sponsored/nofollow attributes across every partner domain — plus proper disclosure pages, adapted per language.
  5. SEO, analytics, and search. Rank Math for meta, schema, and sitemaps; GA4 and Search Console for measurement; and a custom search engine — a live header dropdown, a grouped results page, and an in-page “find on page” tool — backed by a custom REST endpoint, because the default API doesn’t filter by language.

Outcomes

The result is a fully independent, production-grade platform: Lighthouse scores of 92+ for performance and 100 for accessibility and best practices, a library of 80+ original articles, and a working trilingual publishing pipeline. The affiliate layer covers 27+ partner domains with a catch-all for future ones, and the whole site runs on its own domain, DNS, and database — with zero critical security incidents across the project’s lifecycle. For a prospective client, it’s end-to-end proof: custom theme development, multilingual setup, performance, SEO infrastructure, affiliate compliance, framework-free frontend JavaScript, and a custom REST API.

What I’d do differently

Three honest lessons. I’d put the project under Git from day one — building through a file manager with manual backups cost me recovery time I could have avoided. I’d plan static caching earlier instead of bolting it on after launch. And I’d skip .mo translation files entirely: WordPress’s parser was unreliable for my setup, so I moved to an inline, filter-based approach — exactly where I’d start on the next multilingual build.

Stack

WordPress · PHP 8.3 · MySQL · Hostinger (LiteSpeed) · Polylang · Rank Math · custom CSS (~4,700 lines) · vanilla JS · custom REST API · GA4