Platform Engineering

XenForo development and community platform engineering

A community platform is judged in public and cannot be taken offline to be improved. We work on forum platforms that are already carrying an audience, where the constraint is not building the feature but shipping it without an upgrade becoming a project of its own.

The problem

Community platforms accumulate customisation faster than they accumulate documentation

A forum that has been running for years has almost always been adapted by several people across several platform versions. Each change was reasonable when it was made. The problem is that the boundary between the platform's own code and the customisations layered on top of it has stopped being visible, and nobody can predict what an upgrade will break until it breaks it. On a community, that upgrade happens in front of an audience that notices immediately.

  • Upgrades have been deferred because the last one caused problems
  • Nobody can say which customisations are still in use and which are dead weight
  • Template edits were made directly rather than through an extending mechanism
  • A modification works, but nobody on the current team knows how it was built
  • Performance degrades as discussions and attachments accumulate
  • The platform version has fallen behind supported releases
  • An integration stopped working after an update and was left disabled
  • Changes require taking the forum offline, so they rarely happen
Who this is for

The people who usually bring us this problem

A community owner or forum operator

Your platform has grown past what a general agency or a part-time developer can maintain, and the upgrades have started to feel risky.

A community manager with a technical budget

You know what the community needs and you need an engineer who understands that disrupting it for a day has a cost beyond the development time.

A business that acquired or inherited a forum

You have taken on a platform with years of accumulated customisation and no documentation, and you need to know what you are actually running.

What it costs

What this costs while it goes unfixed

Engineering faults are rarely confined to the engineering layer. These are the commercial consequences we see most often.

Deferred upgrades compound into a forced project

Each version skipped makes the next jump larger and the accumulated customisation further from the platform's own moving target. What would have been routine maintenance becomes a rebuild with a deadline set by an end-of-support date.

Unclear boundaries make every change expensive

When customisations are tangled into the core, every template change and every extension has to be re-validated by hand against the whole. Development slows to a rate set by uncertainty rather than by the work.

Performance problems on a forum are structural, and they get worse

Search, attachment storage and thread rendering behave differently at ten million posts than at one million. An architecture that was fine when the community was smaller does not degrade gracefully — it degrades abruptly, usually under peak load.

Community trust is lost faster than it is built

Members are the platform's real asset and they are sensitive to disruption. An outage, a lost post or a broken feature has a cost that does not appear on any invoice — it appears as declining participation.

What we do about it

Capabilities

Each of these is work we carry out, not an area we advise on.

Platform assessment and version position

Establishing what is actually running, how far it has fallen behind currently supported releases, what the upgrade path looks like, and which customisations each step will affect. This is the inventory that decides everything downstream.

Add-on and extension development

Building functionality as a properly structured extension rather than as an edit to the platform, so the feature survives version upgrades and can be disabled without taking the forum down.

Template and front-end work

Theme and template development through the platform's supported mechanisms, with the parent templates left intact where possible so future upgrades remain tractable.

Upgrade-safe customisation

Keeping the boundary between platform and customisation explicit and documented, so the next upgrade is engineering work rather than archaeology. This is a design constraint applied from the start of any piece of work, not a cleanup afterwards.

Performance engineering

Database, caching and serving-path work calibrated to how a forum's load actually behaves — a captive audience, predictable peaks, large searches backfilling through long histories, and attachment stores that only grow.

Integration work

Connecting the platform to surrounding systems — membership, payments, email delivery, analytics, single sign-on — with the failure modes of each understood rather than discovered.

Ongoing platform maintenance

A cadence covering updates, customisation upkeep, performance review and incremental improvement, so the platform moves forward continuously instead of in disruptive jumps.

Operational ownership

Taking responsibility for the platform's infrastructure and availability where that is part of the engagement, rather than something the forum owner carries.

Managed XenForo hosting
How we work

Engineering methodology

The sequence is deliberate. The order is usually what determines whether the work holds or has to be repeated.

  1. Inventory the platform before proposing anything

    Versions, extensions, template modifications, integrations and customisations, and which of them are actually in use. On a forum, the list of customisations and the list of things anyone remembers building rarely match, and the difference is where the risk lives.

  2. Establish the upgrade path as a sequence, not an event

    Long-deferred platforms usually cannot be brought current in one step. Version steps are staged, tested on a replica of the real community, and applied in an order that keeps the forum open as much as possible.

  3. Keep the boundary explicit in everything we build

    Customisation goes into extensions and child templates rather than into the platform itself. The constraint costs a little more at the start and is what makes the next upgrade ordinary rather than risky — and on a platform with an audience, ordinary is the goal.

  4. Test on real data, at real size

    A forum behaves differently on a copy of the production database than on a fresh install. Replica testing is where query plans, search behaviour and template cost actually show up, so it is where changes are validated.

  5. Ship without taking the community offline

    Where a change can be staged, tested behind a flag and released gradually, it is. Downtime on a community is not just an availability metric — it is a visible disruption to an audience that is there for each other, not for us.

  6. Leave the documentation behind

    Every engagement produces a written record of what was built, why, and how to undo it. A platform that only one person understands is one resignation away from being unmaintainable, and that is true whoever built it.

