crew - A sane web anti-framework, that suckless

Last modification on

werc crew - A sane web anti-framework, that suckless

Werc Crew is a minimalist web anti-framework built following the Unix and Plan 9 tool philosophy of software design. Crew is a suckless clone of werc, well, not a 100% clone…But I really like the idea of werc and its weird sense of humor.

WercCrew avoids the pain of managing collections of websites and developing web applications.

  • Database free, uses files and directories instead.
  • Written using the rc shell, leveraging the standard Unix/Plan 9 command toolkit. Written in Go, single file, which suckless, yo!
  • Minimize tedious work: eg., no need to ever write HTML, use markdown (or any other format) instead.
  • Very minimalist yet extensible codebase: highly functional core is 150 lines, with extra functionality in modular apps. Checkout main.go


Here are some of the features provided by werccrew:

  • When you want to turn a directory into a website in a hurry :)
  • Good integration with pre-existing content, you can add HTML or plain text files and they will be seamlessly integrated with the rest of the site.
  • You can use your favorite tools (text editor, shell, file manager, etc) to edit, manipulate and manage data stored in werccrew.
  • Designed to manage any number of ‘virtual’ domains that share a common style and layout from a single werc installation.No, too complicated, single directory is easier
  • Configuration and customization can be at at any level: global, per-domain-group, domain-wide, directory sub-tree, and single file.Configuration should be with the file and code, if you want to change the layout, just change the code and recompile
  • Can trivially run multiple (customized) versions of werccrew side by side. Yeah, just launch another process
  • Very simple and flexible user management and permissions system.You should take good care of your own file system
  • Applications can be easily combined: eg., add comments to your blog or wiki by enabling the ‘bridge’ app; or by enabling the ‘diridir’ wiki convert any document tree into a wiki.No, keep it simple
  • Can easily write werc ‘apps’ and extensions in any language! (But of course, rc is recommended).No, if you want to modify crew, you should understand what you’re going to do, and recompile main.go

Install Requirements

All you need is some Plan 9 commands (cat, grep, sed, rc, etc.), and an HTTP server with CGI support.

Werc runs on any Unix-like system where Plan 9 from User Space, 9base, or frontport are available (this includes Linux, *BSD, OS X and Solaris), and on Plan 9.

Werc can use any HTTP server that can handle CGI, and has been tested with at least Apache, Lighttpd, Cherokee, nhttpd, Hiawatha, rc-httpd, cgd, and others.

Basiclly any systems, but I’ve never tested crew on Plan9, I will, no, I won’t

WercCrew uses markdown by default (and the standard Perl markdown (gomarkdown/markdown) is included with the distribution), to format documents, but any other formatting system can be used.


To get a copy of the latest development code using git, do:

   git clone

You can also browse the online repository.


For questions, suggestions, bug reports and contributing patches you can join the werc mailing list. To join, send a message with a body consisting only of the word subscribe to After you get the confirmation notice, you can post by sending messages to

To track commit messages, you can join the werc-commits mailing list. To join, send a message with a body consisting only of the word subscribe to

On irc, join #cat-v on

I don’t use IRC :), just feel free to fire issue on Github, I’ll take a look when I have time

Don’t mail to me:


Public domain, because so called ‘intellectual property’ is an oxymoron.

Alternatively if your prefer it or your country’s brain dead copyright law doesn’t recognize the public domain werc is made available under the terms of the MIT and ISC licenses.

crew uses MIT, yo! But I totally agree with what was said above ^^^


Thanks to Uriel for creating werc.

Thanks to Kris Maglione (aka JG) for implementing rss feeds, for writing the awk rc-templating system, and other help and inspiration (some parts of the code were based on JG’s diri wiki).

Thanks to Mechiel (aka oksel) for the md_cache script.

Thanks Garbeam (aka arg) for writing the original diri code and showing that writing complex web apps in rc was feasible.

Thanks to Ethan Gardner for writing rc-httpd.

And thanks to everyone else whom we may have forgotten and that has provided fixes and feedback.

To post a comment you need to login first. No, you don’t need it