BK Magazine and Soimilk
BK Magazine and Soimilk are Coconuts Media's Bangkok titles, and both were stuck on a Drupal 7 platform past its end of life. We redesigned both sites and migrated over 60,000 articles into WordPress.
BK Magazine and Soimilk now publish from WordPress on their own domains, with a new design each, their archives intact and an ad stack the commercial team can run.
What we were solving
BK Magazine is the insider's guide to Bangkok. It covers the city's restaurants, bars, events and neighbourhoods in English, and its B.A.D. Awards and Top Tables are fixtures of the city's food and drink calendar. Soimilk is its Thai-language sister title, a daily lifestyle feed for a younger, digital-first Bangkok audience. Both are published by Coconuts Media.
Both sites ran on Drupal 7, which reached end of life in January 2025. BK still lived at bk.asia-city.com, a legacy of its previous owner. Between them the two titles carried over 60,000 articles, with venue records, neighbourhood tags, videos, deals and award listings layered on top over fifteen years of publishing.
Chillybin had been maintaining and hosting the sites since 2023. The brief in early 2025 was to redesign both, move BK to bkmagazine.com, and bring every article across to WordPress without losing search traffic or the ad revenue that pays for the newsroom.
How we tackled it
A content model that could hold fifteen years of Bangkok
The Drupal structure had grown by accretion: a dozen overlapping sections, fifty-plus neighbourhood tags, venue types that appeared nowhere in the new designs. We mapped every old section to a clean taxonomy (Food, Nightlife, Arts and Culture, Things to Do and so on, each with sub-categories), standardised URLs on the primary category, and consolidated galleries, gyms, shops and bars into a single Places post type with filterable tags. Locations stayed taggable in full, with a Featured toggle so editors choose which appear in menus. Anything that fitted nowhere went into a holding post type for editors to re-file, so nothing was dropped.
A custom migration plugin instead of a generic importer
No off-the-shelf tool handles 60,000 Drupal nodes with their fields, authors, images and taxonomies, so we wrote one. The plugin read directly from the Drupal database, created the matching WordPress posts and custom fields, mapped every author (unmapped bylines went to a BK Staff account), copied the full image library and rewrote the paths. Ad slots followed the commercial team's spec: billboard and leaderboard on desktop, mobile banners, half-page and rectangle units on article pages, ready for direct deals and programmatic.
Soimilk, three days ahead
Soimilk shared the content model and ad layout but got its own design, in Kanit and Roboto to suit Thai headlines, with a category structure built for its topics (beauty, fashion, entertainment, social issues) rather than BK's venue-led one. Its 3,700-URL archive moved in the same plugin, and the site went live on 12 September 2025, three days before BK, as the smaller rehearsal for the larger launch.
What we delivered
BK Magazine now publishes daily from bkmagazine.com on WordPress, and Soimilk from soimilk.com, both on a production stack we host and maintain. The archives are browsable back to the earliest years. Editors file into a CMS built around how they already work, with Places, Deals and award listings as structured content rather than articles pretending to be venues. The Drupal servers are gone. The subdomains for the B.A.D. Awards, Top Tables, the directory and the company studio sit on the same platform, so one team looks after the lot.
What we learned
Carry the old URL in the migration record from the first test import. Our export of the Drupal nodes didn't include each article's custom path, so WordPress generated slugs from titles and the old links didn't resolve at launch. We rebuilt the script to carry the Drupal path, re-imported in batches and logged every 404 for redirecting. A publisher's search traffic is its revenue, and a week of broken inbound links is a week too many. Redirect mapping is now the first item on our pre-launch list, not the last.
Impact & outcomes
articles migrated from Drupal 7 to WordPress
publications launched in 4 days
legacy BK URLs in the redirect map