Skip to content

Wall of Love widget + embed system #11

@arferreira

Description

@arferreira

The whole point of collecting testimonials is showing them off. We need an embeddable widget that users can drop onto their website with a single script tag.

Starting with Wall of Love (masonry grid) as the first template. The embed system is the real work here — a lightweight JS loader that fetches testimonials from a public endpoint and renders inside Shadow DOM so it doesn't clash with the host site's CSS.

What this involves:

  • widgets entity and migrations (type, styling config, filtering rules)
  • Widgets CRUD at /api/v1/projects/{id}/widgets
  • Public data endpoint GET /api/v1/public/widgets/{id}/data returning filtered approved testimonials, no auth
  • JS loader served at /w/{widget_id}.js
  • Wall of Love masonry template
  • Embed code generator in the dashboard
  • Widget crate at crates/widget/

The JS loader should be tiny (~2KB). It loads the widget data, renders into Shadow DOM, caches in localStorage for perf.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew functionalitywidgetEmbeddable widget system

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions