🔒 Qik framework

updated @ 2013-11-24

Framework to quickly set up a website from scratch. It uses flat files for easy installation, maintenance and versioning.

The current version -- which is now available online -- uses flat files to quickly build a full-fletched website, like the aquariusoft.org website you're currently visiting, or the website of the Dutch basketball club Mapleleaves. It enables you to build a site from scratch in literally minutes, safe from altering the design. Future releases will feature RSS feeds for news, a management module [CMS] and more. No database-based version will be released, as current development focuses on using plain files, which can easily be used with a versioning system like Subversion [svn]

Written in PHP, it's a fast and easy way to build a site with quite a lot of content. Adding sections and pages is as easy as adding a single line in a simple configuration file, and you don't have to care about the navigation anymore; Qik does that for you. It includes a search function [using Google; if there's sufficient interest in having a build-in search, there'll be one], logging support [including nice overviews], a gallery with automatic creation and caching of thumbnails and quite some other features.

Update: Qik is now on Github. Work is under way to modernise the codebase and create more up-to-date example sites and -theme. Stay tuned!


/images/icons/web.png Official Qik repository on Github

/images/icons/question.png Snapshot December 2009 with improved gallery (more information of the images, better navigation)

/images/icons/archive.png Snapshot 2009-09-23 [60KiB] with admin module, better gallery, improved templating, support for mobile sites and a lot of nice new features

/images/icons/archive.png Snapshot with multi language support 2009-09-23 [60KiB] with admin module, better gallery, improved templating, support for mobile sites and a lot of nice new features

/images/icons/archive.png Snapshot 2007-01-10 [47KiB]

/images/icons/archive.png Snapshot with multi language support 2007-01-10 [46KiB]

Qik is released under the GPL version 2, which means it's Free and you may use it as you want, alter it, as long as you make the source publicly available again.


Just copy the contents of the tarball to the place you want them to have. This doesn't have to be the root of your web server. For example:

tar xjf qik_release.tar.bz2
mv qik_root/* /var/www/

If you install Qik to be your main website, you can let it handle your Apache error pages too. For example, add the following to your Apache's config file:

ErrorDocument 401 /page/error/401/
ErrorDocument 403 /page/error/403/
ErrorDocument 404 /page/error/404/
ErrorDocument 500 /page/error/500/


Pages, sections, news and tiles are located in the /site subdirectory. If you add a page to the /site/pages directory, give it a name in the form of <sectionname>_<pagename>.html , for example home_welcome.html . Add it to the section file /site/sections/home.desc as "welcome=Welcome at my site" for example.

By default, the tarball comes with a few example pages, and some more navigation items; not all navigation items have a corresponding html page, so customise the corresponding section files and add some html pages when building your site.

There are two CSS [Cascading Style Sheets] files located in the /css directory. You can modify style.css to your likings. struct.css is for setting up the general structure of the pages, and can of course be edited too, but that shouldn't be necessary.

For this purpose you can also modify /site/pagetemplate.php which contains the general html frame of the pages, and the code of the navigation and sub navigation.

You can also create news files in the /site/news directory. For example, /site/news/home.desc will be used when you put the tag @@@news=home:2:5@@@ in your page. The 2 and 5 stand for the item it will start and end. You can also ignore the second number, than it will start at 2 and output all items. If you only do a @@@news=home@@@ all items will be shown.

Pages can include snippets too. These are called tiles and can be included by putting a tag of the form @@@tile=todo@@@ in a page. This will include the contents of /site/tiles/todo.html into your current page. Useful for reusing certain pieces, for example.

Qik includes icons in the directory /images/icons/, which can be used with the tag @@@icon=name@@@ , where "name" is the part of the filename without ".png".


This very site is designed with Qik. To get an idea in how you can make differently looking sites, take a look at the Dutch Mapleleaves basketball club website too.

Two more sites using the framework are under development.


Interesting things to do with Qik. For example a small script to parse irssi IRC chatlogs and generate a Qik website out of it, so you can easily navigate your logs, and in the future easily query them with the Search function.

/images/icons/archive.png Qik IRC hack 2006-02-01 [1.5KiB, support for flat files only]

When you put both files in a directory in your homedir [e.g., ~/bin/crontab/], you can add a crontab entry for parsing your logs once a day:

crontab -e
0  9    * * *   /home/user/bin/crontab/parse_irc_logs.php

This will generate new files every day at 9AM. Of course, you can change this to whatever interval you like.