Home

fulcro

Fulcro is an open-source framework for building web applications in ClojureScript. It provides a client-side runtime for React-based UIs and a data-centric model that ties the user interface to a single, normalized application state. The framework emphasizes declarative data requirements, predictable state transitions, and efficient server communication.

Core concepts: the app maintains a normalized cache of entities, each with a unique ident. Components declare

Architecture and data flow: components define idents and queries; on mount or interaction, the client issues

Tooling and ecosystem: Fulcro works with CLJS toolchains such as Leiningen or Shadow CLJS, and often uses

Usage and scope: Fulcro is used to build interactive dashboards, forms, and collaboration tools where predictable

the
data
they
need
via
queries,
and
the
UI
renders
as
a
function
of
the
current
app
data.
Data
loading
and
mutations
drive
server
updates;
responses
merge
into
the
cache
and
trigger
re-renders.
Optimistic
updates
and
incremental
loading
are
supported.
loads
or
mutations
to
a
remote
server.
Server
responses
are
normalized
and
merged,
enabling
data
sharing
across
components.
Fulcro
supports
a
pluggable
remote
layer
and
can
communicate
over
EDN
or
Transit
formats.
Pathom
to
assist
server-side
query
planning.
It
integrates
with
React
for
rendering
and
emphasizes
a
cohesive
end-to-end
framework.
state
and
scalable
data
fetching
are
important.
It
targets
ClojureScript
stacks
and
offers
a
data-driven
alternative
to
more
imperative
UI
libraries,
with
a
trade-off
of
a
steeper
learning
curve.