Skip to content
This repository has been archived by the owner on Sep 26, 2024. It is now read-only.

vrde/morgenjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MorgenJS

Web development is broken. Building a UI for the browser is a pain. Doing it for several devices is even worse. MorgenJS is an experiment to find a new way to make apps. MorgenJS explores a new field: reactive and responsive development.

Link to the presentation

MorgenJS is a nice framework to build single page webapps. It is still extremely experimental, and the API is totally unstable, so don't rely on it. I just put it online to show the code to some interested people.

Why

There are many awesome libraries/frameworks out there: BackboneJS and AngularJS to name a few. They are doing a great job helping with the architecture and provinding utils, bindings, and all a developer needs to build an app.

But the development is still the same: edit styles, save, switch to the browser, reload; or edit the scripts, save, switch to the browser, reload; or edit the templates, save, switch to the browser, reload. I think it's a huge waste of time, for many reasons:

  • saving, switching and reloading interrupts your flow and takes time, if you are doing it once is 2 seconds. If you are doing hundreds of times in a day, it's minutes, in a week of work, it's hours.
  • switching and reloading destroys the context. The URL may help, since it's a way to keep the context, but it's not enough. Imagine you are working on a dialog, and opening a dialog requires you to follow a path in the UI. If you are reloading you need to repeat the click-flow to get to the dialog. Even worse if you have to insert some data to get to the context you need.

If this is not enough to persuade you, what about different instances of the browser to check compatibility? And maybe you have many different devices. You should spend time coding, not clicking and tapping everywhere to debug the UI.

MorgenJS tries to fix this problem, giving to the developer a nice tool to update styles, scripts and templates in real time and without reloading the app, and propagating events through all the devices connected.

Tech stack

  • Python
  • TornadoWeb
  • WatchDog
  • VanillaJS

Quickstart

Please note that MorgenJS is not production ready, it's still an experiment and will change a lot in the near future. Anyway, if you are brave enough to give it a try, you can take a look to the TodoMVC implementation I've done.

Requirements

A modern (2.7) Python installation, Pip or easyinstall. A virtualenv manager can be helpful, I recommend Pew.

Take a look also to the Python watchdog supported platforms. I've just tested it in my Ubuntu box and it's working, never tried a Mac OS X, will do it soon.

How to run the TodoMVC example

git clone git@github.com:vrde/morgenjs.git
cd morgenjs
pip install -e .
cd examples
morgen --root=todomvc

Hopefully, you can see the TodoMVC implementation up and running on http://localhost:8888.

How to run the internal test suite

Point your browser to http://localhost:8888/__morgen_test/index.html.

About

this is total madness

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published