Rafe Blandford

Bringing Back the Forum — 449,000 Posts

Rafe Blandford
5 min read
Bringing Back the Forum — 449,000 Posts
Photo by Massimo Virgilio / Unsplash

The All About Symbian forum ran from 2001 to 2013. At its peak, it was the primary English-language community for Symbian smartphone users — Nokia 7650 owners helping each other with Bluetooth pairing, N95 enthusiasts debating firmware versions, S60 developers sharing OPL tips. Nearly 77,000 threads, 449,000 posts, from 39,000 community members across 88 forums covering every Symbian device that mattered.

When the sites went into archive mode, the forum went dark. A vBulletin 3.8 installation needs PHP, MySQL, and active maintenance. Running a 2012-era forum application on a modern server is a security liability. So the forum got a placeholder page: "The All About Symbian discussion forum is no longer available."

Until now.

The database resurfaces

A 2020 backup turned up with a complete vBulletin MySQL dump — 1.6 GB, 180 tables, every thread and post preserved. The previous migration had only partially recovered this data. The full dump changes the picture entirely.

The first step was understanding what was actually in there. The numbers told the story even before reading a single post:

Year Posts Threads
2001 1,848 341
2002 37,434 4,942
2003 103,033 12,698
2004 55,864 12,808
2007 59,924 11,999
2010 20,214 3,745
2013 732 451

2003 was the peak — over 100,000 posts in a single year. That's the Nokia 6600 and 7650 era, when Symbian defined what a smartphone was. The 2007 spike corresponds to the Nokia N95, probably the platform's last great phone. By 2010, the decline is unmistakable. By 2013, the community had all but moved on.

This isn't just data. It's the heartbeat of a community that helped define the smartphone as we know it.

The encoding problem (and why forum data is hard)

vBulletin 3.8 stores everything in MySQL with a latin1 charset. But the actual content is UTF-8 — Chinese characters, Euro signs, accented names from European users. MySQL thinks the bytes are latin1; they're actually UTF-8 stored in latin1 columns. This is the classic "double encoding" problem that has plagued every forum migration in history.

The fix is deceptively simple: tell your MySQL client to read the data as latin1 (so it doesn't try to "convert" already-correct UTF-8), then decode the bytes as UTF-8 in your application code. In Python: text.encode('latin1').decode('utf-8', errors='replace'). One line, but getting there involves understanding why pymysql maps MySQL's 'latin1' to Python's 'cp1252' (which can't handle all 256 byte values) and overriding the connection encoding to 'iso-8859-1'.

This kind of thing is why forum archives are rare. It's not that the data is lost — it's that the layers of encoding, BBCode formatting, and application-specific conventions make it genuinely difficult to extract cleanly.

BBCode: the forgotten markup language

Forum posts from this era are written in BBCode — [b]bold[/b], [url=http://...]link[/url], [QUOTE=username;postid]quoted text[/QUOTE]. It's like HTML's less popular cousin, and every forum implemented it slightly differently.

The conversion handles the standard tags, but the interesting challenges are in the edge cases: [QUOTE=Rafe;12345] needs to render with a link back to the quoted post. [ATTACH]789[/ATTACH] references a binary blob stored in the database that needs to be extracted to a file on disk. Legacy posts from the forum's phpBB days contain [img]/phpBB/images/smiles/icon_wink.gif[/img] — smilies referenced by filesystem path. Posts from 2001 have [addsig] markers that vBulletin 2.x used to append signatures.

None of this is conceptually difficult. But the accumulation of edge cases across 449,000 posts from 17 years of forum software evolution means the BBCode converter needs to handle things no documentation covers.

Static, not dynamic

The decision to generate static HTML rather than running a read-only forum application was straightforward. The existing archive sites (AAS, AAWP, AAM) are all static — Caddy serves files from disk, Cloudflare caches them, Lighthouse scores hit 100/100/100/100. Adding a PHP or Python application server just to display read-only forum posts would be unnecessary complexity.

The generator is a single Python script. It connects to MariaDB, queries forums, threads, and posts, converts BBCode to HTML, renders Jinja2 templates, and writes static files. 81,117 pages generated in under two minutes. The output is 1.3 GB — HTML files, a CSS stylesheet, and the extracted attachments (3,929 files including Symbian .sis application packages that likely don't exist anywhere else).

Search is handled by Pagefind, a static search library that runs entirely in the browser using WebAssembly. It indexed all 78,000 pages in 3.5 minutes, producing a 430 MB index that loads in small chunks — typically 100-300 KB per search query. No server-side search infrastructure needed.

What the archive tells us

The most popular threads are exactly what you'd expect from a specialist community: firmware version trackers, product code databases for debranding carrier-locked phones, "ask any questions" megathreads for new device owners. The Nokia N95 forum alone has 6,190 threads and 41,785 posts. The most-viewed thread — N73 firmware versions — has been seen 780,000 times.

The busiest single day was 2 December 2002, with 613 posts. The top 40 contributors posted between 900 and 7,000 messages each, over periods spanning years. These weren't drive-by commenters — they were community members who showed up, day after day, to help strangers with their phones.

The stats page tells the whole story in a single chart: a line rising steeply from 2001, peaking in 2003, sustaining through 2007, and falling away to almost nothing by 2013. It's the lifecycle of the Symbian platform, measured in community engagement rather than market share.

Open source

The generator is available as an open-source project: vbulletin-3-static-archive. It's config-driven — the All About Symbian configuration ships as the working example, but the tool is designed to work with any vBulletin 3.x database. The documentation includes a detailed write-up of the encoding fix (which will save anyone working with vBulletin dumps in Python several hours of debugging), the BBCode converter's approach and edge cases, and deployment notes for Caddy, nginx, and Cloudflare.

If you have a vBulletin 3.x forum that deserves preserving, this might save you a few weeks.

The museum framing

This isn't a forum that's been "brought back to life." Nobody is going to post new replies to a 2007 thread about N95 firmware. It's a museum — a preserved record of how a community of enthusiasts navigated the most transformative period in personal technology.

The archive lives at allaboutsymbian.com/forum/, alongside the editorial archive of the main site. It's browsable by the original forum structure, searchable via Pagefind, and indexed by Google. Schema.org structured data helps search engines understand what the content is. Every thread page scores 100/100/100/100 on Lighthouse.

If you were part of the AAS community — if you ever asked about Bluetooth file transfer, or argued about whether the N95 or iPhone was the better device, or shared a theme you'd made — your words are still there.

img-forum-home.webp

New writing by email

Occasional pieces on product, technology and AI — and how they actually play out in practice.

Thanks — check your inbox to confirm.