Craft Console

Role
Design and frontend for Craft Console, from specs and sketches to implementation.
Team
Me (design and frontend), Brandon (CEO), and backend engineers on Console’s APIs.
Timeframe
Built with the Plugin Store: announced at our Portland conference in 2017, then launched with Craft 3 on April 4, 2018.
Shipped
Craft Console, where the licenses bought in the Plugin Store are managed and where Craft Cloud is run.

The companion to the Plugin Store: a place where customers manage their Craft and plugin licenses, order history, and billing info, and where plugin developers publish their plugins, connect their Stripe account to get paid, and track their sales.

The challenge

Developers had been extending Craft with plugins since version 1, with no central place to distribute them. They handled payments and licensing themselves, and customers bought plugins on separate websites. The Plugin Store brought installing, buying and distributing plugins into one cohesive experience. Craft Console is the part of it that manages the licenses.

My role

For Craft Console, as for the in-app Plugin Store and the public marketplace, I wrote the specs, made the early sketches and the detailed mockups, listened to customer feedback, implemented the frontend, and connected the dots with the backend engineers building Console’s APIs.

I also knew the problem from the other side of the fence: a few years before, I was selling my own plugins through Gumroad.

Three surfaces, one system

The Plugin Store came in three places sharing one system.

  • The in-app store sits inside Craft CMS, so installing or buying a plugin never takes you out of Craft.
  • The marketplace is a public website, there for discovery and search engines.
  • Craft Console is where customers manage licenses, orders and billing. Developers use it too, to publish plugins, link their Stripe account and follow their sales.

Buy

In-app store

Inside Craft CMS: install or buy without leaving it.

Marketplace

A public website, for discovery and search engines.

License

Craft Console

Customers manage licenses, orders and billing. Developers publish plugins and track sales.

Renewals: additional years of updates

Each sale

80%Plugin developer

Developer payouts, through their connected Stripe account.

20%Pixel & Tonic

Kept for providing the service.

Three surfaces, one system: where a plugin sale goes and how renewals come back.

For customers: licenses, orders and billing

A plugin can be bought in the in-app store or on the marketplace. Either way, its license lives in Craft Console, next to the customer’s Craft licenses, their order history and their billing info. It’s also where a license is renewed for additional years of updates.

Craft CMS license management table in Craft Console
Where customers manage their Craft and plugin licenses, orders, and billing info.

For developers: publishing and getting paid

Plugin developers use Console to publish their plugins, link their Stripe account to get paid, and follow their sales. They keep 80% of each sale, and Pixel & Tonic keeps 20% for providing the service.

Developer dashboard listing published plugins with installs and ratings
Where developers publish their plugins, connect Stripe, and track sales, keeping 80% of the revenue.
plugins published, up from over 200 at launch
+1,000
paid to developers through September 2025
$9M+
of each sale goes to the developer
80%

24 hours before Craft 3

We had publicly committed to April 4, 2018, with a countdown. Craft 3 was an almost complete rewrite around a newer PHP framework, the engineers were deep in that transition, and the Plugin Store’s API came last, definitely a bit in a rush. We flew the whole team to Bend, Oregon, to spend a couple of weeks connecting the remaining pieces in one room.

About 24 hours out, we still had integration issues and API problems with buying and renewing plugins. I put the remaining UI refinements aside and focused entirely on functionality. People had to be able to buy a plugin and renew a license for additional years of updates, and that mattered more than a polished interface. We narrowed the last issue down to renewals, on the API side, so it could be fixed without holding back the CMS release.

Craft 3 launched on its public date, and new plugin purchases worked straightaway. Renewals ran in a degraded state for a few more hours, and the polish I had set aside shipped in the days after.

Organizations

Organizations let agencies manage their projects, licenses, plugins, and billing as a team. The idea came out of the brainstorming sessions we held with customers while rebuilding Craft Cloud, which is managed and run from Craft Console too: they wanted to work as a team on projects, with licenses and billing that belong to the organization.

Account switcher in Craft Console listing a user's organizations
Organizations let agencies manage their projects, licenses, plugins, and billing as a team.
Organization billing screen with payment methods and order approval toggle
Organizations: billing.
Invite members modal comparing member and admin permissions
Organizations: inviting members with different levels of permissions.
The Craft Console sign-in form over a colorful gradient background
Signing into Craft Console.
Let’s chat!
ben@dukt.net
© 2026 Home Benjamin DAVID