Drupal settings page
HAX transforming an element in the page
HAX running on drupal.psu.edu

HAX (Headless Authoring eXperience) is a web components driven editing experience that works across platforms. To add new "bricks" to HAX either pick from the 100 or so that the HAX core team has developed or create your own web components and add a callback method to it to static get haxProperties() (docs).

Why doesn't this get updated often?

It's simple. When you go web components, there's very little that Drupal's actually doing other than pointing to the appropriate entrypoint file. As a result, you have less Drupal code and more front-end assets. HAX is headless, so while it is actively maintained and development is on going to constantly improve it, it's not Drupal specific. That means that the Drupal module will work with newer HAX versions while the JS assets might need updated, the Drupal module rarely will.

Dependencies

  • Download / Enable JSONAPI Include (D8+)
  • Enable JSONAPI, Media modules in core

Usage

  • Enable the HAX module and any dependencies it requires.
  • Go to the permissions page to ensure users have the 'use hax' permission
  • checked. Once this is checked then people will start to see a 'HAX Authoring'
  • local menu item / tab / contextual option show up when they have access to
  • edit a node. If you want users to be able to upload files, grant the
  • 'Upload files via HAX editor' permission.
  • The default is to serve JS assets up from a Penn State CDN, Should you need to change this to serve from your own source, read the README for directions on how to do your own build routines.

NOTE on Text Formats

HAX is designed to work with nodes with bodies in the default Full HTML format where "Limit allowed HTML tags and correct faulty HTML"
is unchecked, or with formats with similarly permissive settings. For this
reason, it is advisable to only allow trusted users to access HAX.

I have issues

If it's specific to Drupal's implementation / integration then post here. If it's with HAX itself then post here -- https://github.com/elmsln/issues/issues

Talks / resources

The big picture..

This is a fundamentally different way to approach not just Drupal development on the front-end but authoring solutions more broadly. HAX says design for the web and tell us about it later. No "plugin" systems to learn that only work in one place. Learn how to make web components, learn how to fire an event that has HAX Schema and go about enjoying an incredible new and simple way of building out websites. Don't like HAX or want to use your assets in a site that doesn't use HAX? You still have all your design assets able to render content the same way, HAX just isn't in the picture.

Drupal

We support Drupal 7 (which needs the Web components module too) and 8/9. Assets made for use in HAX work back to Drupal 6!

Backdrop

We have that module too

WordPress / ClassicPress

WordPress and ClassicPress are supported as well

GravCMS

Yes, also GravCMSneed we keep going?

HAXcms

Ok fine,The lightest possible CMS back end to power HAX as a micro-site manager.

HAX11ty

Ok fine, even lighter! 11ty static site generator + HAX for editing capabilities

Roadmap

  • Improved Permissions integration for Drupal with Roles
  • Field level integration for Drupal (so more than just Body field)
  • Content locking / workflow integration (into HAX itself)
  • Constant refinement and improvement of AX and A11y
  • Desktop App that is CMS agnostic (nodejs version of HAXcms running in electron)

Get involved!

Supporting organizations: 

Project information

Releases