Colophon

How redeemid.com and the RedeemID plugin are built. They are two separate codebases, and both are built on Blockstudio.

Two builds, one dependency

The site you are reading and the RedeemID plugin live in separate repositories and share no code. The site is a WordPress block theme, redeemid-theme. The plugin is redeemid-core. This site does not run the plugin: it describes it, and the live demo is where the plugin runs, beside a demo theme of its own.

What the two have in common is Blockstudio, the WordPress block framework both are built on. Each one lists blockstudio/blockstudio 7.7 or later in its composer.json, Composer installs it, and neither works without it.

Blockstudio comes with the plugin

Installing RedeemID installs Blockstudio. The release zip, redeemid-core.zip, already contains vendor/ with Blockstudio inside, so there is no second plugin to find. Built from source, composer build-prod puts it there. Blockstudio is licensed GPL-2.0-or-later, the same as RedeemID.

The plugin starts its own Blockstudio instance for the blocks in its blocks/ folder. It does not use Blockstudio’s blockstudio/path filter, because that filter replaces a theme’s block folder. So RedeemID runs in any theme, including a theme that is itself built on Blockstudio. Blockstudio compiles block styles on first load, so the plugin’s blocks/*/_dist/ folders must be writable.

Part one: this site

redeemid.com is a file-first Blockstudio theme. Every template, block, navigation item and page lives in its repository, and WordPress stores only what Blockstudio’s page sync writes from those files. Pages are locked in the editor, so a change to this page is a change to its file.

  • Platform. WordPress 6.7 or later and PHP 8.2 or later, with pretty permalinks.
  • Blockstudio, from Composer. composer build-prod, run after every deploy, installs it into the theme’s vendor/. There is no Blockstudio plugin to install; if one is active anyway, the bundled copy steps aside.
  • Blocks and pages. The site’s own redeemid/* blocks are Blockstudio blocks, and its pages are Blockstudio pages. The docs and guides are Markdown files in Blockstudio page collections.
  • Styles. Tailwind CSS v4, compiled on the server by Blockstudio, with a few shared Sass helpers. The design tokens live in theme.json, and a repository check fails if Tailwind’s copy of them drifts. There is no npm and no bundler.
  • Rendering. Blockstudio’s static prerender serves the pages, and its cache is purged after every page sync.
  • Type. Newsreader for headlines and long reading, Archivo for the interface, JetBrains Mono for code. All three are variable fonts under the SIL Open Font License 1.1, self-hosted, so the site makes no third-party font requests.
  • Search. The SEO Framework is the only SEO output. The theme prints no metadata of its own; each page’s description becomes the excerpt The SEO Framework reads.
  • Policies. The Privacy, Cookie and Terms pages show iubenda’s policy text. iubenda’s script loads on those three pages only.
  • JavaScript. A few small inline scripts and no framework: the menu drawer, the pause button under the animated drawings, the development notice’s dismiss button, and the iubenda loader. Every page is readable with JavaScript off. There are no analytics and no forms.

Part two: the plugin

RedeemID is a WordPress plugin, built and released on its own schedule, separately from this site. Its only runtime package is Blockstudio; everything else is its own PHP, under the RedeemID namespace in src/.

  • Platform. PHP 8.2 or later with the sodium extension, which encrypts saved secrets, and WordPress 6.7 or later (6.9 or later for abilities). If one is missing, activation stops with a notice instead of an error.
  • Blocks. Every RedeemID block, from the Membership Gate to the cart, is a Blockstudio block in the plugin’s blocks/ folder.
  • What it uses from Blockstudio. Dynamic islands for personal pieces such as the sign-in control, so pages stay cacheable. Conditional fields, populated pickers, variations, link fields and inserter previews in the editor. A component, the locked panel, that a theme can restyle or replace with a Blockstudio override.
  • Where it doesn’t. REST routes instead of Blockstudio’s RPC client, because that client prints its nonce into the page HTML, which a page cache would serve stale. Its own per-block Access panel instead of a Blockstudio extension, because an extension can’t warn when a block sits after the paywall break. Static prerendering stays off on gated sites.
  • Shopify. GraphQL against three Shopify APIs, pinned to API version 2026-10: the Customer Account API for sign-in (OAuth with PKCE), the Storefront API for plan cards, products and the cart, and the Admin API. Every webhook’s signature is checked before anything is saved.
  • JavaScript. Plain browser scripts, with no npm and no bundler.
  • Tests and standards. GitHub Actions runs a PHP syntax lint and the PHPUnit unit tests on PHP 8.2, 8.3 and 8.4, and PHP_CodeSniffer with the WordPress VIP coding standards.
  • Releases. Raising the version in redeemid.php on the main branch makes GitHub Actions run composer build-prod and publish a release with redeemid-core.zip, Blockstudio included, and its SHA-256 checksum. See the Changelog.

Who builds it

RedeemID, this site and the demo belong to Vinny S. Green, LLC. All three repositories are public on GitHub and licensed GPL-2.0-or-later. See About.

Blockstudio

The block framework both codebases are built on, and a dependency of the plugin. Its documentation covers the blocks, islands, pages and Tailwind support used here.

blockstudio.dev

The plugin’s source

redeemid-core: the plugin, its blocks, its tests and its releases.

redeemid-core on GitHub

This site’s source

redeemid-theme: every template, block and page on redeemid.com, this one included.

redeemid-theme on GitHub

The demo theme’s source

redeemid-demo-theme: the theme the live demo runs with the plugin.

redeemid-demo-theme on GitHub

RedeemID is still being built

RedeemID is a WordPress plugin that lets customers sign in with their Shopify account and opens your site to what that account holds. It is in early development, so parts of this site are unfinished and details will change.

It is coming soon. We are looking for sponsors and for the first stores and publishers to use it.

For more information, email vinny@vinnysgreen.com.

Get in touch