npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@zachariaz/strapi-plugin-experience-builder

v0.1.4

Published

Visual page editor with native Strapi content storage using Puck editor

Readme

strapi-plugin-experience-builder

A Strapi v5 plugin that adds a Puck-based visual page editor to the Strapi admin. Pages are stored natively in your Strapi content types — there is no separate page store. Opt in per content type via the Content-Type Builder.

Note on package name: this package is temporarily published under @zachariaz/... so it can be installed while the official @solteq/strapi-plugin-experience-builder scope is being set up. The API will not change when it moves.

How it works

The plugin runs inside Strapi: it adds a menu link, a settings page, a side-panel "Edit in Experience Builder" button in the Content Manager, and REST endpoints for schema introspection and content I/O.

The actual editor UI lives in a separate React app that you host yourself. Strapi loads it in an iframe pointed at a configurable URL (default http://localhost:3000/experience). The plugin and the editor communicate over postMessage. The React side is provided by the companion SDK @zachariaz/strapi-experience-builder-react, which exports an ExperienceEditor component you drop into that route.

Install

In your Strapi project:

npm install @zachariaz/strapi-plugin-experience-builder

Enable the plugin in config/plugins.ts (or .js):

export default {
  'experience-builder': { enabled: true },
};

Restart Strapi. "Experience Builder" appears in the admin sidebar.

Set up the editor route

In your storefront (or a dedicated admin-companion app), install the SDK and expose a /experience route that mounts ExperienceEditor. See the SDK README for the snippet.

Iframe headers — important. Strapi loads /experience inside an iframe, so the route's responses must allow it. In a Next.js app this looks like:

// next.config.ts
async headers() {
  const strapiOrigin = process.env.STRAPI_URL ?? 'http://localhost:1337';
  return [
    {
      source: '/(.*)',
      headers: [
        { key: 'Content-Security-Policy', value: `frame-ancestors 'self' ${strapiOrigin}` },
      ],
    },
  ];
}

The equivalent header must be set however your hosting platform serves the route.

Configure the editor URL

In Strapi admin → Settings → Experience Builder, set the editor URL (default http://localhost:3000/experience). When opening the iframe the plugin appends ?_contentType=…&_locale=… so the editor knows what to load.

Enable per content type

In the Content-Type Builder, tick "Enable Experience Builder" on the content types you want to edit visually. An "Edit in Experience Builder" panel will then appear on those entries in the Content Manager.

Optional configuration

  • REDIS_URL — set this env var to back the server-side schema-introspection cache with Redis. When unset, the plugin falls back to an in-memory LRU. The ioredis dependency is optional and only required when REDIS_URL is set.

Requirements

  • Strapi v5
  • React 18 or 19 in your editor-hosting app
  • A deployed /experience route using @zachariaz/strapi-experience-builder-react

License

MIT