Skip to content

Add a Typesense provider layer #74

Description

@TitusKirch

Before you start

  • I searched existing issues and didn't find a duplicate

What problem are you trying to solve?

duxt will expose normalized, build-time search records through #16. A site that already runs Typesense needs an official way to consume those records without recreating duxt's source, version, locale, and generated-section logic.

The built-in search decision in #33 must remain independent: Typesense is an opt-in provider for consumers that choose to operate or buy the service.

Proposed solution

Provide a Typesense provider layer that consumes duxt:search:records after #16 lands.

It should let a consumer synchronize the complete current record set to a Typesense collection during its build, with stable record identity and removal of records no longer present in a later build. Searchable content and filterable provenance must preserve the common contract: URL, title, normalized plaintext, source, version, and locale.

The provider layer owns its credentials, service configuration, synchronization policy, and browser search integration. duxt itself gains no Typesense SDK, runtime hook, or service dependency.

Alternatives considered

Additional context

Decided (refinement pass, 2026-09-11):

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions