Matsuba is an imageboard - a forum nominally centered around discussion of images. Most "traditional" imageboards derive in spirit from the Japanese website Futaba Channel, and are generally stylistically lightweight with few features and a strong value on anonymity. As such, there are no user profiles, post counts, or any of the other trappings of typical forum software.

While interest in imageboards has declined, the mid-2000s saw a burgeoning community of boards large and small, for all manner of niche topics. Likewise, there arose heaps of imageboard scripts. Most were terrible, or offered little of added value over their predecessors. Matsuba tries not to be.

Matsuba's imageboard and text discussion styles are based respectively on Wakaba and Kareha, two Perl scripts written by !WAHa.06x36. These are in turn successors to the Japanese Futaba Channel and Ni-channel -- again, respectively.



  • Automatic banner rotation
  • Support for multiple boards in one installation
  • Many options configurable on a per-board basis, including output template (imageboard, textboard, etc.)
  • Catalog and thread list overview for each board
  • RSS feeds
  • Generates static files: blazing fast page response with light CPU load
  • Support for many file types, including audio files (even extracts title and cover art from metadata tags in MP3 and MP4 files)
  • Animated GIF thumbnails
  • Transparent GIF and PNG thumbnails
  • Robust, flexible text formatting, based on Markdown
  • Syntax highlighting for source code snippets
  • Cross-board reply links (>>>/a/1234)
  • Inter-thread links on text boards using thread-relative post numbering (for example, >>7 will link to the seventh post in the same thread, whereas >>/1234/7 links to the seventh post in thread 1234)
  • Forced indentation of code
  • Advanced anti-spam system, including remote URL downloading to apply spam filter checks to linked pages
  • No CAPTCHA support whatsoever
  • Post count-based permasage, with override ability
  • Sticky threads
  • Highly advanced, regular-expression based word filters
  • Flexible anonymous name generator, similar to Wakaba, extended with a domain-specific language to define the context-free grammar
  • noko support to stay in thread after submitting a post
  • Proper support for 2ch fusianasan and mokorikomo in name field
  • "Aborn" message when deleting posts in text board mode
  • Customizable thread trimming
  • A wide selection of stylesheets
  • Customizable bans: per board or sitewide, expiring or permanent
  • Practically no administrative panel whatsoever; hope you like SQL


Not much!

  • Python 2.x (might run with Python 3 using 2to3; untested)
  • mako
  • pygments
  • a web server which supports CGI (not FastCGI) and URL rewriting
  • an understanding of both SQL and Python -- you will be getting your hands hands dirty here!
  • lots of time on your hands for both configuration and moderation


I make absolutely no guarantee that this will even actually work. Important files might be missing. There might be blatant errors preventing anything from functioning. Best of luck if you actually want to make use of this.

Put everything under public/ somewhere viewable via the web. The other directories, priv/ and lib/, should not be publically accessible. matsuba.py is the entry point, and in a typical setup, should be marked executable.

Have a look at lib/matsuba/config.py and also matsuba.py for settings to configure for your local installation. If you have used Wakaba, some of the variable names will sound vaguely familiar.

You will also need to set up some internal URL-rewriting rules. Assuming you are hosting your boards directly under the site root, do something like this:

/([^/]+)/read/([0-9]+)/*$            =>  /$1/$2.html
/([^/]+)/read/l50/*$                 =>  /$1/res/$2_l50.html
/([^/]+)/read/([0-9A-Za-z/_,-]+)/*$  =>  /matsuba.py?board=$1&read=$2
/([^/]+)/src/([^/]+)/thread          =>  /matsuba.py?board=$1&srcfind=$2

Finally, you will need to initialize the database. Matsuba uses sqlite3, so sqlite3 priv/matsuba.db < matsuba.sql will make some tables.

Matsuba offers no GUI for managing users, setting up boards, or doing virtually anything you might want to do besides the most basic moderation tasks. Get familiar with that schema!

There used to be an interface for handling some of these things via the web admin panel as well as on the terminal, but it gradually fell out of sync with the rest of the code until it was functionally useless.


Matsuba is free software; you can modify and/or redistribute it under the terms of the Artistic License. Please read through COPYING in the distribution before using or sharing this code in any way.


Storlek storlek@rigelseven.com


Twitter: @SwedishForSize