PageEdit 2 is the open-source initiative that builds on the success of WebKit's proprietary PageEdit system.
PageEdit was built using the BlackBox 2.0 design methodology developed by WebKit founder Dan Chick and provides
a modular, skinnable functionality platform that is easily integrated into any creative web project.
PageEdit 2 builds upon that experience and endeavors to draw upon (and give to) the experience of the ColdFusion
development community by taking this project to open source.
What follows is the PageEdit Manifesto...
PageEdit 2.0 /
BlackBox 3.0 Manifesto
Dan Chick, dan@webkit.com, June 10-12, 2007
Introduction
In February of 1999 there was a lot of discussion in the
ColdFusion community about how to improve upon the Fusebox development
methodology. After having submitted some
ideas to the mailing list discussing the future of Fusebox and being
unsatisfied with the direction of the technology (at the time) I created the
BlackBox development methodology.
BlackBox included some of the elements of Fusebox and
attempted to address some of the weaknesses. A second version of BlackBox was released that more-or-less preserved
the original BlackBox and added ‘packages’, allowing developers to add complete
module functionality via a single tag.
Over the next four years and using BlackBox 2.0 techniques I
developed a suite of tools (called pageEdit) for my company WebKit. Some of these modules include: SEO-friendly
shopping cart, user management, SEO-friendly content management system, forums,
photo gallery. There are many other
modules, all developed at my own or WebKit’s expense (and building on a
previous set of tools from four years before that) that formed the core of the
business.
In May of 2007 development on pageEdit had slowed as I
focused my energies on other aspects of WebKit. Presented with a possible contract, I learned about an open source
movement, written in PHP, called Drupal. A modular system that separated functionality from presentation, Drupal
bore a lot of similarities to pageEdit. Three major differences between pageEdit and Drupal are:
- that books
are written about Drupal
- there
are hundreds and thousands of developers using it
- the
creator of Drupal now carries significant name recognition for his hard work.
June 2007 now finds me in the decision-making period of
whether to release the pageEdit system to the ColdFusion community as an
open-source solution.
The purpose of this paper
I would like to have one to three more people assist me with
the core of the new system. I understand
that one person working alone does not get feedback and alternatives points of
view in the development cycle.
This document is written to provide a clear insight into
where I am coming from and taking this project. If you want to work with me on this then you deserve to know what you
would be getting yourself into.
This document will also provides the same information to
anyone who write modules or wishes to contribute to the system in the future.
A fusion of identities
A new system would be either called pageEdit 2 or BlackBox
3, most likely pageEdit 2. The
CFBlackBox.com and the pageEdit.com sites will be merged. CFBB has a Google page rank of 5 right
now. PE has a rank of 3. When combined this will immediately this lets
us start this new project with a page rank of either 5 or 6.
Why go open source?
A few reasons to consider taking pageEdit open source:
- Development
has slowed
- An old
core build on ColdFusion 5 that can be improved upon
- A
cleaner system for per-implementation customizations
- Get
people using this code – too much time has been put into it for it not to
be widely used
- Give
something back to an internet community that has given much to us
- Build
name recognition for those involved in making it happen
- Possible
work resulting from being the experts on this system
- Possibly
offer support contracts
- No significant
open source portal offering presently on ColdFusion
Why not go open source?
A few reasons to consider not going open source:
- Years
of proprietary code released to the wild for free
- Empower
our competition
- Time
needed to keep this initiative going
- Will
the return be worth the sacrifice?
The truth of the matter is that there are already other
systems out there, most in PHP, that offer these things. Our methods are proprietary but the
functionality is somewhat widespread already. We would hardly be empowering the competition, simply providing them
with tools that WE built. While that may
raise the level of their offerings it sure looks good for us too.
Some of the core features of pageEdit 2.0
A new pageEdit system will offer the following:
- A
solid, modular core system
- Certain
core modules provided as base install
- Users
- Security
- Permissions
- Admin
structure
- Probably
CMS
- Easy
addition of custom modules
- Lean,
efficient core
- Very
little processing overhead to run the system
- Easy
to install
- Can
run a single site on a server or in a multi-site environment
- Standardized
permissions infrastructure
- Custom
permissions definable per module
- Create
groups of users
- Assign
security profiles to groups
- User
permissions are sum of base + all groups + per-user permissions
- Separate
functionality from presentation
- Every
display element can be controlled via custom templates
- Default
templates with each module
- Custom
templates per implementation
- Individual
custom templates
- Override
functionality as well as display
- Technology
- Written
in ColdFusion 7/8
- Possible
enhancements for CF 8
- Possible
port to PHP
- Not
imminent but possible
- Databases
- Web
Servers
- IIS
- Apache
- Built
in support for mod_rewrite to create nice SEO pages
- Database
keys will be integers or guids
- Guids
are okay if mod_rewrite is used to make them nice
- Integers
might be faster
- Memory
variables
- Some
in server scope
- Some
in application scope
- Additional
modules will have their own namespace to avoid conflict
- Structure
key will match the directory name of the module
- Deployment
- Easy
to implement an entire module
- Copy
files to wherever they need to be
- Run
an install script to build any relevant tables
- Also
have an uninstall script
- Updates
will have their own scripts as well so databases can remain current as
modules improve
- Easy
to leverage specific functionality within a module as well
- Session
- Built
in session-management
- Standard
variables can be checked
- Permissions
- Mechanism
to reset user permission on the fly
- Searchable
- Provide
a single interface to index all forms of content
- Easy
to perform a site-search
- Each
displayable page should have a function for ‘indexable content’
- Distinct
URLs
- Rewritable
for SEO and human readability using Apache mod_rewrite
- Possibly
an alternative for IIS as well
- Each
displayable page will have a distinct URL associated with it.
What needs to be done to launch this initiative?
A few things need to occur before this open source
initiative could become a reality:
- Research
changes in new versions of CF
- Study
a few existing methodologies
- Rewrite
the core
- Rewrite
a few key modules
- Build
a site
- Sourcefourge
to mange development or internal?
- forums
- Publicize
What needs to be done to maintain this initiative?
It is hard to say what will be required to maintain this.
- Moderation
of forums
- Review
of submitted modules
- What
else?
|