This is a read-only archive of lispforum.com. The forum was locked to new users and posts and is preserved here as static HTML from a database snapshot taken on 2019-09-07.

Interest in a Lisp CMS?

17 posts · 8512 views

As my online store stuff develops, it's becoming increasingly clear to me that I'm in fact building a CMS with a shopping cart. Just thought I'd check for the general level of interest in such a thing - anybody want to leap on board once it coalesces?

Current bag of high-level features*:
- user-editable content pages
- product catalogue
- shopping cart
- integration with at least one credit-card processor
- blog
- news
- user profiles/login
- admin WUI

Oddly enough, it's not the features that's taking all the time - it's getting the right data model, and catching all the exceptions and edge-cases. At the moment, it's a couple of sites with a couple of libraries to make things easier, but I'm starting to see how the common features should be implemented. Consider this a really early heads-up.

*Disclaimer: not all these features may have been implemented yet, either fully or at all.

Re: Interest in a Lisp CMS?

That would be a very interesting project, i have in fact already thought about starting such a project but unfortunately the lack of spare time to work with CL has never allowed me to jump into it. I would very much like to get some more information about this project. I've been trying to push CL into my company's development tools but they are working with an existing open-source CMS and are afraid of the change, so this project could actually drive my company to make the switch.
CL-USER> (setf *boss* (make-instance 'smart-person))
NIL
CL-USER>

Re: Interest in a Lisp CMS?

AlexPaes wrote:I would very much like to get some more information about this project. I've been trying to push CL into my company's development tools but they are working with an existing open-source CMS and are afraid of the change, so this project could actually drive my company to make the switch.
I think it'll be quite a while before this matures enough to displace anything already in place, but it's certainly worth aiming for - if it's worth doing at all, I may as well aim to get it right.

Where it is now: I've built, and am refining, fairly task-specific software that runs a couple of online gallery/shops. I generalise things where it looks feasible, which has produced a couple of libraries that I'm polishing for initial release.

One of the sites is for my partner who, though possessing at least as much aptitude as me, has no interest in getting into programming. I've already built functional-but-ugly admin interfaces, but now need to build the machinery needed for user-generated content in pages, blog-posts, blog comments and news articles. Plain text is easy enough, and will be the first iteration, but it'd certainly be nice to include something like BBCode... and it's at this point that it starts looking like a CMS.

So there's a good chunk of refactoring for me to do, because I'm a bit reluctant to publish the code as it is. There are a couple of big changes to be made yet: one is architectural, increasing the degree of object orientation; the other is design-related, moving from CL-WHO-based functions to HTML-TEMPLATE for the graphic design. The latter move should simplify and reduce the actual codebase significantly.

So I'm looking at releasing the initial rough version once it's become a generalised machine to which I feed config files. The nice thing about CL, of course, is that the config files themselves can be both valid CL and easy to understand and modify :)

Re: Interest in a Lisp CMS?

Definitely, I'm interested in such an app, particularly as it relates to online galleries and shops.

I'm right now fixing the mess which is a cowboy-coded PHP shoppingcart thingie, for a friend. ;) In fact, I'm using Lisp to deal with the PHP codebase, removing all the cut 'n pasting and sticking it into an easily-editable template. I thought I was taking a break from Lisp, but...

Re: Interest in a Lisp CMS?

I'm also interested in a Lisp CMS. I'm designing one myself, but if liked yours, we could maybe cooperate. Please publish something soon :)

Re: Interest in a Lisp CMS?

I would also be very interested in a Lisp CMS. Are you going to use something like UCW, or completely custom?

Re: Interest in a Lisp CMS?

cable wrote:I would also be very interested in a Lisp CMS. Are you going to use something like UCW, or completely custom?
I'm not much of a continuations fan, so it'll be based on Hunchentoot.

I'm also still thrashing out issues in the initial applications, so progress is dead slow at the moment - the price of reliability. From what I've seen of Hunchentoot 1.0, it'll be taking advantage of some of the new features in there, expanding on the logging system in particular. The other distinguishing aspect is that it's looking distinctly OO, as I think CLOS and Postmodern provide a fairly neat way of constructing a mix-n-match setup. I know I should use CLSQL for portability, but I much prefer Postmodern's approach.

*ahem*
Slow? Hell, I haven't finished writing a demo for the base library, yet. I have to say, though, that documenting a library is a damn fine way of forcing yourself to rethink your design decisions.

Re: Interest in a Lisp CMS?

As I'm doing essentially the same, I can say it would be very great to have such a beast ready off-the-shelf!
Just please beware of UCW/Weblocks plague: if you release something, make its examples work straight out of .tar.gz, and make them easy to adapt.

Re: Interest in a Lisp CMS?

Weblocks would in fact be quite suitable for this since it works with and without AJAX.

Its usage of continuations is optional, too.

Re: Interest in a Lisp CMS?

hrapof wrote:Just please beware of UCW/Weblocks plague: if you release something, make its examples work straight out of .tar.gz, and make them easy to adapt.
I'm not sure what version of Weblocks you have tried but the current stable version is easily installable via clbuild and comes with a nice example to run and work off.

Re: Interest in a Lisp CMS?

I'm not saying Weblocks/UCW is a plague, just that they are ridden by a common plague, that is, lack of documentation.
I tried to use UCW several times, each time having great difficulties to make its examples work. And then they started major overhaul...
Weblocks example is nice, but again, no documentation.

(in-package :simple-blog)

