Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Markdown based web site framework Code Health CircleCI


MDWeb is painstakingly designed to be as minimalistic as possible while taking less than 5 minutes to setup and less than a minute to add content.

This project was borne out of my frustration with maintaining websites and adding content. I'm a firm believer in the ethos that CMS is an evil that should be rid from this world. I spent years fighting horrific battles with enemies such as Drupal, Wordpress and Joomla. The things I saw during those dark days can not be unseen.

After years of battle, this weary web developmer built himself a tiny oasis. This is MDWeb, I hope you find respite in it.

You can see a live demo of MDWeb here:


  • Python 2.7 or 3.x
  • Pip
  • Virtualenv (optional, highly recommended)

Forking for your own site

The suggested method for using MDWeb and also tracking any udpates you make for your own site is to fork the MDWeb repository. Any changes you make will be commited to your personally forked repository and you'll be able to pull down upstream changes by following the procedure outlined here How to update a GitHub forked repository?


For more ways to run MDWeb see Setup and Basic Usage.

  1. Fork the Github repository.
  2. Clone your forked repository on your local machine.
  3. Go into the directory
$ cd mdweb
  1. Setup a virtual environment and activate
$ virtualenv env
$ source ./env/bin/activate
  1. Install requirements
$ pip install -r requirements/development.txt
  1. (Optional) Copy sites/ to sites/<<NameOfYourSite>>.py. Inside the copied file rename the class to match the file name - for example if you call the file the class should be named JoesSite. If you choose not to copy to a new file continue to the next step using sites/
$ cp sites/ sites/
$ nano sites/
# Edit the class name and config as described above
  1. (Optional) Create a new theme for your site in the themes directory. If you add a new theme remember to update the THEME config value in the next step.
  2. Update the config attributes in the site class, specifically THEME and CONTENT_PATH (I suggest using the provided, empty, content directory). The demo-content directory is provided with example content to get you started. Add your content to the content directory defined.
  3. Run the application. The dev_server script has one required parameter which is the site class name. If you copied the site file in step 6 the site name will be the name you used in that step (JoesSite) otherwise it will be the default site name MySite.
$ ./bin/dev_server JoesSite

Now visit and you should see your site.


  • Setup - How to get MDWeb running locally or in Docker either in development or production environments
  • Basic Usage - How to use MDWeb to host your site
  • Development - How to build themes and plugins for MDWeb
  • Reference - API and core framework reference
  • Contributing - How to report bugs and contribute to the development of MDWeb


MIT © Chad Rempp


Some portions of MDWeb uses other F/OSS content. Below is a sourced list of content used in MDWeb.