DEV Community

Nnamdi Okpala
Nnamdi Okpala

Posted on

REALLY, WHY use OBIX?

By Obi / Nnamdi Michael Okpala — OBINexus Computing
@obinexusofficial · GitHub


There's a moment every builder hits.

You realise the tools you're using don't actually respect the human on the other side of the screen.

They render pixels. They expose data. They ship fast.

But they don't care.

And that's where OBIX begins.


I didn't build OBIX for convenience — I built it out of necessity

When systems fail you, you either adapt — or you build your own.

I chose to build.

OBIX — the OBINexus Interface Experience — comes from OBI, meaning learn and rise. That's not branding. That's the foundation.

Because I believe something most systems ignore:

The interface is not the surface — it is the contract between human and system.

If that contract is broken, everything else collapses.


Most UI systems optimise for developers. I optimise for users.

Let me be honest.

Most UI libraries today are built around:

  • Speed of shipping
  • Developer ergonomics
  • Framework lock-in

Accessibility is optional. Consistency is optional. Human dignity is optional.

That has never sat right with me.

So I flipped the model.

OBIX is built on one rule:

If it harms the user, it is invalid by design.


OBIX is not a component library — it is a constitutional system

Please read those words back.

OBIX is not just 30 components.

It is a governed interface system.

Every component is born with laws — what I call the FUD policies:

  • Focus — You must always know where you are
  • Undo — You must always have a path back
  • Drag / Touch — You must never be excluded by interaction design

No configuration. No opt-in.

If a component violates human usability — it is automatically corrected.

That's not a feature. That's a principle.


Why Data-Oriented Programming? Because state is truth

I rejected the illusion layers.

No virtual DOM games. No hidden state mutation. No magic.

In OBIX, everything is:

  • State — what is
  • Actions — what changes
  • Render — what is shown

That's it.

Why?

Because truth should be traceable.

You can:

  • Time-travel through state
  • Serialise everything
  • Test deterministically
  • Run it anywhere — server, client, CLI, edge

Frameworks come and go.

State does not lie.


Accessibility is not a feature — it is a baseline

I don't "support" accessibility.

I enforce it.

Every OBIX component:

  • Meets WCAG 2.1 AA
  • Enforces 44×44px touch targets
  • Guarantees keyboard navigation
  • Includes correct ARIA roles, states, and properties

If you try to break accessibility — the system corrects you.

Because exclusion is not a bug.

It is a violation.


OBIX removes Fear, Uncertainty, and Doubt — for both user and developer

Let's talk about FUD in software.

Users feel it when:

  • Buttons don't respond clearly
  • Forms fail without explanation
  • Navigation traps them

Developers feel it when:

  • State is unpredictable
  • UI behaves inconsistently
  • Accessibility becomes an afterthought

OBIX removes that.

It replaces guesswork with guarantees.

You don't wonder if something is accessible. You know.

You don't wonder what state you're in. You see it.


Why OBIX matters to me

I'm not just building software.

I'm building systems that:

  • Respect human interaction
  • Reward sincerity
  • Encode fairness into the interface layer

Because I've seen what happens when systems don't do that.

And I refuse to replicate it.


When should you use OBIX?

Use OBIX when:

  • You care about accessibility from day one
  • You want framework independence
  • You need deterministic UI systems
  • You believe interfaces should be trustworthy

Don't use OBIX if:

  • You want quick fixes over long-term integrity
  • You're okay shipping inaccessible UI
  • You prefer magic over clarity

See it running

The polygaltic JSX demo — function and class components, Babel-transformed, bundled via the OBIX config pipeline:

git clone https://github.com/obinexusmk2/obix-polygaltic-jsx-demo
cd obix-polygaltic-jsx-demo
npm install
npm run bundle:jsx
npx serve ./public
Enter fullscreen mode Exit fullscreen mode

What you'll see: the PolygalticCounter expressed as both function PolygalticCounter(){} and class PolygalticCounterClass extends Component{} — the same OBIX constitutional lifecycle (CREATED → UPDATED → HALTED → DESTROYED), the same LibPolyCall telemetry, the same FUD-compliant 44×44px touch targets. Two paradigms. One runtime. One truth.


Final thought

It is going to be correct.

Because the future of software is not just faster systems.

It's fairer systems.

And the interface — the OBI — is where that fairness begins.


— Obi / Nnamdi Michael Okpala
OBINexus Computing · @obinexusltd

Top comments (0)