Skip to content

Tarbell 0.9 architecture

David Eads edited this page Aug 23, 2013 · 1 revision

Sites

Sites are organized around a base project which Tarbell clones from Github. Sites represent one or more related deployment targets. Sites should be identified by a domain name such as 'staging.recoveredfactory.net`.

Sites represent Amazon S3 or other deployment details in their configuration files. Site configuration is per user and stored in ~/.tarbell/<domain-name>.

Projects

Projects are branches of a site's repository. Projects represent individual applications. Each project has it's own configuration file which specifies the project's publication path and default template variables.

Projects consist of text files, which are treated as Jinja templates, and binary files, which are served as static content.

Projects inherit from the site's base project -- projects can extend or override any templates or static files in the base project.

Projects are dynamically loaded Python modules that can export Flask Blueprints.

Templates

Content is provided to templates by the configuration file and optional Google spreadsheet.

Javascript apps

New projects based on the default project come with RequireJS based Javascript application. Basic development process is load libraries using require, apply them in default app.

Clone this wiki locally