schlaefer/saito

Saito - The Threaded Forum


README

What is it?

Saito is a web-forum with conversation threading. It is different from the majority of other forums as it puts the emphasis on performance and presenting conversations in a classic tree-style threaded view.

A lot of optimization went into serving long existing, small- to mid-sized communities with moderate traffic but hundreds of thousands of existing postings. It is able to displays hundreds of individual postings on a single page while running on a inexpensive, shared hosting account.

Test it here (login: test/test).

Status

Build Status Scrutinizer Code Quality

Requirements

Get Started

A ready-to-use ZIP containing all necessary files is available on the release page. Unzip it, upload it to your server, open it in a browser, and follow the instructions on the screen.

Development

Set-Up Environment

You need a more or less generic environement providing:

  • PHP with composer for the server-backend (mainly build on CakePHP)
  • node with yarn and grunt-cli for the browser-frontend (mainly build on Marionette)
  • a database

There's a docker file for development in dev/docker/…

Install Files

Checkout the files from git-repository and install the dependencies:

composer install;
yarn install;

Move dependency-assets into the right places:

grunt dev-setup

Run all test cases:

composer test-all

See the Gruntfile, packages.json and composer.json for additional devleopment-commands.

Create Production Files

To generate all the minimized assets for production:

grunt release

Create A Release Zip

To generate a zip-package as found on the release page for distribution:

vendor/bin/phing

FAQ

How does it compare to mylittleforum

Actually this forum was written to replace a mylittleforum installation with a more modern approach. Mylittleforum is a noteworthy starting place if you want a threaded web-forum. There aren't that many out there. Mylittleforum exists for many years now and offers great features.

Disclaimer: Subjective opinion ahead…

But there are a shortcommings, mainly: performance and maintainability. If a mylittleforum installation reaches a few hundred thousand postings it is going to slow down. Also it was written when PHP was a much worse language: there are no test cases, which makes it more fragile to changes.