(defview user-table-view (:type table :inherit-from '(:scaffold user)))
(defview user-data-view (:type data :inherit-from '(:scaffold user)))
(defview user-form-view (:type form :inherit-from '(:scaffold user)))

(defview post-table-view (:type table :inherit-from '(:scaffold post)))

(defview post-data-view (:type data :inherit-from '(:scaffold post))
(author :reader #'post-author-name)
(time :reader #'post-formatted-time))

(defview post-form-view (:type form :inherit-from '(:scaffold post))
(time :hidep t)
;; POST-AUTHOR-ID and ALL-USERS will be defined below
(author :reader #'post-author-id
:present-as (dropdown :choices #'all-users
:label-key #'user-name)
:parse-as (object-id :class-name 'user)
:requiredp t)
(short-text :present-as textarea
:requiredp t)
(text :present-as (textarea :cols 30)
:requiredp t))

(defview post-short-view (:type data :inherit-from 'post-data-view)
(text :hidep t))

(defview post-full-view (:type data :inherit-from 'post-data-view)
(short-text :hidep t))

It was easier for me to throw together some hunchentoot handlers and cl-who and home-brewed macros than to dig source for all those keyword parameters...

Re: Interest in a Lisp CMS?

hrapof wrote:As I'm doing essentially the same, I can say it would be very great to have such a beast ready off-the-shelf!
Just please beware of UCW/Weblocks plague: if you release something, make its examples work straight out of .tar.gz, and make them easy to adapt.
I wrote about hackbraries (*) and there was similar topic at Dan Weinrieb blog (**) but pointing at author and maintainer won't do any good. There is no sugar daddy to finance the polish nor horde of programmers to them themselves. So if you wan't to help spending some time to actually fixing them would do much better.
BTW Weblocks works out of the shelf on linux through clbuild. On windows you need some tinkering mostly with moving the folders

cheers
Bobi

(*) http://tourdelisp.blogspot.com/2008/01/ ... drive.html
(**) http://danweinreb.org/blog/adventures-t ... -libraries

Re: Interest in a Lisp CMS?

hrapof wrote:As I'm doing essentially the same, I can say it would be very great to have such a beast ready off-the-shelf!
Just please beware of UCW/Weblocks plague: if you release something, make its examples work straight out of .tar.gz, and make them easy to adapt.
Sorry, apparently I'm missing some of the notifications from this board.
Yes, the example will definitely work straight from the distribution, at least as far as I can manage it. I hadn't thought so far about making them easy to adapt, though you make a good point there; my intention is primarily to show how each element can be used. I'll think about that when I next work on the demo, and see if I can string it together with a coherent narrative.

It's slowly coming along, and the effort of documenting it has been quite valuable in the way it's prompted me to revisit some interesting design decisions. I'm hoping to release at least the basic substrate library soon, though my limited development time is generally soaked up with work on the actual websites at the moment.

One of the things about CL that I've come to appreciate all over again is its multiparadigm nature: not only can I mix OO, functional and imperative code at will, but I can migrate functional code to OO style in piecemeal fashion. There's no need to re-architect the whole thing all over again, which saves me from the Netscape trap. The spirit of Babbage lives on, however, and I need to convince myself to release the bag of warts at some stage.

Re: Interest in a Lisp CMS?

JamesF wrote: Sorry, apparently I'm missing some of the notifications from this board.
It might not be your fault. Somebody else reported intermittent email connectivity. Something might be hinky at my hoster. Not sure what it is.
Cheers, Dave
Slowly but surely the world is finding Lisp. http://www.findinglisp.com/blog/

Re: Interest in a Lisp CMS?

How is this project coming? I am very interested in trying it out, even as just a jumping off point for my own work.

Thanks!
Mike

Re: Interest in a Lisp CMS?

kalifg wrote:How is this project coming? I am very interested in trying it out, even as just a jumping off point for my own work.
Unfortunately, it got slightly derailed by a few factors. I had to drastically cut the scope of the online stores a while ago, because other commitments limited the amount of time I could commit to that work. I also got a little sidetracked in building a wiki; unimpressed with my employer's announcement that wikimarkup would be removed from the product we sell, I asked "how hard is it to build one of these things, anyway?"
Turns out the wiki part is relatively easy. The hard part is writing a parser that'll handle wikimarkup and be arbitrarily extensible via user-definable markup tags and processors; well, that and convincing said employer to let me open-source it. The part of the argument that I won was to release the markup parser/renderer (which I've done) but I had to agree to only operating the wiki for the benefit of friends/family/colleagues without releasing the source itself. I did learn a lot about modular architecture in the process, though, which paid off when I needed to yank said module out of the main project (I may have had more than one point to prove).

So the current situation is that the wiki is coming along nicely, and changing form quite drastically (and pleasingly smoothly) as I reframe the problems I want it to solve - workflow will probably hit the top of the queue in about a month, which will turn it into a combined wiki and issue-tracker. From there, the chances are good that I'll port a lot of that functionality across to the webstore, and then generalise the bits of the webstore that are currently site-specific.

The upshot is that the usable stuff that I've released to this point is mark-and-render; as keen as I am to share the rest, I'd bet on it taking another three months. The good news is that m-a-r is very usable right now, even if it's still some way from being complete; I'd love to get feedback from somebody else using it in anger.

FWIW, I forsee four major nuts to crack in building a CMS, now that I have a parser/renderer:
- permissions (easy to hack in, but hard work to get right)
- workflows - finding the right balance between configurable and usable
- really understanding what a CMS needs to do with the content being created, in the sense of "OK, so you've authored this thing, edited it to perfection and had it approved by your manager; what URL should it be answering to?" This is trickier than it looks on the face of it, at least for me, because UI design just isn't my strong point.
- security is really hard