Skip to Content
Embed on your siteAdd it to your site

Add the widget to your site

Configure the feed below, watch the preview, and copy the snippet. Everything on this page is live: the filter lists come from the platform itself, and the preview is the real widget running in this page, not a picture of one.

1. Build the snippet

Filters

How many show at first, and how many each Load more adds

Display options

Every Nth card is an ongoing, open-ended opportunity, sprinkled between the dated ones as needs.kanuhawaii.org does. 0 lists them after every dated card.

Live preview

Embed code

Where the widget script and card links load from

Paste this into your page where you want the listings to appear.

<!-- Kanu Hawaii Volunteer Widget -->
<div
  data-kanu-widget
  data-supabase-url="https://qshvdtgsntfkeynqfceu.supabase.co"
  data-supabase-key="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFzaHZkdGdzbnRma2V5bnFmY2V1Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODE3MzU1ODQsImV4cCI6MjA5NzMxMTU4NH0.OcH3FLoqjor5h_jXhP_wasezLEyB98ZOQifSCLwqytg"
  data-base-url="https://needs.kanuhawaii.org"
  data-turnstile-site-key="0x4AAAAAAEma44jMqniqb-Qz"
  data-show-filters="true"
  data-more="load"
></div>
<script src="https://needs.kanuhawaii.org/widget/kanu-widget.js" defer></script>

The key in the snippet is the anon public key. It is designed to be published, it is the same key the public website uses, and it only grants what an anonymous visitor already has. It is not a secret and it does not need hiding.

The widget only loads on approved domains. Embedding on a new domain? Request access .

Signing up through the widget is protected two ways. A Cloudflare Turnstile challenge runs when the snippet carries data-turnstile-site-key, and the platform rate limits guest sign-ups regardless. Nothing is asked of a visitor unless the challenge decides to ask, and an embed without the key keeps working.

2. Paste it into your page

The snippet is a marker <div> and one <script> tag. The <div> goes where you want the listings. The <script> can go anywhere on the page, and it finds every marker div on it, so one script tag serves several feeds if you want more than one.

3. Check it on the page

  • Does it show anything? An empty feed usually means the filters are narrower than the data. Widen them above and compare.
  • Does it fit? The widget renders into your page, so your CSS applies to it. Check it at phone width as well as desktop.
  • Does signup work? Sign up for something yourself, then check it arrived. Signing up through the widget makes a real signup on a real opportunity, so use one of your own and withdraw afterwards.

Making it look like your site

Every class the widget renders is listed in the styling reference, along with two worked examples. The short version: everything is scoped under .kanu-widget-root and prefixed kanu-w-, and your own CSS wins if it comes after the widget’s.

Mālama Hawaiʻi is a ready-made example of the whole thing themed to match an existing site.

Serving the script yourself

The <script src> defaults to needs.kanuhawaii.org, which means you get fixes without doing anything. A partner who needs the bundle on their own infrastructure can point it elsewhere with the Embed host control above, and takes on keeping it current in exchange.

Getting help

Email volunteer@kanuhawaii.org with the URL of the page you are embedding on. Seeing the page in context answers most questions faster than describing it.

Last updated on