Make web apps backed by Datomic

Real CRUD apps, zero to prod in a month in real-time.

(57 seconds) This is what it feels like to make apps in Hyperfiddle, in this example a simple admin dashboard for some test data. On the left is the app, and on the right is the Hyperfiddle Editor. The video is sped up 10x so you can see the end-to-end process.

Hyperfiddle is a managed platform for real-time web development

Hyperfiddle.net is a serverless application platform with

  • users and auth
  • integrations
  • basic security
  • server side rendering

No: git, command lines, text files, deployment, hosting, or waiting. Only the fun parts are left.

Hyperfiddle self-host is just a jar file. Run as a server process inside your environments, or embed it inside your application as a service.

  • Admin dashboards
  • Internal tools
  • Reports
  • Gist for Datomic
  • Total control
Either way, we provide reasonable defaults for everything a real app needs, so you don't have to think about it until you want to.

1. Write queries

Hyperfiddle exposes full Datomic query capabilities. We have to, in order to make sure you can build anything.
What is Datomic? Datomic is a new kind of database, competitive in use case with SQL and GraphQL, except much simpler. Datomic's strengths include easy domain modeling, simple and flexible query (WHERE-style, JOIN-style and GraphQL style), and complex business transactions. Datomic is a good fit for systems that store valuable information of record, like transactional data and business records.

2. Model forms

From your Datomic query and schema, Hyperfiddle automatically generates working forms and tables.

3. Connect them together with links

(Your app works now) Hyperlinks let you weave individual fiddles into larger hyperfiddles.

4. Customize the UI

This part is optional. Use Markdown to layout your views, and enhance with simple ClojureScript expressions. This markdown editor is for getting simple things done fast — we were shocked how often markdown is enough — you can of course drop into actual full-fledged ClojureScript as needed.

Automatic backend and web-service

Hyperfiddle was designed from the beginning for Datomic Cloud: serverless enterprise database tech for the 2020s. Your humble app is web-scale.

Business model and pricing

hyperfiddle.jar, which includes the server and everything you need to self-host your apps, is free and open source (pending cleanup asap).
Hyperfiddle Editor needs a license for on-prem use. This business model will let us make Hyperfiddle IDE as mature as Excel. We are happy to provide access to the editor's "source" to licensees, it is actually a database containing EDN, Reagent views and CSS.
The Editor is optional.
Developers are welcome to git clone hyperfiddle && lein new --whatever and code your fiddles into .cljs and .edn files. This coding workflow has equivalent functionality other than being slower and more technical (git, compilers, servers, deploys, etc).
Pricing
Coming soon. The public tank is free, and good enough for quick scripts, "live gists", static sites, and public applications like blogs that don't need read security.

Developer notes and FAQ

Hyperfiddle can do anything Rails can do. Enterprise app with sophisticated backend integrations? No problem: Hyperfiddle is a jar file. Fork it and integrate it with your JVM codebase.
Invisible data sync. Hyperfiddle loads just the right data, automatically. Your app specification captures your API inter-dependencies as a graph, so data sync reduces to a graph partitioning problem. Hyperfiddle optimizes your service dynamically in ways hand-coded backends cannot.
Immutability and functional programming. Hyperfiddle is made possible by unique capabilities of Clojure/Script and Datomic, including immutability in the database and code-sharing across platforms.
Server rendering and static sites? Yes, all hyperfiddles are progressive web apps and server-render out of the box. Hyperfiddle is amazing at static sites. Datomic is equal to git for this purpose!
Ideal caching. API responses are served Cache-Control: Immutable – check the network tab as you navigate our docs!
SQL? No, not without an adapter, an immutable database is necessary. For example, interactive undo/redo — of database transactions! — falls out of immutability for free.
Foreign REST APIs? Yes, and this is important to us. Today this is experimental and undocumented, there is more work to be done here.
GraphQL? Eventually, this is a great fit.
Javascript, React.js, JSX? Eventually, this is important to us. Today, the out-of-box forms library uses ClojureScript's Reagent, which is backwards compatible with React.js.
Re-frame, Hoplon, Rum, etc? We have no hard dependency on Reagent, other than the out-of-box forms library. Note that Re-frame doesn't support server side rendering.
Proper frontend dev workflows? Eventually, this is important to us.
External scripts? Yes (experimental).
Dependencies? Only in self-host right now. Probably something to be done with tools.deps.
React Native? Not anytime soon.

What people are saying

I've only been doing web dev for a year
, and during that whole year I've been constantly feeling that something like this should exist. The whole pattern of a web frontend for a DB is way more time consuming than it needs to be.
David, CTO
I use Datomic heavily day-to-day and am familiar with API design, but
I'm not a web developer
, which is a big sticking point for me.
Jerry, data scientist
Hyperfiddle is an excel spreadsheet for programmers. Truly fantastic.
Didier, developer
I'm building a web/mobile app with a datomic-based backend, and we have a lot of manual data checking and admin and so on and it seems like rather than reinvent the wheel for all these
"back of house" UIs
it would be great to have something like Hyperfiddle solve that out of the box.
Dave, developer
I haven’t spent a ton of time in SQL but I’m like,
why am I wasting time using anything but Datomic
, and Hyperfiddle seems the natural way to build an app on top of Datomic. You’ve spent time figuring out how to glue the user interface to the data model, and all these things that a normal website needs.
Jeremy, founder
When my manager comes to my desk with an over engineered excel spreadsheet and asks me to find a better solution... currently, there is next to nothing. I could write a web app which takes a minimum of a month (counting everything) or leave him in limbo (which usually happens).
Didier, developer