Sea Brand for Brighton & Hove LGBT Switchboard

Your new website,
explained.

A plain-English guide to how your Switchboard website is built, how to manage it day-to-day, and the thinking behind every design decision.

Contents

1Sea Brand's Philosophy

Websites that work for you, not the other way around.

Sea Brand was founded with a clear mission: to build bespoke websites that look great, deliver on strategic goals, and help changemakers achieve what they set out to do.

A big part of that mission is building websites that internal teams can manage and adapt to change themselves — because nothing slows an organisation down more than a website that requires a developer for every small update.

Every decision made in building your Switchboard website was guided by this principle. You should feel confident adding a new staff member, updating a service description, or linking a new resource — without needing to call anyone.

The Golden Rule

If something can be done without code, it is done without code. Code only appears where it genuinely needs to — working quietly in the background so the rest of the site can be managed visually.

↑ Back to top
2Why We Built It This Way

A fresh start on familiar foundations.

Switchboard's previous website ran on WordPress. There was a strong case to keep WordPress as the platform — most of your content and data was already in the system, and the team was familiar with it.

However, the old website had a common WordPress problem: too many plugins that didn't talk to each other, each downloaded for a very specific one-off purpose. The design was mostly hardcoded, based on a content editor that wasn't flexible enough for the organisation's evolving needs.

The new approach

Sea Brand's philosophy is to keep things as simple as possible. The entire Switchboard website runs on just four plugins:

🧱

Oxygen Builder

The visual design and layout engine. Handles everything you see on screen.

📋

Advanced Custom Fields

Stores structured data — staff details, service info, relationship links.

🔍

Yoast SEO

Manages search engine visibility and metadata for all pages and posts.

🌍

Google Translate

Provides language accessibility across the entire site.

This minimal plugin footprint keeps the website fast, stable, secure, and easy to maintain. Every piece of functionality is covered by one of these four tools — there is no need to add more.

A note on plugins

Adding new plugins always carries risk — compatibility issues, security vulnerabilities, and performance problems. Before installing any new plugin, ask: can this be achieved with Oxygen Builder, ACF, or a small custom code snippet? In most cases, the answer is yes.

↑ Back to top
3Information Architecture

How the website is structured.

The website is built around a clear, connected structure. Think of it as a set of content types that can talk to each other — passing information back and forth so that the right content appears in the right place automatically.

The hub categories

At the top level, the website is organised around three hub pages that visitors can navigate to. Each hub aggregates related content as cards:

🤝

Our Services

Displays all active Switchboard services, each linking to its own service page.

📚

Our Training

Showcases Switchboard's training offerings for external organisations.

🆘

Get Help Now

Signposting to urgent support resources, linked directly to relevant services.

The connected model

The website uses relationship fields to connect content types together. This means a single piece of content — say, a training session — can appear on the Training hub, the Services hub, or both, simply by selecting the relevant hubs in the content editor. No duplication. No developer needed.

The same flexibility applies to Documents, CTAs (call-to-action blocks), and Recover With Pride resources. These can all be assigned to multiple pages or services at once, from the same edit screen where you write the content.

Every area is connected

Every section of the website is able to connect to another and send or receive information — all held together by Oxygen Builder. Most content management scenarios can be handled entirely within this system, without the need for additional plugins or developer involvement.

↑ Back to top
4Post Types Explained

The building blocks of your content.

WordPress organises content into post types. Some are built into WordPress itself (Posts, Pages). Others were created specifically for Switchboard — these are called Custom Post Types (CPTs). Each post type has its own template in Oxygen Builder, meaning new content always appears with the correct layout automatically.

Main content post types

Post TypeWhat it storesTitle fieldFeatured image
StaffTeam member profiles, role, contact, pronounsStaff member's nameProfile photo
ServicesAll Switchboard services and their detailsService nameService image
TrainingTraining programmes offered externallyTraining nameTraining image
PostsNews, jobs, and updatesArticle headlineArticle image
TrusteesBoard member profilesTrustee's nameProfile photo

Background / infrastructure post types

These post types don't have public-facing archive pages but play a vital role in how the site connects and displays content:

Post TypePurposeHow it's used
HubsThe three hub categoriesServices, Training, etc. are linked to a hub via a relationship field
DocumentsDownloadable files and reportsAssigned to services or pages via relationship field — appear as download cards
RWP ResourcesRecover With Pride content itemsAppear in the RWP accordion on subpages, pulled by relationship field
CTAsCall-to-action blocksFlexibly assignable to any page or service via relationship field

The minimalist field approach

Wherever WordPress's built-in fields could store information, we used them rather than creating new custom fields:

Custom fields only appear where WordPress's built-in fields are not sufficient — for example, storing a job title, pronouns, referral form shortcode, or the relationship link to a hub.

↑ Back to top
5Oxygen Builder Basics

The engine behind everything you see.

Oxygen Builder is the visual design editor used to build the entire Switchboard website. It works as a theme builder — controlling not just individual pages, but the global templates applied to all posts, services, and other content types.

