SeasideSt / Seaside

The framework for developing sophisticated web applications in Smalltalk.
MIT License
508 stars 71 forks source link
component continuation gemstone pharo pharo-smalltalk smalltalk webframework

The framework for developing sophisticated web applications in Smalltalk.

Seaside provides a layered set of abstractions over HTTP and HTML that let you build highly interactive web applications quickly, reusably and maintainably. It is based on Smalltalk, a proven and robust language that is implemented by different vendors. Seaside includes:

Seaside also has good support for CSS and Javascript, excellent web-based development tools and debugging support, a rich configuration and preferences framework, and more.

Getting Started

Seaside is composed of different parts, allowing you to only load the parts you need for your project. If you are new to Seaside, we advise you to load the default set of packages by simply following the load instructions below. If you want to load specific (or additional) parts of Seaside, check out the list of groups and packages.

We provide instructions to get started with Seaside in Pharo, Gemstone, Squeak or the VAST Platform. See the appropriate instructions for your platform below.

Instructions for Pharo

Load Seaside

To install the latest stable version of Seaside in a Pharo image, execute the following code:

Metacello new
 baseline:'Seaside3';
 repository: 'github://SeasideSt/Seaside:master/repository';
 load

To install a particular version (see releases, e.g. 3.4.5):

Metacello new
 baseline:'Seaside3';
 repository: 'github://SeasideSt/Seaside:v3.4.5/repository';
 load

Launch the Welcome page

If you installed Seaside using the instructions above, the Welcome package was loaded and a default server adaptor was started on port 8080. Open a webbrowser on (http://localhost:8080) and you should see the Seaside Welcome page.

Also checkout the Seaside Control Panel, in the 'Library' menu of the Pharo top toolbar:

Screenshot 2024-04-20 at 14 02 54

Happy Seasiding!

Instructions for Gemstone

Load Seaside

To install the latest stable version of Seaside in a Gemstone repository, execute the following steps:

  1. Upgrade to the latest version of Metacello and Grease using GsUpgrader:

    Gofer new
    package: 'GsUpgrader-Core';
    url: 'http://ss3.gemtalksystems.com/ss/gsUpgrader';
    load.
    (Smalltalk at: #GsUpgrader) upgradeGrease.
  2. Install Seaside:

    Install the latest commit from the master branch:

    GsDeployer deploy: [
    Metacello new
      baseline: 'Seaside3';
      repository: 'github://SeasideSt/Seaside:master/repository';
      onLock: [:ex | ex honor];
      load ].

    Install a particular version, e.g. 3.2.0 (see Releases for a list of possible versions):

    GsDeployer deploy: [
    Metacello new
      baseline: 'Seaside3';
      repository: 'github://SeasideSt/Seaside:v3.2.0/repository';
      onLock: [:ex | ex honor];
      load: #('Development' 'Examples' 'Zinc') ].

Instructions for VAST

Seaside is an official vendor supported framework that can be installed using VAST's feature loading tool GUI. In addition, it can be installed programmatically as shown below. VAST fork is at https://github.com/instantiations/Seaside

Load Seaside

To install the latest stable version of Seaside in a VAST Platform image, execute the following code:

(EmConfigurationMap editionsFor: 'z.ST: Server Smalltalk (SST) - Seaside')
 first loadWithRequiredMaps

Instructions for Squeak

Seaside for Squeak mostly works but is unmaintained. If you want to help out keeping Seaside running on Squeak, please contact us via the channels mentioned in the Community section below.

Squeak >= 5.2

To install the latest stable version of Seaside in a Squeak image you need to first install Metacello:

Installer ensureRecentMetacello.

From there on, follow the installation instructions for Seaside in Pharo.

Squeak < 5.2

Make sure you have installed Metacello. From there on, follow the installation instructions for Seaside in Pharo.

Install older versions in Pharo or Squeak

To install a version older than 3.1.3, you need to load Seaside from Smalltalkhub:

Metacello new
  configuration:'Seaside3';
  repository: 'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
  version: #stable;
  load

To install a particular version (e.g. 3.1.0):

Metacello new
 configuration:'Seaside3';
 repository: 'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
 version: '3.1.0';
 load

Community

Check out the Add-on libraries and projects related to Seaside: https://github.com/SeasideSt/Seaside/wiki/Add-On-Libraries

We have a low traffic mailing list for questions (sign up here) and a (Smalltalk dialect independant) channel on the Pharo Discord (sign up here).

Contributing

If you would like to contribute, please visit the Seaside's contributors page.

More

Please check the Wiki for more information.

Status of automated builds

smalltalkCI See https://github.com/SeasideSt/Seaside/actions/workflows/ci.yml

codecov