Clove Technologies, Inc. logo

Clove Technologies, Inc.

Current Project

Headshot of Mike Howard

uWeb - a Web Development Kit

This originally started out as a - drum roll ..... - Library of Objects for Writing Web Pages!!!!

I'm not sure what it is right now because I decided that I should write up a Functional Specification. Please, no groans - I'm sure you always write a spec before you start coding. (Design Goals are outlined below, but please take a look at the spec: it has some scenarios which make things much clearer - and it's at least a little funny)

So Why am I doing this?

Pretty much out of Desperation because I haven't been able to find anything which does what I want.

Over the past year and a half I've looked at Drupal, Joomla!, Ruby on Rails, PostNuke, Flash, Codeigniter, and the general idea of MVC systems

Each is a HUGE system which Solves a set of problems nicely but . . .

I've wasted a lot of time 'getting up to speed' only to find out that I don't want to use them.

Here are my Design Goals:

  1. Light Weight. By that I mean, a competent programmer should be able to grab it and start useful coding within a couple of hours. This means that whatever it is, it's easy to install. In fact, it should be so easy, we don't even think of installing it.
  2. Simple. No fancy interfaces. Only really useful, easily understood 'parameters'. Doesn't require tuning.
  3. Support rather than Require. Frameworks and MVC things all impose their model. Drupal and friends/enemies go further by supplying an elaborate GUI control/configuration/command facility that you have to work within. Drupal's system of 'hooks' is pretty good, but it still imposes a lot of structure and convention in order to do anything at all. Support means to provide facilities with as few coercive requirements as possible.
  4. Solve the Well Known, Frequently Occurring Tasks Simply and Elegantly. We all know we need to be able to register, authenticate, and authorize users. There are thousands of implementations - all similar. This is something we should be able to take out of the can and just use without thinking about it.
  5. Free and Usable in 'for pay' projects. This will be released under LGPL
  6. Modern. To hell with Netscape 4, I.E. 5.5, PHP 4, Mysql 4, etc. The Internet is a broad enough ocean that we don't need to support old, dead fish.
  7. Self Contained. Stable is impossible. Self Contained isn't. If it is Self Contained, then we can include a copy in every site we build. That means we can maintain it Loooooong after it becomes obsolete. Combined with Simple and Light Weight - this is a Good Thing.