Skip to main content

Ralsina.Me — Roberto Alsina's website

Skeletonz: Site in a Can

As post­ed be­fore I am or­ga­niz­ing my new com­pa­ny, and I need lots of things I nev­er need­ed be­fore.

One of those things is a way to cre­ate our web­site. The goal is a web­site that is both a cor­po­rate pres­ence, and a place to pub­lish some tech­ni­cal doc­u­ments, tu­to­ri­al­s, etc, sort of like I do here ev­ery once in a while.

Here are some re­quire­ments:

  • Should be sim­­ple to in­­stall and sup­­port.

  • Should have a cus­­tom­iz­a­ble look.

  • Sim­­ple to add con­­tent (with­­out ed­it­ing HTML if pos­si­ble).

  • Sup­­port RSS for news sec­­tion.

  • I must un­der­­s­tand the code. Less code is bet­ter.

  • Ex­ten­si­ble

  • Rea­­son­able per­mis­­sion sys­tem.

  • Main­­tained by some­one else.

I don't need it to be pop­u­lar, or to be in­cred­i­bly pow­er­ful, or to be blog-ori­ent­ed ( I al­ready have a blog, you are in it ;-), or to be in­cred­i­bly fast (it's go­ing to be a low-­traf­fic site).

I don't need it to have a fo­rum or a com­ments mech­a­nis­m. If nec­es­sary, I can add those from some­where else.

I don't know where I had heard of it, but I vague­ly re­mem­bered an AJAXy CMS called Skele­tonzCMS and that I had kin­da liked the de­mo.

So, let's try that.


It's pret­ty sim­ple and the docs are pret­ty de­tailed on how to do it. No prob­lem.

  1. Put the skele­­tonz sources in a fold­er.

  2. Cre­ate an­oth­er fold­er for your site.

  3. Run a cou­­ple scrip­t­s.

  4. Copy a cou­­ple of files.

  5. Ad­just MySQL set­t­ings

  6. Cre­ate DB.

Re­al­ly, a 2-minute af­fair.

What you end with:

Creating The Site Structure

Let's build a mock­up com­pa­ny site. This is sure­ly not how the re­al site will be, but it should be use­ful.

The de­fault Skele­tonz look has a "Menu" at the top of the page, which cur­rent­ly has on­ly Main in it.

Let's add some en­tries: Main, What we do, Con­tac­t.

To man­age this, you use Skele­tonz' ad­min in­ter­face, which you can ac­cess us­ing the "Ad­min" link at the bot­tom. I don't re­al­ly like that link in there, I don't think it looks pro­fes­sion­al.

Once you are in the Con­trol Pan­el, you en­ter the Menu Man­ager, and add en­tries for new in­ter­nal pages with the names you wan­t.

This is re­al­ly nice. No reloads in sight, in­stant ap­pli­ca­tion of all changes... re­al­ly nice.

You will see that the menu en­tries don't show. Don't wor­ry, noth­ing is bro­ken. You need to en­able the pages you just cre­at­ed.

  • Click on Ed­it Page

  • Go to each page, and click on Page Prop­er­ties.

  • Switch each page to Vis­i­ble.

There, you can al­so set who can ed­it each page. Nice. On the Con­trol Pan­el you can de­fine user­s, groups and pass­words for this.

Now, when you lo­gout, you will see the three en­tries on the menu.

What we have now:

Adding Some Content

Now, to add some stuff in those pages. Skele­tonz has its own in­ter­nal AJAXy ed­i­tor, which I am not to­tal­ly in love with, but it's good enough. You can add links to oth­er pages, im­ages, the usu­al ba­sic for­mat­ting, and many oth­er things.

One of those oth­er things is use plug­ins. For ex­am­ple, if you in­sert this text (copied from their site):

[ gb_image=Test, caption=Hello, link=[image=Test me, linkonly]]

You get a link that says Test, and when you click you get an im­age in a pop­up, us­ing the Grey­box Im­age plug­in, with cap­tion Hel­lo.

No­tice that I nev­er tell it what im­age it should dis­play? That's be­cause the Skele­tonz ed­i­tor will show some icons al­low­ing me to up­load the im­age, or re­place it with an­oth­er, that part is very easy.

Sad­ly, I have not yet found docs on how the plug­ins work. For ex­am­ple, if you miss the cap­tion ar­gu­men­t, that same line does noth­ing.

For ex­am­ple, there is a mail­inglist_­man­ag­er plug­in. I have no idea how it work­s.

But for sim­ple web­page edit­ing, the in­clud­ed ed­i­tor is ok.

What we have now^3:

Edit­ing the con­tent:

Google­Spel­l... nice :-)

Edit­ing the page:

See how you choose where the in­ter­nal page link goes to?

End re­sult:

Customizing The Look

Of course, in this com­pa­ny we try to keep the dis­play of bones to a min­i­mum, ac­cord­ing to le­gal reg­u­la­tion­s. So, I need to do some­thing about the look of the site.

What we have now is the de­fault. But in the Skele­tonz site, I see the thing is tem­plates. That's good. I like tem­plates!

In fac­t, it looks pret­ty easy, even if it us­es Chee­tah, which is not my favourite python tem­plate sys­tem ( I am a sim­ple guy. Cher­ry­Tem­plate is enough for me ;-), but I have done some Chee­tah be­cause PyDS (my blog tool) us­es it.

I am not do­ing it right now, but I see how it's done, and it's good. In fac­t, a look at the dif­fer­ent sites us­ing Skele­tonz shows that the tem­plat­ing is flex­i­ble enough.

And it seems that if I re­move this:

<div id="bottom">
  <?= cms_link_box ?>
  <br />
  <?= cms_status_box ?>

I would lose the too-wik­ish links, too.

Final Score

So, how does Skele­tonz score ( 1 to 10 ) on my re­quire­ments?

  • Should be sim­­ple to in­­stall and sup­­port: 8

    But on­­ly be­­cause I don't know how much work keep­­ing it run­n­ing is. Could be a 10, could be a 6.

  • Should have a cus­­tom­iz­a­ble look: 8

    Just be­­cause it will make me learn Chee­­tah.

  • Sim­­ple to add con­­tent (with­­out ed­it­ing HTML if pos­si­ble): 7

    The ed­i­­tor is ok, but some things are ob­s­cure. Add doc­s, and this will go up.

  • Sup­­port RSS for news sec­­tion: 9

    Works great.

  • I must un­der­­s­tand the code. Less code is bet­ter: 9

    I like the code.

  • Ex­ten­si­ble: 9

    The plug­in sys­tem is very pow­er­­ful.

  • Rea­­son­able per­mis­­sion sys­tem: 9

    Good. There is a prob­lem in stay­ing logged, it seem­s. Maybe I am do­ing some­thing wrong?

  • Main­­tained by some­one else: 10

    Yipee! Hur­rah for Amir Sal­i­he­fen­dic!

Bot­tom line: I like it.

Contents © 2000-2024 Roberto Alsina