WP Manifestindependent plugin directory
manifest / editor / arrow-atoms

<code>-></code> Arrow Atoms WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA

Experimental, functional-expression-based WordPress blocks to fetch dynamic content without breaking into PHP.

★ 0stars
21release downloads
v20250604-11920bflatest · 1 year ago

Install

Download arrow-atoms.zip From the v20250604-11920bf release on GitHub, Jun 4, 2025

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/bikebearlabs/arrow-atoms/releases/download/v20250604-11920bf/arrow-atoms.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

An experimental WordPress plugin of server-side blocks, controlled using a functional language.

[!WARNING] This plugin is in early development & is not yet ready for production use.

...However, there are large sites with real users currently using it. Do ensure you implement proper caching mechanisms & disaster fallback as warned in the Current Limitations section.

Installation

Download the latest release of the plugin & install it on your WordPress site.

[!NOTE] This plugin currently depends on Advanced Custom Fields Pro (ACF Pro).

It's not per se, a strictly required dependency, but there are functions currently that assume it's there.

Currently, you will need to modify the plugin's header code to remove the Required dependencies: line if you don't have ACF Pro.

Overview

Arrow Atoms is a plugin mainly for experienced WordPress block developers, looking for a solution for interacting with server-side logic without leaving the blocks paradigm. This includes things like if-else statements, loops, & other control structures, that depend on logic such as post content or ACF fields.

[!WARNING] > This plugin is not for everyone. It is NOT a replacement for PHP. It is a tool for experienced developers to use in specific situations, & does not cover all of the use cases of proper server-side scripting.

Though, if you do intend to go all-in on Arrow Atoms, you are expected to be able to modify it to your needs, specifically, the evaluate.php file.

We acknowledge that is this not ideal, & there are plans to make extending the plugin easier in the future. Check out the Roadmap section for more information.

Usage

In code, simply refer to an Arrow Atom using one of the blocks:

<!-- wp:aa/as-text {"of":"->post_content"} /-->

Notice that this uses the WordPress block syntax, with the aa/as-text block name. This is the block that will evaluate the Arrow Atom. For more information, refer to the Blocks section.

The of attribute is the Arrow Atom to evaluate. In this case, it's ->post_content, which is a property access returns the post content. For more information, refer to the Language section.

Blocks

TODO: Document all blocks here.

Language

TODO: Document -> language here.

Current Limitations

  • No Caching: Arrow Atoms are reparsed & reevaluated on every page load. This is a significant performance hit, especially for complex logic. You should implement your own caching mechanism, something like Litespeed or WP Fastest Cache.
  • No Disaster Fallback: If Arrow Atoms fail to evaluate, they will stop rendering of the entire page, & the only way to see the stacktrace is with wp-content/debug.log (if you have it enabled). This is a "skill issue" as they say, but it's also a limitation of the plugin.
  • No Extensibility: There currently exists no way to add your own functions to the Arrow Atoms language. This is a planned feature, but it's not there yet. You will need to modify the evaluate.php file to add your own functions.

Roadmap

  • [ ] Action for registering custom functions
  • [ ] Parse cache (w/ proper AST)
    • Either that, or improve performance some other way
  • [ ] Error handling
    • Don't stop rendering on error
    • Show error message in block
  • [ ] Better documentation
    • Finish documenting blocks & language
  • [ ] aa/if block without aa/if-then
    • Currently, aa/if will render everything within it, regardless of the condition. Only if you use aa/if-then within it, will it work as expected)
  • [ ] JSON syntax
    • Write arrow atoms using a JSON object instead of a long, single-line string

License

MIT

Releases

6 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
Jun 4, 2025 1 year ago
arrow-atoms.zip
11
Mar 16, 2025 1 year ago
arrow-atoms.zip
4
Mar 16, 2025 1 year ago
arrow-atoms.zip
2
Mar 16, 2025 1 year ago
arrow-atoms.zip
0
Mar 16, 2025 1 year ago
arrow-atoms.zip
1
Mar 16, 2025 1 year ago
arrow-atoms.zip
3
A grade

Security

<code>-></code> Arrow Atoms 20250604-11920bf · audited by WP Registry

No security issues found.

Audited release
20250604-11920bf
Findings
none
Worst severity
—
Content hash
afdae5be08123ca2f6c7ff31…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.