-
Notifications
You must be signed in to change notification settings - Fork 6
Introduction
Mulder is a tool for building static web sites. It can transform content from one format (e.g. Liquid or Markdown) into another (usually HTML) and lay out pages so that the site’s look and feel is consistent across all pages.
Mulder is not a true content management system (CMS), as it does not manage content—you manage the content, and mulder processes it for you. Some CMS-like functionality, such as finding items that have certain attributes associated with them, is present in mulder, though; for example, running a query such as “find all articles by a given author” is possible.
Unlike many CMSes and blog engines, mulder runs on your local computer, and not on the server. It doesn’t need to—mulder produces static HTML files that can be uploaded to any web server. This also means that the server doesn’t need to have anything “special” installed at all—it just needs to be able to serve static files, which every web server can.
Mulder is suitable for all sorts of sites. It is usable for small personal weblogs, portfolios, product web sites and more. It has been used in production for such sites. All web sites that do not need to allow user-contributed content through a web interface can be built with mulder.
Mulder is not a simplistic web site publishing tool. It is aimed at being both powerful and flexible. While other static web site publishing tools focus on providing only a handful of features, mulder aims to be capable of building all sorts of sites.
Extending mulder is easy because of its modular architecture. It comes with only a couple of extensions, thereby avoiding bloat, but allows new functionality to be plugged in quickly and easily. A well-documented API is what makes mulder powerful and flexible.
The target audience of mulder are developers with some level of C# experience. It does not hide its C# roots, as doing so would make it a lot less powerful. This does mean, however, that people new to C# will maybe not find mulder to be the easiest static site generation tool out there.
Why use a static site generator instead of a powerful server-side content management system? Here are some reasons why using a server-side CMS may not be the right choice for you:
Static pages load lightning fast.
The main reason why mulder was created, is to reduce the server load and improve page load times. After all, nothing gets served faster than a static HTML page. Many CMSes (in its broadest sense) waste a lot of time. On each request, they fetch data from the database, then let a templating system merge the data with a page template, and finally send the assembled content to the site visitor’s browser. Caching helps quite a bit, but not all CMSes do it well.
Mulder goes a step further than caching, and generates static files right away (you may call it “extreme caching” if you are so inclined). Using static files is not only fast—it also allows web browsers to cache files much more efficiently due to Last-Modified
headers and such.
It is a lot safer to host a static web site than a dynamic one.
Because mulder does not run on the server itself, there is no way to exploit mulder or .NET, one way or another, in order to hack the site. Most CMSes do run on the server, which certainly does makes them a target for attacks.
Using mulder is not a guarantee that your site will be unhackable, though. If your FTP account has a weak password, then you’re asking for trouble.
Mulder takes the pressure off going live.
When making changes to a live site, there is always the possibility that something will go wrong. Perhaps a typo in a SQL statement, a div
that wasn’t closed, etc. Whatever the reason is, visitors will temporarily see a site that is broken in some way.
When mulder compiles a site, the compiled site goes into the public
directory on the local computer. You can check every single page to make sure their contents are correct before uploading the site to the live server. That way, you’re sure that nothing ever breaks.
The source files for a mulder site are stored as flat text files by default. This means that you can easily store the site in a versioned repository (Subversion, Mercurial, git, darcs, Bazaar, etc.).
Mulder uses Git as its VCS, and its main repository is located over here. If you have any patches to share, I’d be happy to accept them!