Loading

Website · 2026

Dynamic Translator Product Website

The bilingual sales and download site for Dynamic Translator, Ant Arge's multilingual WordPress plugin.

Year

2026

Type

Website

Role

Web Developer

Tech Stack

  • Eleventy
  • Nunjucks
  • JavaScript
  • CSS3
  • Docker
  • Vercel
PrivatePrivate repository. Source code is not public.

Project Summary

The product website for Dynamic Translator, a commercial WordPress translation plugin developed by Ant Arge. The plugin adds language-prefixed URLs, automatic translation with Google Cloud Translation and DeepL, a live on-site translation editor and WooCommerce language handling. In both Turkish and English, the site explains these features, shows the Free, Pro and Agency plans, publishes release notes and collects download requests.

The first version switched languages in the browser by swapping text with JavaScript, so search engines only ever saw one language. The site moved to Eleventy, which paginates the Nunjucks templates over a language list. Each language gets real URLs (Turkish at the root, English under /en/) with canonical, hreflang, x-default and Open Graph tags. The client-side script shrank from 664 to 165 lines. The same code deploys to Docker with nginx or to Vercel.

Problem & Solution

Problem
  • Client-side language switching left the English content invisible to search engines
  • Visitors could download the plugin from a public link without the team knowing who they were
  • Browsers kept showing old HTML after a release
  • The site had to run both on the company's own server and on a managed host
Solution
  • Build-time pages for each language, with real URLs, hreflang and per-language metadata
  • A download request form sent with fetch, replacing the public repository links
  • HTML is served with no-store, while CSS and JS are cached for 7 days and images and fonts for 30
  • A Docker image with nginx and a Vercel config, built from the same Eleventy output

Key Features

01

Build-Time i18n

Eleventy paginates over a languages file and renders every template once per language from JSON translation files.

02

Multilingual SEO

Per-language canonical URLs, hreflang with x-default, og:locale and a sitemap listing every language version.

03

Release Notes

A release notes page for the plugin in both languages.

04

Download Requests

A gated download flow and a contact form, both submitted with fetch to a form service.

05

Accessibility

Skip link, ARIA labels and localized alt text from the translation files.

06

Lightweight Front End

Plain CSS and vanilla JavaScript, with IntersectionObserver driving scroll reveal and navigation highlighting.

Technical Details

Templates

Eleventy 3 with Nunjucks: 3 templates × 2 languages = 6 pre-rendered pages.

Caching

nginx and Vercel headers serve HTML with no-store and give static assets long cache lifetimes. Both also add security headers.

Deployment

A two-stage Docker build (Node 22, then nginx 1.27 with a health check) and a Vercel config for the same build output.

Have a project? Let's talk.

Have a project in mind or a question about my work? Email or LinkedIn is the best way to reach me.