Skip to content

Quick Start

This page shows the smallest working Haven Directory embed. Copy it into an HTML file, replace the placeholders, and open it in a browser.

Minimal directory embed

html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Directory</title>

  <!-- Haven Kit (loads library + credentials) -->
  <script src="https://kit.havendestinations.ca/YOUR_KIT_ID.js"></script>
</head>
<body>

  <div id="haven-app"></div>

  <script>
    (function () {
      var poll = setInterval(function () {
        if (window.haven && haven.ready && haven.ready()) {
          clearInterval(poll);

          haven.config({
            useMapBox: false,
            useFontAwesome: false,
          })
          .directory.init({
            selector: '#haven-app',
            options: {
              sort: 'name',
              cols: 2,
            },
          })
          .render();
        }
      }, 10);
    })();
  </script>

</body>
</html>

What happens

  1. The Haven Kit script loads haven.min.js, haven.min.css, and calls haven.init() with your feed credentials.
  2. Your code polls until haven.ready() returns true.
  3. haven.config() sets global options and creates the directory and calendar plugin instances.
  4. .directory.init() configures the directory module.
  5. .render() fetches listings from the Haven API and renders them into #haven-app.

Placeholders to replace

PlaceholderReplace with
YOUR_KIT_IDYour Haven Kit ID (e.g. u64353316x)

Add maps and filters

For a production-ready directory with map, search, and detail lightbox, see:

Next steps

Haven Destinations integration documentation