The low-code approach

Almost every aspect of the website — layouts, colours, typography, spacing — can be changed visually within Oxygen Builder, without writing any code. The only exceptions are a small number of helper elements written in PHP or JavaScript, used specifically to handle ACF relationship field queries.

Templates

A single template is created and automatically applied to all posts of a given type. This means:

Template structure

Find all templates at Oxygen Builder → Templates in the WordPress dashboard.

TemplateApplies to
NavigationMain menu — applies site-wide to every page
FooterGlobal footer — applies site-wide to every page
Single ServiceAll service pages, such as Domestic Abuse — except Recover With Pride
RWP TemplateThe Recover With Pride service page and all its child pages only (see below)
Single TrainingAll training pages, such as Gambling Harm Training
Single PageAll standard pages, such as Governance or Volunteer With Us
Single PostAll blog posts and news articles
NewsThe news archive page listing all published articles

Recover With Pride — a special case

Recover With Pride sits within the Services section but functions as a hub in its own right. When you open it, a submenu appears linking to its child pages — each covering a specific programme area such as 1:1 Coaching, LGBTQ+ Resources, or Group Coaching.

A condition has been built into Oxygen so that the standard Single Service template does not apply to Recover With Pride. Instead, a dedicated RWP Template applies specifically to the Recover With Pride service page and any page whose parent service is Recover With Pride.

Adding a new Recover With Pride subpage

Go to Services → Add New Service. Fill in your content as normal. Then make sure you do two things:

1. Set Recover With Pride as the Parent Service in the page attributes panel.

2. Select Recover With Pride as the Service Category.

Both steps are required. They activate the RWP Template and unlock the specific custom fields that connect the page to RWP resources.

Global Settings

Oxygen Builder 6 includes a Global Settings panel where the entire site's visual foundation is defined — brand colours, typography, button styles, and spacing variables. Any change made here cascades across the entire website instantly.

SettingValueUsed for
Brand colour#360568 (deep purple)Headings, hero backgrounds, footer
Links colour#FF595E (salmon)All hyperlinks site-wide
Background#F9F5E3 (oldlace)Page background
Body fontPoppins (Google Fonts)All body text
Heading fontAmifer (Adobe Fonts)All headings and display text

How to access templates

1

Go to the WordPress dashboard

Log in at /wp-admin and find Oxygen Builder in the left sidebar.

2

Click Templates

This shows all templates in the system — for pages, services, staff, training, posts, and more.

3

Click Edit with Oxygen

Opens the visual editor for that template. Changes here affect all content of that type.

Important

Editing a template changes the design for every post of that type. If you only need to change the content of one specific post, edit the post itself in WordPress — not the template in Oxygen.

↑ Back to top
6CSS Classes in Oxygen

Reusable styles across the whole site.

CSS classes are named groups of visual style rules. Instead of defining a colour, font size, or spacing value on each element individually, a class gives that style a name — and can then be applied to any element anywhere on the site.

A simple analogy

Think of CSS classes like clothing labels. Instead of writing "blue, slim-fit, cotton" every time you reference a particular item, you just call it "the navy shirt". Change what that label means once, and it updates everywhere it's referenced.

In the same way, a class like .headline on the Switchboard website means "bold, with bottom margin, in the brand font." Apply that class to any text element and it instantly looks right. Update the class once, and every headline across the site updates automatically.

How classes work in Oxygen Builder 6

In Oxygen Builder 6, classes are managed through the Selectors panel. When you select an element in the visual editor, you can apply an existing class, create a new one, or browse the global selector library. Classes on the Switchboard website are organised into collections — Text Styles, Sections & Wrappers, Utility Classes, Decorative Classes — which makes them easy to find.

The design system

All CSS classes are documented in the accompanying Design System Style Guide. This living reference shows every class, what it does, which pages it appears on, and a live rendered example.

CSS Variables

Colours and spacing values in the Switchboard stylesheet use CSS variables — named tokens like --brand, --salmon, or --m — rather than hardcoded values. This means changing the brand colour in one place updates every element that references it across the entire site.

↑ Back to top
7Components & Cards

Reusable building blocks for dynamic content.

Oxygen Builder 6 introduces Components — reusable, self-contained design elements that can be dropped into any page or template. Design it once, use it everywhere, update it in one place.

What is a Component?

A Component in Oxygen is a group of elements — layout, text, images, buttons — saved as a single named unit. When that Component is placed on a page, it renders consistently every time. When you edit the Component itself, every instance of it across the website updates automatically.

Components built for Switchboard

Post Builder and the repeater loop

When a set of cards needs to be displayed from a dynamic list, Oxygen Builder's Post Builder element creates a loop that repeats the card component for each matching post. For ACF relationship fields, a custom array query written in PHP reads the relationship field values, extracts the post IDs, and passes them to Oxygen's loop builder.

How the array query works

