Skip to content
Andy James edited this page May 6, 2015 · 3 revisions

What is driving this project?

There are three ideas behind this project. I hold to these out of pure stubbornness. The implementation is my ordeal.

  1. A framework and the particulars of a site should be defined by separate means. Writing a framework and defining a site's models, for instance, should not happen in the same language. Ideally, it should be possible to define a particular website in a domain-specific language. Even more ideally, the engine that interprets that DSL should be compiled. For instance, the framework could be an executable compiled from Go, while the models and views are defined in YAML files.

  2. It should be possible to control, on a fine level, what each user gets to see and do. Let's say we want to let the creator of an entity edit it, while some users can only see it and others cannot even see it. Can we make these decisions with a simple, compact, consistent code, or do we have to write functions for each case? It should be the former. I'm proposing using a permissions system adapted from UNIX, since we know it is robust.

  3. We should be able to generate a dummy version of the entire site in one stroke, including relations. By firing off one command with simple parameters, we should be able to fill up the site with randomized data. That data should include relations so we can practice following links, trying out methods and performing actions. The means of creating this dummy data should be the means available to the user. In other words, we create fake users and simulate their actions in the system.

Clone this wiki locally