Publishing platform + admin
Modern Expat Magazine
Publishing at volume across more than 140 places, where being findable and being fast are the same problem as being readable.
Updated

The problem
Most publications are built as a theme and then discover that a theme has opinions about how a guide relates to a city, how a city relates to a country, and what happens when an article needs to be three of those at once. The structure that makes a magazine findable is the structure a generic template refuses to have.
What we built
A search-first magazine on Firebase, organised Region, Country, City so a reader on one guide lands somewhere useful next. Behind it, an admin platform for writing, leads and media, and a social queue that publishes to LinkedIn and Facebook on a schedule.
The magazine
57 articles and 142 guides at the time of writing: around 106 city guides and 35 country and region guides, organised Region, Country, City. Thailand is the first complete country hub, with Phuket guides, resources and remote-work pages alongside it. Every page is static HTML, so a search engine or an AI crawler reads exactly what a reader sees.
The admin platform
A private admin behind sign-in, where the magazine is actually run. A block editor with live preview writes articles and guides: headings, images, pull quotes, callouts, key takeaways, FAQs and banners. The same admin holds the leads pipeline from new to won, the subscriber list with CSV export, a media library that resizes and converts uploads to WebP in the browser, and reusable promotional banners.
Social publishing on a schedule
Publishing an article reserves it a slot in the social queue. Every 15 minutes a scheduled function posts whatever is due to the LinkedIn company page and the Facebook page, hero image attached. From the admin the team can backfill older articles, retry a failed post or push the next one out now. The Instagram feed is pulled server-side and cached, so the site never waits on Meta.
Built to be found
Structured data on every template: Article, FAQPage on 68 pages, breadcrumbs, City and Country, and Speakable markup. A 219-URL sitemap, an llms.txt summary for AI tools, a robots.txt that lets the answer engines in, and editorial and corrections policies that say who stands behind the content.
Fast as the archive grows
Responsive images in AVIF and WebP, self-hosted fonts, critical CSS inlined on the homepage, year-long caching on images and fonts, and an installable app shell for readers who come back. A build step assembles and minifies the site before every deploy.
The part that is not visible
Every deploy runs a secret scan and a review of the hosting config first, and every push runs the same checks plus a dependency audit and a test of the database security rules. Public forms never write to the database directly: one function validates, rate-limits and deduplicates every submission. The admin is locked to a single account, with strict security headers and nothing cached.
- 57 articles and 142 country and city guides
- Admin platform: editor, leads, subscribers, media, banners, social
- Every article posts to LinkedIn and Facebook on a schedule
- Structured data, sitemap and llms.txt for search and AI answers
Live and publishing. New article pages still go live through a deploy step; one-click publishing from the admin straight to the live site is the next build.
What it proves
Any content business where the archive compounds. It is also the clearest example we have of the audience we build for: people moving between countries, which is a market rather than a demographic.