ACF stores relationship field values as a serialised list of post IDs. The PHP array query reads this list, extracts the IDs, and returns them to Oxygen's loop builder in a format it understands — producing a fully dynamic, automatically updating list of cards.

↑ Back to top
8Custom Fields (ACF)

Where structured content lives.

Advanced Custom Fields (ACF) stores all structured information that doesn't fit into WordPress's standard title, content, or featured image fields. It adds clearly labelled input fields below the Gutenberg editor on each post type's edit screen.

Key custom field types used

Field TypeWhat it doesExample
TextStores a single line of textJob title, pronouns, shortcode
WYSIWYGRich text editor for formatted copyWhy It Matters, Who It's For, disclaimer text
ImageStores an uploaded imageService logo, partner logo
FileStores an uploaded file and its URLDocument downloads on governance pages
RelationshipLinks this post to one or more posts of another typeService → Hub, Service → Staff, Service → Documents
Gravity FormsStores a form shortcodeReferral form assigned to a service page

Relationship fields — the connective tissue

Relationship fields are the most important field type on the Switchboard website. When you open a service post in the WordPress editor, you will see relationship fields to:

These relationship fields display as a search-and-select picker, showing the available posts to choose from.

↑ Back to top
9Pages vs Post Types

Two different editing experiences — on purpose.

There is an intentional distinction between post types (Staff, Services, Training, etc.) and pages (Governance, Jobs, Volunteer With Us, etc.).

Post types — standardised and template-driven

Custom post types follow a strict, standardised structure. Their templates apply consistently to every post of that type. The Gutenberg post content field is used for the main descriptive text because it maps directly into a fixed location in the template. These post types are expected to change frequently — the template-driven approach means anyone can add or update content without touching the design.

Pages — flexible and less frequent

Pages like Governance, Jobs, and Volunteer With Us lean more heavily into Oxygen Builder's flexible visual editor for their layout, because their structure tends to be more unique. They have custom fields, but fewer of them. These pages are anticipated to change less frequently.

Summary

Post types (Services, Staff, Training, etc.) → edit the post in WordPress. The template handles the design automatically.

Pages (Governance, Jobs, etc.) → edit content in WordPress for text changes; edit in Oxygen Builder for significant layout changes.

↑ Back to top
10Day-to-Day Editing

The most common tasks, explained.

Adding a new staff member

1

Go to Staff → Add New

Find Staff in the WordPress dashboard left sidebar.

2

Enter the name as the Post Title

This is what appears as the staff member's name across the site.

3

Add the profile photo as Featured Image

Click Set featured image in the right sidebar and upload the photo.

4

Write the bio in the Post Content area

This is the main Gutenberg editor area. Keep it clear and concise.

5

Fill in the custom fields below

Add job title, pronouns, email address, and any other structured fields in the ACF section.

6

Publish

The staff member will automatically appear in any loops or templates that display staff.

Adding a new service

Go to Services → Add New. Use the Post Title for the service name, Featured Image for the service image, and Post Content for the main overview text. Below the editor, find relationship fields to assign the service to a hub, select a main contact, attach documents, and add a referral form.

Adding a new Recover With Pride subpage

Go to Services → Add New Service. Fill in the page title, content, and featured image. Then set Recover With Pride as the Parent Service and assign Recover With Pride as the Service Category. Both steps are required — they activate the RWP Template and unlock the RWP-specific custom fields.

Adding a news post

Go to Posts → Add New. Write the article headline as the Post Title, add the article image as the Featured Image, and write the content in the main editor. Assign a category (Jobs, News, Events etc.) using the Categories panel in the right sidebar.

Adding or updating a document

Go to Documents → Add New. Enter the document name as the Post Title and upload the file using the ACF file field. Then go to the relevant service or page and assign the document via its relationship field — it will appear as a download card automatically.

↑ Back to top
12Plugins Overview

Four plugins. Everything covered.

PluginWhat it doesWho manages it
Oxygen Builder 6Visual design editor, template builder, component library, global settings, CSS class managementDeveloper / advanced user
Advanced Custom Fields (ACF)Custom field groups for all post types, relationship fields, file fields, WYSIWYG fieldsDeveloper for setup, all team for data entry
Yoast SEOSearch engine metadata, XML sitemap, social sharing tags, readability analysisContent editors via the Yoast panel on each post
Gravity FormsAll contact, referral, and booking forms across the siteForms edited in Forms → All Forms; shortcodes assigned via ACF fields
Google TranslateLanguage accessibility widget for all site visitorsRuns automatically — no maintenance required

Adding plugins

The current plugin set covers all foreseeable content management needs. Before installing any additional plugin, consider whether the functionality can be achieved with a small custom code snippet in Oxygen or ACF instead. Every additional plugin adds a maintenance burden, a potential compatibility risk, and a security surface area.

Keep plugins updated

Regularly updating plugins is one of the most important things you can do to keep the website secure. WordPress will flag available updates in the dashboard. Apply them after checking the plugin's changelog to ensure no breaking changes are introduced.

↑ Back to top