All Projects → SeasideSt → Seaside

SeasideSt / Seaside

Licence: mit
The framework for developing sophisticated web applications in Smalltalk.

Programming Languages

smalltalk
420 projects

Projects that are alternatives of or similar to Seaside

Circle Menu
⭕️ CircleMenu is a simple, elegant UI menu with a circular layout and material design animations. Swift UI library made by @Ramotion
Stars: ✭ 3,306 (+869.5%)
Mutual labels:  component
Vue.isotope
📱 Vue component for isotope filter & sort magical layouts
Stars: ✭ 326 (-4.4%)
Mutual labels:  component
Config
The Config component helps you find, load, combine, autofill and validate configuration values of any kind, whatever their source may be (YAML, XML, INI files, or for instance a database).
Stars: ✭ 3,671 (+976.54%)
Mutual labels:  component
React Component Library
A project skeleton to get your very own React Component Library up and running using Rollup, Typescript, SASS + Storybook
Stars: ✭ 313 (-8.21%)
Mutual labels:  component
Dom Crawler
The DomCrawler component eases DOM navigation for HTML and XML documents.
Stars: ✭ 3,499 (+926.1%)
Mutual labels:  component
Cache
The Cache component provides an extended PSR-6 implementation for adding cache to your applications.
Stars: ✭ 3,606 (+957.48%)
Mutual labels:  component
Xweb
High performance async web framework.
Stars: ✭ 314 (-7.92%)
Mutual labels:  webframework
React Star Rating Component
Basic React component for star (or any other icon based) rating elements
Stars: ✭ 337 (-1.17%)
Mutual labels:  component
Synedit
SynEdit main project
Stars: ✭ 324 (-4.99%)
Mutual labels:  component
Joy
A full stack web framework written in janet
Stars: ✭ 327 (-4.11%)
Mutual labels:  webframework
Vue Picture Swipe
🖼 Vue Picture Swipe Gallery (a gallery of image with thumbnails, lazy-load and swipe) backed by photoswipe
Stars: ✭ 322 (-5.57%)
Mutual labels:  component
Polyfill Php70
This component provides features unavailable in releases prior to PHP 7.0.
Stars: ✭ 3,270 (+858.94%)
Mutual labels:  component
Fastify
Fast and low overhead web framework, for Node.js
Stars: ✭ 21,489 (+6201.76%)
Mutual labels:  webframework
Security Acl
Symfony Security ACL Component
Stars: ✭ 321 (-5.87%)
Mutual labels:  component
Vue Designer
Vue component design tool
Stars: ✭ 333 (-2.35%)
Mutual labels:  component
React Querybuilder
A QueryBuilder component for React
Stars: ✭ 315 (-7.62%)
Mutual labels:  component
React Music Player
🎵 Maybe the best beautiful HTML5 responsive player component for react :)
Stars: ✭ 321 (-5.87%)
Mutual labels:  component
React Hint
Tooltip component for React, Preact, Inferno
Stars: ✭ 338 (-0.88%)
Mutual labels:  component
Dependency Injection
The DependencyInjection component allows you to standardize and centralize the way objects are constructed in your application.
Stars: ✭ 3,635 (+965.98%)
Mutual labels:  component
React Virtualized Tree
A virtualized tree view component making use of react
Stars: ✭ 328 (-3.81%)
Mutual labels:  component

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:

  • Programmatic HTML generation. A lot of markup is boilerplate: the same patterns of lists, links, forms and tables show up on page after page. Seaside has a rich API for generating HTML that lets you abstract these patterns into convenient methods rather than pasting the same sequence of tags into templates every time.

  • Callback-based request handling. Why should you have to come up with a unique name for every link and form input on your page, only to extract them from the URL and request fields later? Seaside automates this process by letting you associate blocks, not names, with inputs and links, so you can think about objects and methods instead of ids and strings.

  • Embedded components. Stop thinking a whole page at a time; Seaside lets you build your UI as a tree of individual, stateful component objects, each encapsulating a small part of a page. Often, these can be used over and over again, within and between applications - nearly every application, for example, needs a way to present a batched list of search results, or a table with sortable columns, and Seaside includes components for these out the box.

  • Modal session management. What if you could express a complex, multi-page workflow in a single method? Unlike servlet models which require a separate handler for each page or request, Seaside models an entire user session as a continuous piece of code, with natural, linear control flow. In Seaside, components can call and return to each other like subroutines; string a few of those calls together in a method, just as if you were using console I/O or opening modal dialog boxes, and you have a workflow. And yes, the back button will still work.

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 or Squeak. 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.2.1):

Metacello new
 baseline:'Seaside3';
 repository: 'github://SeasideSt/Seaside:v3.2.1/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. 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.
  1. 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 Squeak

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

See the travis dashboard: https://travis-ci.org/SeasideSt/Seaside/branches

master

Pharo Squeak GemStone/S
Build status: Pharo-9.0 Build status: Squeak-5.3 Build status: GemStone-3.6.0
Build status: Pharo-8.0 Build status: Squeak-5.2 Build status: GemStone-3.5.4
Build status: Pharo-7.0 Build status: Squeak-5.1 Build status: GemStone-3.4.5
Build status: Pharo-6.1 - Build status: GemStone-3.3.9
Build status: Pharo-5.0 - Build status: GemStone-3.2.17
Build status: Pharo-4.0 - Build status: GemStone-3.1.0.6

development

Pharo Squeak GemStone/S
Build status: Pharo-8.0 Build status: Squeak-5.2 Build status: GemStone-3.5.4
Build status: Pharo-7.0 Build status: Squeak-5.1 Build status: GemStone-3.4.5
Build status: Pharo-6.1 - Build status: GemStone-3.3.9
Build status: Pharo-5.0 - Build status: GemStone-3.2.17
Build status: Pharo-4.0 - Build status: GemStone-3.1.0.6
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].