Deliverables

What an engagement produces

Documentation is a deliverable, not an afterthought. On most of these engagements a large part of the value is a defect report precise enough for another team to act on.

Assessment

  • Current version and upgrade path to supported releases
  • Extension and customisation inventory, with what is actually in use
  • Template modification review
  • Performance profile against production-scale data
  • Prioritised findings with the risk each one carries

Development

  • Extensions and add-ons built to survive upgrades
  • Child themes and templates that leave parent mechanisms intact
  • Integrations with surrounding systems
  • Performance and query work where profiling shows it is needed
  • Staged and replica-tested releases rather than direct-to-production edits

Handover

  • Written record of every customisation and why it exists
  • Upgrade procedure for the platform as configured
  • Rollback procedure for each change
  • Documentation of what to check after an upgrade
Under the hood

Architecture and technology

Where customisation belongs

  • Extensions rather than core edits
  • Child templates rather than direct parent modifications
  • Platform-supported extension points over patched behaviour
  • Configuration and options rather than hardcoded values
  • Tooling that records what was changed, so the next engineer can see it

Forum-specific constraints

  • A captive audience makes downtime unusually visible
  • Load arrives in predictable peaks and cannot be scheduled
  • Hot threads, unread-state queries and search are the expensive paths
  • Attachment storage only grows and rarely shrinks
  • Long histories make some queries expensive forever
  • Members notice behavioural change before performance change
Related work

Where we have done this

Engagements where this capability was the substance of the work rather than a line item.

Online communities

Spain's largest forum

Since 2019, Soludome has managed infrastructure and platform operations for one of Spain's largest online communities. The work covers server and performance optimisation, CDN architecture, load balancing and site security under sustained traffic.

Since 2019continuous engagement
Online communities

Arrse.co.uk

An established community platform had accumulated three separate problems that compounded each other: page loads that had degraded with growth, search visibility that had not kept pace with the community's authority, and a security posture that had not been revisited as the platform's profile grew. The engagement addressed all three concurrently.

4%increase in organic clicks
Adjacent problems

If this is not quite your problem

These overlap at the edges. Sending you to the right page is more useful than having you work it out.

You need the add-on built rather than the platform changed

Custom functionality built as an extension is a different job from modifying the platform itself.

Custom XenForo add-on development

The platform needs operating rather than developing

If the question is who runs it rather than who builds on it, that is a different engagement.

Managed XenForo hosting

You are moving to XenForo from another platform

Source-schema conversion is its own discipline, and the compatibility position matters.

vBulletin to XenForo migration

The community's search visibility is the problem

Forum content is unusual in search and the indexation patterns differ from ordinary sites.

Crawl and indexation diagnosis
Questions

Frequently asked

Our platform is several versions out of date. Is that recoverable?

Usually yes, but rarely in a single step. Bringing a badly deferred installation current is staged: each version jump is applied and tested on a replica of the real community before it touches production, and the customisations each step affects are identified in advance. The first thing we produce is the upgrade path as a sequence, so you can see how many steps there are before committing to any of them.

Will upgrading break our customisations?

Some of them, most likely, and the assessment will say which. That is why the work starts with an inventory of what is actually in use rather than what appears in a directory — a modification nothing depends on is not worth preserving, and finding that out before an upgrade is considerably cheaper than afterwards. Where a customisation matters, the fix is to re-establish it on a supported mechanism so the next upgrade does not repeat the problem.

Do you work on platforms that have already been heavily customised?

That is most of the work, and it is the situation the page is written for. We start by reading what exists rather than by proposing a rewrite. A rewrite is occasionally the right answer; far more often the platform is sound and needs two things corrected, a documented boundary, and an owner.

Which platform versions do you support?

We will confirm that for your installation rather than publishing a range here. Platform support windows move, and a version list on a marketing page ages into being wrong without anyone noticing. What we will tell you is what your specific installation needs and whether the upgrade path to a supported release is straightforward — and if it is not, that is the first thing you should know rather than the last.

Can you take over a forum from a freelance developer who has left?

Yes, and it is one of the more common starting points. It begins as an inventory rather than as development: what is running, what has been changed, what depends on what. That document is usually the most valuable deliverable of the whole engagement, because it is the thing that has been missing.

Bring us the problem you have not been able to fix

Describe what is happening rather than what you think the cause is. If we are not the right people for it, we will say so.