Controlling the beast

mlachmish

Matan Lachmish

Posted on March 3, 2021

Controlling the beast

We have all seen these happen too many times:

Every big project starts as a small one.
and a small project does not need a lot of stuff, right?

  • It doesn't need TESTING šŸ™ˆ
  • It doesn't need SECURITY šŸ™‰
  • It doesn't need CI/CD šŸ™Š

Alt text of image

Well, if you plan for this project to stay grounded and never make the leap to become a production product then you are probably right šŸ’

This Byte is about another item that is usually left out until the project is too big and desperately needs it - CONTROLLING

Controlling

Every system needs a way to control its production product, for instance:

  • User's data
  • Content served by your app
  • Feature flags
  • Many more...

The greedy way

"For now, let's just create admin APIs"

Well, you do have a way to control but in the cost of:

  • Constant manual dev effort (the worst kind of dev effort šŸ˜‰)
  • Inconsistent way of use, the risk of breaking something up is always high
  • Obscurity of implementation, APIs that are not consumed by any client can break/change without anyone knowing.
  • Centralized knowledge of how to control your system

The better way

Some call it "Admin Panel", others "Back office", I've heard "Dashboard" and "Console".

In Sanga we call it Controlā„¢

An easy-to-use app that provides a safe and consistent way of using those notorious "Admin APIs".

Controlling the beast at Sanga

As soon as we felt that those admin APIs are being used more than "just a couple of times" we've built our Controlā„¢ using Vue.js.

As straightforward as it may sound, our "definition of done" for a feature includes the ability to manage the feature through Controlā„¢.

That means that for every feature we:

  1. Think what are the possible ways to control this feature
  2. Design the relevant admin APIs
  3. Enhance Controlā„¢ with the ability to interact with these APIs

Fun fact

Once you have such a capability, new features are being designed with control in place. That leads to some super cool capabilities that otherwise would probably be developed as stiff client-side logic that would be re-written endlessly.

Thank you for reading, look for our next Byte

Made with ā¤ļø by Sanga

šŸ’– šŸ’Ŗ šŸ™… šŸš©
mlachmish
Matan Lachmish

Posted on March 3, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Controlling the beast
software Controlling the beast

March 3, 2021