About

History and background

Carbon Fields was started as htmlBurger’s own custom fields library in 2009. Back then, we were just starting our business. The state of the WordPress’ custom fields ecosystem was not as developed as it is now. So we had to build our own solution.

The library has been developed for internal usage. The syntax for fields definition was initially inspired by Django Models

We have rewritten the code a few times over the years. Hundreds of developer-hours have been invested in the library.

Carbon Fields was released as a plugin in the beginning of 2016. We decided to do that because:

  • we want to give back to the WordPress community
  • this message in the WordPress forums
  • this blog post made us realize that there are people out there that struggle with maintenance of sites we have created because they don’t have access to the library repository

Aims

For us, there are 2 main priorities for the library:

  • Field definition API brevity – coherent syntax that’s hard to get wrong and intuitive to write
  • Feature-richness – along with the usual features you’d expect from a custom fields plugin, Carbon Fields bundles:
    • alternatives to ACF’s repeaters & flexible content(we have merged those and call them Complex field)
    • theme options pages
    • user meta
    • comment meta
    • term meta
    • custom widgets meta
    • menu items meta
    • conditional logic

Comparison with other plugins

ACF is a great plugin — we have borrowed some ideas from there. However, we have also faced a major issue with it: the plugin author tends to change the codebase and business model without too much care about backward compatibility. While we completely understand the reasons behind those decisions, they make maintenance painful for the developers.

Apart from that, we think that it’s not a good idea to build your custom fields through the admin UI — that way you disconnect the field definition from version control, i.e. from the changes in templates that actually render the custom field values.

CMB2 is also a great plugin. However, it does have some limitations that are important to us:

  • Not all fields can be repeated
  • There is no support for nested groups
  • No flexible content alternative

Conclusion

We’ve invested quite some time in writing good documentation for the available features and we do our best to provide support in the WordPress support forums.

We think that Carbon Fields has more to offer than other custom fields plugins currently available. We’ve built our business around WordPress and we want to give back to the awesome WordPress community.