A framework for building brand websites.

Standards Built-in

Element makes it simple to stand up new brand websites. With just a few lines of code you can have an entire unbranded "white-label" site running with standard templates for articles, videos, galleries, and more.
Common development pain points like advertising and analytics work out-of-the-box saving countless hours of development time.


Every part of Element templates are customizable. Options for changing fonts, colors, logos, and branding are available via a single configuration file. Element also provides the ability to add and override components, templates, and routes to provide additional flexibility to brands.

Developer Friendly

Proprietary platforms are typically painful and slow to develop on. Element was designed with developer happiness and productivity as a primary goal. With it you can have a complete development environment set up in under 2 minutes. Tooling for live reloading, resource bundling, and code quality are built in and run automatically.

"Hello World" is a complete website.

Element is built and distributed as an npm package. This means that it can be bundled and included in any Node JS application with just an import statement.

Element uses Express as its underlying router, meaning that any Connect-style middleware may be used. Element is designed to work well with the Javascript and Node JS ecosystem.

  import element from 'element';
  import brandfile from './brandfile';

  // Create a new Element server.
  // The brandfile contains any configuration changes 
  // you might want to make.
  const server = element(brandfile);

  // Element uses Express JS under the hood. You can add
  // any custom routes you may need or leverage any connect-style
  // middleware the same way you would in vanilla Express.
  server.get('/hello-world', (req, res) => res.send('Hello World!'));

  // Start listening on port 3000. Running Element gets you a default
  // homepage and common templates like articles and galleries 
  // out of the box.

Everything is a component.

Components are the foundation of every Element template. A component could be anything: A video player, an inline gallery, or a list of content, to name a few examples. They can also be replaced with custom markup or functionality based on each brand or site's needs.