Hacker News new | past | comments | ask | show | jobs | submit login
Morpheus – Isomorphic web publishing platform, built with React and Flux (arnodo.net)
38 points by vesparny84 on Jan 21, 2015 | hide | past | web | favorite | 16 comments

I had a similar idea a while ago[1], the main ideas being:

- to use Postgres JSON columns for storing documents (rather than the typical CMS approach of a complex EAV/table-per-field structure), and

- to use React components for rendering the public-facing content views, which could then also be used for inline editing or a live split preview/editor – like a markdown editor, but capable of turning arbitrary fields of input into arbitrary output

- embeddable content types/entities which know how to render themselves

- live collaborative editing

1. https://github.com/jsdf/cosmos

I may be thick, but what does isomorphic mean in this context?

It's not just you. It's too abstract of a word to tell me anything without more context.

Edit: Here's the definition they're using: http://nerds.airbnb.com/isomorphic-javascript-future-web-app.... In short, "JavaScript that runs on both the client and the server." This goes beyond "using node" to mean that (e.g.) everything is rendered on the server, but that you can also render only parts and send them to the client to handle on its own.

To be pedantic, when I picked my handle back in the /. days, I thought it meant "a bijective homomorphism." Or, less opaquely, an invertible structure-preserving map (in the context of abstract algebra).

When I read about "isomorphic JavaScript" as, essentially, views rendered with the same code on the client or server (and yet a separate API), I can't help but think "You keep using that word. I do not think it means what you think it means."

Perhaps "symmetric JavaScript" would be better? But then the API is still an asymmetry...

Agreed. The software doesn't strike me as really symmetrical or isomorphic. Perhaps a whole different metaphor is in order, assuming the idea is even concrete enough to warrant a short label in the first place. Not all labels need to be (or can be) reduced to a single word.

This is the second time I've seen the word "isomorphic" used like this.


Not trying to be a snob, but this usage is annoying. I use and like JavaScript, unlike other math snobs :)

Basically, they can leverage the same code on the server and in the browser. Google 'isomorphic javascript'.

Hi, here is Morpheus creator. Isomorphic means an application able to share the same state between client/server, and render static html on the first load for attaching to the DOM Javascript behaviors once the DOM is available.

That's an awfully strange way of putting it, I would just call it "cross-platform library". Isomorphism usually has the constraints of full inversion—this seems to imply you can render it on the server and serve it from the browser, and that's not being fulfilled at all. It's not even clear how anything would, as browsers are not typically set up to serve. It's also misleading to people who use the term outside of node servers.

I strongly recommend using "fully shared state" or "client-server application" or something to not imply anything more than DRY logic in javascript across the state of the blog. Otherwise it devalues both your work (doesn't fulfill people's expectations of isomorphism) and the word (it no longer has any meaning).

EDIT: To put it another way, I would expect a server to NOT BE NECESSARY for the client to work, just like clients aren't necessary for the server to function correctly.

The server is needed for serving responses to api calls when the user navigates pages. If you don't have server, you won't be able to have a SPA, but just a static generated website.

Exactly, so it's not isomorphic. An isomorphic application wouldn't depend on its inverse to work.

Isomorphic means corresponding or similar in form and relations, not independently of each other.

If it's not independently of each other, it's entirely unclear what the value of the phrase IS. It, again, seems to be reduced to shared logic—a cross-platform library.

I'm working on a React powered "isomorphic" static site generator now and I hope to make it public in the next few days.

The approach I'm taking is that each page is a composed component using data files (json, yaml and js/coffee for dynamic data) to provide the state, js/coffee mixin files to provide the logic and js/jsx/coffee/cjsx files to render the body content.

Its working now but I need to generate the documentation and built some better example sites.

Sounds interesting, look forward to seeing it.

Please, just stop using isomorph* with anything regarding javascript ! Really, please stop.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact