I was talking about this with a couple programmer friends recently. It seems almost a right of passage these days for devs to start making a custom CMS. Some even finish them. :) All of them learn useful things. One of my friends learned to really appreciate Jekyll. The other splits his time between Django and WordPress. Neither uses their own CMS.

LiveCodeJournal.com is completely driven by a not-yet-full-featured CMS made with LC, all the way down to the data store. And as Robert Brenstein kindly noted, between my humble WebMerge product and some of the more recent work I've done building web authoring tools for clients, I've had lots of time to explore the corners of making a custom CMS in LiveCode.

Right now I'm studying Drupal.

Why would someone who enjoys LC as much as I do and who's already done so much foundational work set it aside to use an off-the-shelf (OTS) system?

There are many good things that can be done with LC as a CMS. And I'm not entirely sure I'm completely done with that sort of thing. Maybe this conversation will turn me around. But for now let me outline my own journey with regard to custom vs OTS CMS. It may not apply to your needs, but it's how I got here.

Like anyone else, I started with a list of Pros and Cons (some of this may seem Drupal-focused, but only because that's what I'm learning right now; it really applies to just about any good OTS CMS).


Pros for Custom CMS:

- It works exactly how I want it to (usability).

- It has exactly the features I want, and nothing more (lean systems
  are more performant, and with fewer moving parts often more secure).

- A standalone admin app further mitigates risk (GMTA Andre <g>).

- It's fun (good to have a hobby).

It's usually easy for me to come up with a list of reasons to indulge in some fun programming, but that's all I came up with in terms of things unique to a custom CMS. Once I decided to be honest with myself, the downsides flowed like ink from Kerouac's pen.


Cons against Custom CMS:

- No matter how much I complain about the learning curve of CMSes,
  building one from scratch will take far more time. Realistically,
  at least an order of magnitude.  Some features, two orders.

- When I need some extra feature in an OTS CMS, I add it in one click.
  When I need a feature in a custom CMS, I have to architect it, and
  design it, and test it, and then hope it works well with all the other
  parts, and hope it'll be flexible enough to handle other parts I
  haven't written but will inevitably need down the road.

- Drupal has been used to make 1.2 million sites.  That's a lot of field
  testing.  I have fewer sites.  A lot fewer.  Two, actually.  If I work
  hard for months I might be able to turn my custom CMS into something
  others can use.  That could bring the number of sites up to maybe 12.

- Drupal has had more than 900 contributors. If I do an excellent job
  delivering a great, polished CMS with good docs, release it as GPL,
  and manage it through Github, I might some day see as many as a
  dozen contributors.

- With a custom CMS, to use it on a client site I'm basically saying,
  "I have an unusual toolkit that may or may not work on your server,
  and if it does you'll have to work with me forever because I'm
  the only one who knows how it works".  If I use an OTS CMS I'm
  saying, "Any of more than a million developers can help you at
  any time."  I prefer to keep clients because they like my work,
  not because they have no choice.

- Drupal development pays well.  Learning it expands my range of
  service offerings.  A custom CMS is just another LC project,
  in which I'm the only client.

- CSS really is fiddly and takes a lot of work to get everything
  right.  With a custom CMS I'm fiddling and testing on multiple
  platforms and multiple device types.  With an OTS CMS I just
  use what's already there and it works.

- Account management is a non-trivial scope.  Wordpress has two
  basic user types: authenticated users who work on the site,
  and unauthenticated visitors.  Drupal adds a third that's
  particularly useful for some of the sites I have down the road,
  an authenticated visitor, making forums and other social
  media much easier to implement.  In a custom CMS I'm working
  all that out on my own, all the way down to tedious details
  like password reset.

- I prefer server-side HTML rendering, but will still need
  an API for both the admin tool and another aggregation/pubsub
  tools/bots I'll need later on.  With a custom CMS I'll have
  to study good REST design (though I have found some excellent
  articles recently), and write the APIs, which will likely
  mean writing a Sinatra/Spark-like framework for them first.
  With an OTS CMS I just click a checkbox to turn it on
  and then start using it.

- If I'm lucky enough to have a site that becomes popular, with
  PHP-based CMSes I have options to move up to FastCGI or even
  an Apache module if needed.  With LC I'm limited to CGI only.

- I'm sure as heck not going to also write my own commenting
  system.  The spam filter alone is more than I want to bite off,
  and then there's the whole editing UI, account management,
  reporting, alerting, etc.  In a custom CMS I'd be using Disqus,
  which is easy but it means that data lives elsewhere and I will
  never have any control over it.  With Drupal I can keep
  commenting internal like everything else, manage it how I like,
  and integrate user content with other features in flexible ways.

- Defining project-specific roles, editorial workflows, versioning,
  and the other things needed for group authoring still needs to be
  set up in Drupal, but using built-in tools that make most of those
  just a few clicks.  You can imagine how much work that is to design
  and build from scratch in a custom CMS.

- Good theming systems are not easy to design or to build.

- Same with templating languages.

- As much as a standalone appeals to me for admin and even authoring,
  I have to say I've come to enjoy being able to work on my Drupal
  site from anywhere, on any device, without having to first install
  another app on it.  Drupal is a joy to work with even on my phone.

- Drupal (and WP and other well-maintained systems) has an entire
  security team.  I'm just me.  And I wear a lot of hats.

- The ten thousand other things I haven't yet encountered but
  inevitably will if I were to continue rolling my own CMS.

And perhaps most important of all:

- I need working web sites more urgently than I need yet
  another CMS.


As a gadgeteer, this was not an easy decision to make. And perhaps if my schedule changes I may get back to custom CMSes. It *is* fun. But for now, and for the things I'm working on, Drupal is an especially good fit, and it's difficult for me to justify the expense of reproducing Drupal from scratch on my own.

YMMV.

Excelsior...

--
 Richard Gaskin
 Fourth World Systems


Alex Tweedly wrote:
I'm looking for (initial) interest, previous experience, comments, etc.

Every few [ = 4 to 8] months for the last few [= 2 to 3] years, I've been either building a new website for someone, or making significant changes/enhancements to an existing one. Almost every time, unless the changes are very small, I've decided that I really *should* convert it to use a 'proper' CMS - e.g. Wordpress.

And I've tried - but every time I've foundered on not being able to get the site to be what I want, or realizing (believing?) that to do what I want requires real development skills within WP - and therefore too much of a learning curve and/or too much PHP. Or, I've decided that to make it a bearable experience I need to use multiple add-ons (plugins, themes, etc.) and then found that the plugins I spent hours investigating and choosing were incompatible. Or were just not well enough documented.

[ I won't tell you how often I've found a (video) tutorial, wasted an entire hour or more watching it - then realized that it was for an out-of-date version of the plugin, or an old version of Wordpress, and that all the helpful screenshots showed me how to modify settings / actions that didn't exist, or had no obvious equivalent, in the current versions. ]

Twice, having run into brick walls with Wordpress, I've tried other CMSs (Concrete5 and ??Dolphin??) with similar results - poor / out-of-date docs have left me stranded - 80% of the way towards doing what I wanted and unable to get any further.

So in every case until now, I've given up, made tweaks / extensions to my own "home-grown" web site tool(s), and - so far - completed my enhancements in less time than I had wasted trying the "real" CMS.

I put that down to:
  - the power of Livecode
  - the power of revIgniter  (thank you ! again, Ralf)
  - my impatience in trying to learn new tools

But now I have a new, bigger opportunity / challenge - I've been asked to build a web site (actually two unrelated web sites) which are bigger and more complex, and for which I absolutely do not want to become the de facto on-going (content) maintainer.

So, I've decided to build LCMS - a Livecode Content Management System.

It will be (very loosely) based on what I think are the useful ideas in Wordpress (but without any tendency towards blogs). It will be relatively simple.

It won't be:
  - smooth, slick and all-powerful like WP
- able to support (initially, and for some time) real independent development of themes, plugins, auto-loading and updating, etc. etc. (yada, yada, yada ...) - that might be done in a few [= 2 to 20 years]

It will be :
  - based on Livecode (and extensible in LC)
- (I hope) simple and easy (for a LC developer) to understand, use and extend
  - complete with at least one complete theme (based on Botstrap)
  - (at some point) open source, on github, etc. under MIT liceense
- documented in some old-fashioned way (i.e. written, searchable, skimmable tutorials - few or no Youtube videos to waste your time)

OK - enough of the advertising pitch :-)

Here are the requests for input ....

1. has anyone tried this before ? and did you succeed ? or why did you stop ? any foreseeable problems to contend with ?

2. am I just tilting at windmills and I should just go back to studying WP and its plugins ?

3. the current prototype is based on (or rather 'is written over' revIgniter).

I have very conflicting opinions of revIgniter
+ it's wonderful, it has a huge quantity of things it "just does" (in a well documented, well tested, etc. way) so that I don't need to think or learn about them, etc. - I love it. - (a) it is intimately tied to LC server, with heavy dependency on 'include' so it's impossible to (as I would want to do) test 99% of my code in the IDE, with debugging etc. help. - (b) I *really* dislike the "rigLoadView" scheme - it forces (or seems to force) far too much co-mingling of code and content within the view files, and has no clear way to use "themes"

The current version of LCMS simply ignores the 'View' (and 'Model') part of revIgniter, and generates all its output based on ''pages' and 'themes' (and 'menus') - but it sill benefits from all the other parts of revIgniter).

do you think it would be worth the (considerable) effort needed to remove the dependency on rvIgniter in the hope of benefiting from the reduced complexity, hopefully lower overhead, easier debugging a higher percentage within the Ide, etc. ?

Thanks for any suggestions, input, etc.

Alex.


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to