Hoisted... the Lift-powered CMS

352 views
Skip to first unread message

David Pollak

unread,
May 16, 2012, 7:11:29 PM5/16/12
to liftweb
Folks,

Back when we redesigned the liftweb.net site, I built a little CMS system called Hoisted (please see http://en.wikipedia.org/wiki/Petard ).  It got its job done for liftweb.net

I'm working on enhancing hoisted and have moved it to its own project on GitHub: https://github.com/hoisted/hoisted

I am happily accepting pull requests for Hoisted (hoisted has different IP rules from Lift).

Please discuss hoisted related issues on this list (if the traffic gets too much, I'll create a separate list).

My goal for hoisted is to enable to addition of plugins in the form of Lift snippets.  I figure for a while, I'll host the plugins as snippets as part of the project... that way, they just get built with the CMS.

Thanks,

David

PS -- I'll be making a ton of enhancements to hoisted over the next few weeks including Markdown support.

--
Visi.Pro, Cloud Computing for the Rest of Us http://visi.pro
Lift, the simply functional web framework http://liftweb.net


Olek Swirski

unread,
May 16, 2012, 8:28:43 PM5/16/12
to lif...@googlegroups.com
Sounds very promising :)
--
Lift, the simply functional web framework: http://liftweb.net

xzer

unread,
May 16, 2012, 11:16:09 PM5/16/12
to lif...@googlegroups.com
Sounds great!!!

Antonio Salazar Cardozo

unread,
May 17, 2012, 6:13:09 PM5/17/12
to lif...@googlegroups.com
Exciting!

Jonathan Ferguson

unread,
May 18, 2012, 3:34:40 AM5/18/12
to lif...@googlegroups.com
Yay! I've been thinking about something like this for a while. 

Jono 

Exciting!
--
Lift, the simply functional web framework: http://liftweb.net

Ben Phelan

unread,
May 18, 2012, 9:41:40 AM5/18/12
to lif...@googlegroups.com
Same.  Sounds good.

Naftoli Gugenheim

unread,
May 18, 2012, 3:35:08 PM5/18/12
to lif...@googlegroups.com
Very nice!
Is there documentation for Hoisted?


--
Lift, the simply functional web framework: http://liftweb.net

Lukasz Kuczera

unread,
May 19, 2012, 4:29:38 AM5/19/12
to lif...@googlegroups.com
Very cool is there any roadmap/big picture how it will be designed ?

David Pollak

unread,
May 19, 2012, 12:08:23 PM5/19/12
to lif...@googlegroups.com
On Sat, May 19, 2012 at 1:29 AM, Lukasz Kuczera <kuk...@gmail.com> wrote:
Very cool is there any roadmap/big picture how it will be designed ?

I'm working on some big picture documents, but I want to write the documents using Markdown processed by Hoisted into a site (basically, I want the Hoisted docs to be self-hosted on Hoisted).  Give me a few more weeks to check some stuff into Lift and Hoisted to make this possible.

Net-net: 
* I'm morphing Hoisted to use both XML (as it is in the current form) and Markdown.
* Hoisted will become a JAR that can be integrated into a Lift app or into a command-line app rather than a stand-alone Lift app.
* Hoisted will either serve content (be as it is now, a RestHelper) or generate a whole static site based on incoming documents (think Jekyll or Octopress)
* Hoisted will run in "secure" mode so that many snippets will be disabled (no access to the filesystem or db or network)
* Hoisted's snippets will detect if it's running in server-mode or static mode... if it's the latter, Hoisted will generate JavaScript to display random items on each page reload rather than randomizing items on the server each time a page is served.

Hoisted currently runs http://liftweb.net and the source for the site is at https://github.com/lift/cms_site/tree/master/site

Hope this helps.

David Whittaker

unread,
May 19, 2012, 12:14:25 PM5/19/12
to lif...@googlegroups.com
On Sat, May 19, 2012 at 12:08 PM, David Pollak <feeder.of...@gmail.com> wrote:


On Sat, May 19, 2012 at 1:29 AM, Lukasz Kuczera <kuk...@gmail.com> wrote:
Very cool is there any roadmap/big picture how it will be designed ?

I'm working on some big picture documents, but I want to write the documents using Markdown processed by Hoisted into a site (basically, I want the Hoisted docs to be self-hosted on Hoisted).  Give me a few more weeks to check some stuff into Lift and Hoisted to make this possible.

Net-net: 
* I'm morphing Hoisted to use both XML (as it is in the current form) and Markdown.
* Hoisted will become a JAR that can be integrated into a Lift app or into a command-line app rather than a stand-alone Lift app.

Wow, this would have been my #1 request.  It'll be awesome to be able to prototype as a regular Lift app and then integrate user managed content later on.  I can't wait to see it in action.

Tobias Pfeiffer

unread,
May 19, 2012, 12:23:57 PM5/19/12
to lif...@googlegroups.com
Hi David,

Am Samstag, 19. Mai 2012, 18:08 schrieb David Pollak:
> * Hoisted will either serve content (be as it is now, a RestHelper)
> or generate a whole static site based on incoming documents (think
> Jekyll or Octopress)
> * Hoisted will run in "secure" mode so that many snippets will be
> disabled (no access to the filesystem or db or network)

Some functionality that I find essential for a "Content Management
System" are things like
- users, roles, permissions administration,
- page history,
- editing content from the browser,
- ...
As far as I can see, "current" Hoisted uses the templates/XML files that
reside in the file system, uses the Lift templating mechanism and as such
does not provide for a use case like: "Using a web browser, a user can
add a page, edit its contents and link to it from other pages", is that
right? And as it sounds, also the future Hoisted will not support such a
work flow?

Tobias

David Pollak

unread,
May 19, 2012, 12:56:41 PM5/19/12
to lif...@googlegroups.com
On Sat, May 19, 2012 at 9:23 AM, Tobias Pfeiffer <tob...@tesobe.com> wrote:
Hi David,

Am Samstag, 19. Mai 2012, 18:08 schrieb David Pollak:
> * Hoisted will either serve content (be as it is now, a RestHelper)
> or generate a whole static site based on incoming documents (think
> Jekyll or Octopress)
> * Hoisted will run in "secure" mode so that many snippets will be
> disabled (no access to the filesystem or db or network)

Some functionality that I find essential for a "Content Management
System" are things like
 - users, roles, permissions administration,
 - page history,


That gives you users, roles, permissions, administration, page history, workflow, approvals.  It's called Git (with GitHub layering a UI on top of it) and reinventing a version control system makes no sense to me.

There are dozens of systems available today that manage access control and file sharing and versioning.  Git, Dropbox, Google Drive, etc. These systems are available across all kinds of devices and closely integrated into dozens of applications.

But, I think it's important to separate out what other folks do well (e.g, using the JVM rather than native code, using a J/EE container rather than writing our one HTTP layer, etc.) and focus on what I and the other folks in Lift-land can do well.  When Drupal and Wordpress and the like came out, MySQL with logic on top of it was a good content repository.  That's no longer the case and Hoisted is oriented to the technologies that are evolving rather than the technologies of yesterday.

Another part of this is that keeping content in an RDBMS locks users into the database because their content is locked in the database.  Look what happened when Posterous got acquired by Twitter... All of *my* content is locked into Posterous rather than in my control.  Migrating my Posterous account to Jekyll (see http://goodstuff.im) was a pain in the butt and the content didn't come over correctly (it took a half a day to correct the HTML escaping translation errors.)

When my content is in Git, I control the repository and I can point my local version of the repository to *any* place I want.  So, if GitHub went away tomorrow, it would be a minor suckage to find a new Git hosting company, but I wouldn't have a race to pull all my content out into some neutral format that could be sent to another Git hosting service.

Is Git right for the same kinds of people who use Drupal?  No, probably not (although Interwoven rebuilt a proprietary version of CVS and trained hundreds of thousands of knowledge worker on how to use it.)  But there is a huge evolution in distributed business file sharing technologies and one of them will be the right technology to manage access control, etc. for the content that can then be published to the web.
 
 - editing content from the browser,
 - ...
As far as I can see, "current" Hoisted uses the templates/XML files that
reside in the file system, uses the Lift templating mechanism and as such
does not provide for a use case like: "Using a web browser, a user can
add a page, edit its contents and link to it from other pages", is that
right? And as it sounds, also the future Hoisted will not support such a
work flow?

Tobias
--
Lift, the simply functional web framework: http://liftweb.net
Code: http://github.com/lift
Discussion: http://groups.google.com/group/liftweb
Stuck? Help us help you: https://www.assembla.com/wiki/show/liftweb/Posting_example_code

Kajo Marton

unread,
May 22, 2012, 5:45:54 PM5/22/12
to lif...@googlegroups.com
great stuff I found here in this thread.

we developed our own multi-domain CMS built on Lift for our clients, now we have many of webs in productions, but our CMS is, like you called it, Drupal-like :)

I am really looking forward for next phase of Hoisted, because CMS is something what I am really interested in.

--
Kajo Marton,
Bratislava, Slovakia

Dňa štvrtok, 17. mája 2012 1:11:29 UTC+2 David Pollak napísal(-a):

Tobias Pfeiffer

unread,
May 22, 2012, 5:58:34 PM5/22/12
to lif...@googlegroups.com
Hi David,

thanks for your elaborate answer. I needed to wrap my head around this
concept a bit, but I see your point. "Github as a CMS editor web
interface", that sounds interesting ;-)

Tobias
Reply all
Reply to author
Forward
0 new messages