Basker Docs

Extending Basker

Add fields, content types, and rules that aren't in the built-in model — without changing the platform

Basker's built-in model covers most of what live-events organisations need. When you need more — additional fields on existing content, entirely new content types, dynamic listings, integrations with external systems — Basker's extension points let you add them without changing the platform.

The three extension points

1. Custom data

Custom data lets you add fields and content types yourself, without writing code:

  • Custom attributes add fields to existing content types — a "Run time" field on every event, a "Pronouns" field on every person, a "Reading time" field on every post.
  • Custom objects define entirely new content types — a "Sponsor" type with name, tier, logo, and link; a "Discount code" type; an "Accessibility service" type.

This is the right extension point when you need structure you control. Site editors define the schema, and the new fields or types behave like the built-in ones — they support drafts, versioning, translation, smart collections, and SEO.

2. Smart collections

Smart collections let you build dynamic listings of records that match a rule. They're the most powerful query layer in Basker — they can filter by date, season, series, venue, custom attributes, organisation type, or any combination.

Use smart collections when you need a listing that updates itself: "upcoming events at this venue", "recent posts in this category", "sponsors at platinum tier". The smart collection has its own URL, can be embedded in theme blocks, and stays current without manual maintenance.

3. Apps

Apps extend Basker by connecting it to external systems — ticketing platforms, donor tools, asset managers, CRMs. An installed app can add fields to content types, provide pickers and sync actions in the editor, and surface widgets and components on the live site.

Use apps when the extension involves a system outside Basker. Day-to-day editors don't install apps themselves; Basker support handles the heavier setup, and editors configure them once installed.

Combining extension points

Real-world extensions often combine all three. A typical example: an organisation wants to surface "Featured sponsors" on their homepage. They:

  • Define a Sponsor custom object with name, tier, logo, and link.
  • Add a custom attribute on events for Featured sponsors that links to one or more Sponsor instances.
  • Use a smart collection to list all Sponsor instances at the platinum tier on a dedicated page.
  • Use a theme block to render the smart collection on the homepage.

No code, no platform changes — just configuration of the extension points Basker already provides.

When to call in a developer

The extension points above cover most use cases without code. Some scenarios do need developer involvement:

  • Custom blocks — new ways for editors to compose content. These are added to your theme by the theme developer. See Customising Basker.
  • Custom apps and integrations — connecting Basker to a system that doesn't have an off-the-shelf app. Speak to Basker about whether the integration exists, whether it can be built, and how.
  • Reading custom data inside a theme — once you've added custom attributes or custom objects, the theme needs to be aware of them in order to render them. The theme developer handles this.

For developer-level information about all of these, see basker.dev.

Where to go next

On this page