About Emergence

Emergence is an open-source web development platform that enables rapid web development.

The parts of Emergence include:

The Virtual File System which enables Multi-site Inheritance over HTTP which means any website can inherit all the code and files of the parent site.

The base set of classes in skeleton.mics.me which is a whole website in a can with login and registration and versioning and media uploads. All it needs is a skin.

History

Emergence was originally designed to maintain two websites simultaneously from the same code base. Like many frameworks, this one used the PHP autoloader to load classes and used the Smarty templating engine. As more and more sites were made in this framework the developers of it slowly moved to a more universal Model View Controller pattern for maintaining their code. This made it so all of the logic for a site resided in only the php classes folder. Since this folder was auto-loaded, it became possible to in-theory, share the classes folder between sites and allow them to "check out" a class. This is how some sites we still maintain currently work.

This created a wealth of class in a single folder for maintaining dozens of sites but it requires a command line utility to do the check-in/check-out. The big problem with this was that namespace issues between sites would occur all the time if you weren't careful. Another was that the folder would get too big. It would have been possible to at that point make an interface for doing this but there was a better option that would solve two problems.

The other problem that we ran into was that security on the server with multiple users with FTP and SSH access was always an issue. FTP of course is notoriously slow but this is what most people use when they have to give third parties access to file upload for a site. Since FTP sets the permissions on all uploaded files to the same as the apache server there's no security issues. But when you have an advanced web developer you'd usually want to give them SSH access so they can use SFTP. Of course this leads to the inevitable security issue because SSH sets the owner of the newly uploaded file to the user who is logged in to SSH rather then that of the webserver.

The current version of Emergence solves both those issues by providing a Virtual File System that one can login to. The site itself hosts the files and the framework layer becomes not only responsible for dealing with web requests but also for managing how the file system is on the back end while abstracting it for the user on the front end. This abstraction allows us to provide a custom view into the virtual file system depending on the user that is currently logged in. Finally once we had this new level of abstraction we solved the class inheritance issue by making an HTTP interface for two sites running on Emergence to be able to link up and for one site to inherit the virtual file system of another site over HTTP.


Contributors

Chris Alfano

While Emergence is the brainchild of Alfano, his aim has always to share it. Chris introduced the project to Fazio in 2005 with the goal of developing an open source community around the platform. Chris has been the sole architect and developer of the platform for the first 7 generations. His ability to elegantly address the pain points of web developers while simultaneously providing a scalable infrastructure to build large applications is the reason Emergence exists.

Henry Paradiz

Having the experience of building his own social network platform, Henry was courted by Chris Alfano and John Fazio to join the Emergence team. After 2 years of merciless begging Henry joined the cause. Since then he has been the relentless power behind the building of the Emergence documentation and working through usability issues. He currently teaches the platform to developers at the Devnuts hackerspace.

John Fazio

Fazio came onto the project to provide platform growth through commercial implementation as well as long term vision consultation with Alfano in 2005. By helping to build a marketplace for Emergence-built projects he has contributed to the revenue that funds the development of the platform itself.


Ryon Coleman

Ryon is a freelancer UX/UI designer who has been working on projects that utilize Emergence now for a very long time. He has standardized the stylesheets for the Emergence base skeleton site with proper commenting which means you are probably editing his CSS when you start a new Emergence site.

Branding
Credit is due to the brand genius that is Zach Kozac for his contributions on the platform's logo and style guide. Interface Developer, Rich Gottlieb, is helping to bring Kozac's brand vision to a reality on the emr.ge home page and doc.