DEV Community

Cover image for Controlling the beast
Matan Lachmish for Sanga

Posted on

3 1

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

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

Best practices for optimal infrastructure performance with Magento

Running a Magento store? Struggling with performance bottlenecks? Join us and get actionable insights and real-world strategies to keep your store fast and reliable.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️