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. 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. The Partners API is the surface external systems and mobile apps integrate against — see basker.dev for the spec.
3. Custom blocks and Custom Liquid in the theme
When the first two extension points don't cover a need, your theme developer can extend the theme itself. Two levers are available:
- Custom blocks add new ways for editors to compose content. They appear in the editor like the built-in blocks and can read from custom attributes and custom objects.
- Custom Liquid lets a theme developer extend theme behaviour with template code beyond the standard block model.
Both are developer-level work. For implementation detail, see basker.dev.
Combining extension points
Real-world extensions often combine both. 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 first two extension points cover most use cases without code. Some scenarios do need a developer:
- Custom blocks and Custom Liquid in the theme — see the section above.
- 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 detail, see basker.dev.