Skip to content

Schlaefer/Saito

Folders and files

NameName
Last commit message
Last commit date
May 22, 2018
Jul 31, 2020
Aug 7, 2020
Mar 1, 2020
Mar 12, 2020
Nov 14, 2014
Oct 20, 2020
Jul 31, 2020
Mar 12, 2020
May 22, 2018
Mar 12, 2020
May 24, 2018
May 22, 2018
Feb 14, 2020
Nov 14, 2014
Apr 5, 2014
May 22, 2018
Jan 18, 2020
Oct 20, 2020
Sep 2, 2019
Jul 31, 2020
Nov 24, 2019
Mar 1, 2020
Oct 20, 2020
May 2, 2014
May 22, 2018
Nov 18, 2019
Jan 10, 2020
Jun 1, 2018
Oct 22, 2019
May 22, 2018
Sep 21, 2019
Jun 14, 2018
Nov 14, 2019
Mar 12, 2020

Repository files navigation

Saito

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

  • PHP 7.2+ (extensions: gd, exif, intl, mbstring, pdo, simplexml)
  • Database (MySQL/MariaDB tested, others untested).

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.