Skip to content

Getting started

Diazoma shows any list on the web (a feed, a catalog, a gallery, an archive) as a curved, searchable wall. In a VR headset the wall is around you. On a desktop or a phone it opens in the page as a “magic window”: you drag to look around and click to open an item.

The wall is one package, @diazoma/wall. It knows nothing about your site. Everything it shows comes from an adapter, and @diazoma/adapters has one for each way a site can describe itself.

You areYou doTimePage
A front-end developerAdd data-wall-* attributes to your existing listing (Level 1)about 10 minutesSpec, section 2
A back-end developerServe a JSON feed and a manifest (Level 2)about 15 minutesFeeds, Manifest
On WordPress or LaravelInstall a plugin that serves the feed and the manifesta few minutesWordPress, Laravel
A site owner who wants the wall on a pageAdd one script tag (Level 3)a few minutesEmbed
Someone who wants a wall for a site that publishes nothingWrite a recipe (Level 0)an afternoonRecipes

A site can offer several levels. A program that reads the site uses the highest one it finds (the order is in section 1.1 of the spec).

  1. Serve a manifest at /.well-known/wall.json. The smallest one is a version and one feed:

    {
    "version": 1,
    "name": "Example",
    "feeds": [{ "id": "latest", "title": "Latest", "url": "/wall/feed", "cursor": true }]
    }
  2. Make /wall/feed answer with items:

    {
    "items": [
    { "id": "12345", "link": "/listing/12345", "image": "https://cdn.example.com/12345/512.jpg", "aspect": 1.5, "title": "A title" }
    ],
    "next": "eyJzIjpbMTY5"
    }
  3. Check it:

    diazoma-spec validate https://example.com
  4. Put the wall on a page with one script tag.

Only four item fields are required: id, link, image and aspect. Everything else is optional.