[Edit: the person I was reponding to asked a question. I put my heart into an answer, mostly to clear my head. Then he deleted his question and now I look like a douche.]
"Wrote" my own over the last few days, but was told by fellow CL'ers it's already been done.
What I did was generate the database tables, the html form rendering code (each class as a form), the server side function to validate the form input along with the client-side input validating javascript. That is:
1) A CLSQL Object<-->RDBMS ORM thinggie. The class definition defines a table in the database (transparently), and each class instansiation creates a database record. You use (find-object :class 'user :id objec-id) to get it back; the code takes care of mapping a SQL select result-set to a single USER object or a list of objects.
2) It automatically generates DISPLAY-USER method for each class, which generates a semantically sane HTML form. For has id="user_class" and class="defview". You can customize the "rendering" of each class by customizing the unique element ID, or the whole set of generated views by customizing the CSS class.
3) It automatically generates the viewing page example.com/class-name, and it takes arguments as example.com/class-name/object-id. If not object ID is supplied you get an object creation form where all the editable slots are rendered.
4) It automatically generates example.com/class-name/validate, which is a server side script which you can use to validate the input of /class-name the creation method.
--
I have been on this fucker for the last 3 days and today I reverse engineered a whole site from a database of 34 tables. In ONE day. Took me two days to write the macro to do this, but I did it, and it's not pretty.
So far it jus supported html input types text and password, and textarea. I added a new "widget" called :label, which is input text with readonly="true".
My Ajax-fu is still weak and i am sick of this hack of mine already. Specially since someone told me there established tools that do this. UnCommonWeb and Lisp on Lines.
If Objective-C is a gold Canadian dollar, Smalltalk is the Aureus die from which the imperial roman wealth was forged.