atomica

What Atomica Refuses to Be

Atomica exists because modern UI frameworks have become harder than the problems they solve.

This document is not a list of missing features. It is a list of intentional refusals.

These constraints are not temporary. They are the product.


Atomica Refuses to Be a Re-rendering Framework

Atomica does not re-render components by default.

State changes update only the DOM nodes that depend on that state.

If you are thinking in terms of re-renders, you are thinking in the wrong model.


Atomica Refuses to Have Lifecycles

There are no lifecycle methods.

There is:

Atomica does not have:

If something needs to happen when state changes, you express that directly.


Atomica Refuses to Hide Reactivity

Reactivity in Atomica is explicit and visible.

You can see:

There are no:

If something reacts, it’s because you wrote the reaction.


Atomica Refuses to Be JSX-Centric

JSX is optional.

Atomica’s real API is functions.

If JSX disappeared tomorrow, Atomica would continue to function unchanged.


Atomica Refuses to Be “Magic”

Atomica avoids invisible behavior.

There is no:

When something updates, it’s because a signal changed.

That’s it.


Atomica Refuses to Be a Meta-Framework

Atomica is not:

Atomica solves one problem:

Keeping the DOM in sync with state, precisely and predictably.

Everything else belongs on top.


Atomica Refuses to Optimize Prematurely

Atomica favors:

Performance emerges from simplicity, not from layers.


Atomica Refuses to Grow Without Pressure

New features are not added because they are common elsewhere.

A feature is only added when:

If a feature can live outside the core, it should.


Atomica Refuses to Forget Why It Exists

Atomica exists because:

Atomica will remain small.

If it stops being small, it will stop being Atomica.


A Note to Contributors

If you are about to add:

Stop.

Ask whether it makes the model clearer — or merely more familiar.

Familiarity is not a goal. Clarity is.