The Alt Manifesto

Written by Marcello Bastéa-Forte
Version 0.2 - February 2nd, 2009


The Alternative Web Framework is a design experiment to simplify the process of developing web applications.

While the goals for the framework are loftier than what can be reasonably developed by one person, they give a benchmark for success.

50,000 feet: The Main Goal

The high level goal is a simple framework that can be easily learned while remaining flexible and scalable.

10,000 feet: The Five Design Goals

There are a few specific goals that help meet the main goal[1]:

  1. Reduce the number of prerequisites
  2. Documentation before implementation
  3. Simple API
  4. Support creativity and interactive programming
  5. Formalize scalability from day 1.
And though not strictly a design rule, let's add...
  1. Open[3]

[1] Guidelines not rules!
[2] But don't hide functionality. We are not Apple.
[3] And I mean properly open, not GPL. (Don't kill me.)

5,000 feet: The Techniques

(This section is a work in progress.)

The Language: JavaScript

The Data Model: JavaScript Objects

Other Topics

Integrated Version Control

Current Thoughts

Alt actually exists today. It started as a PHP project (SQueaL) in attempt to simplify working with databases. It exploded into a full-fledged JavaScript engine. After a grad school break from Alt, the original design felt flawed (see below) and this manifesto came of those criticisms. I look forward to continuing evolving and massaging the framework until it meets the requirements.

Other Projects

Since the Alt project was started, similar projects (Google App Engine, Aptana Jaxer, AppJet, etc.) have been announced and released, but they all fall short in one or more of the design goals described above.

The closest project I have seen is the (currently unreleased) new version of Appjet. If it is ever released as open source, it could be a good candidate starting point for Alt.

My Criticism of the Current Alt Framework

  1. Why use XML? That's learning another language. E4X is really cool, but also a pain to work with, and doesn't work on (most) client-side browsers.
  2. Arguably, considering XHTML/HTML, is inevitable, so for layout it makes some sense. For a database schema? Not so much.
  3. Why have a database schema?


That's it for now.

Send me your thoughts!