Hacker News new | ask | show | jobs
by dustingetz 2811 days ago
1) Git is basically a database with certain requirements around the time dimension, thus static site generators can be equivalently backed by a database with similar properties

2) Datomic is such a database – an accumulate-only log with explicit time dimension that can be queried JOIN-style, WHERE-style and GraphQL-style

3) Thus crud apps backed by Datomic are suitable to be delivered from CDN like static sites – rendered pages, API, everything

Here is such a static site backed by a database: http://www2.hyperfiddle.net/:markdown/ final rendered site: http://www.hyperfiddle.net/ – since it is server rendered React.js, obviously you can use React.js to render your pages, so you get a fully extensible markdown pipeline as you can see.

Here is my blog, a static site: http://www.dustingetz.com/ It is also a progressive web app, so if you navigate around with the browser dev tools open, you will see API requests served from disk since they are Cache-Control: Immutable. Yet, here is the live CRUD dashboard for it's database: http://dustingetzcom.hyperfiddle.net/:hyperblog!dashboard/

It's great for docs, for example: http://docs.hyperfiddle.net/ (We turned off server side rendering for this one but you can leave it on!)

Did I mention Hyperfiddle also does arbitrary CRUD database apps, live in your browser - queries, schema, views, everything?

1 comments

I have to say, the fact that your (quite simple) blog immediately loads a 10MB javascript file doesn't endear me to the concept. If that's to power the "secret dustingetz.com admin dashboard", I'd suggest loading it only when the link is pressed.
www.hyperfiddle.net has no javascript payload at all.

dustingetz.com and the docs app both have embedded hyperfiddle editors, so they run in a development configuration. The 10MB is for the real-time editor which depends on the ClojureScript compiler and standard library. A production javascript configuration will bake/compile/dead-code-eliminate in advance and then asset sizes will be comparable to any ClojureScript project (which is to say, better than almost all JavaScript projects). We haven't gotten around to doing this yet. Thanks for checking out hyperfiddle!