Migrated WebDSL builds and tests to Jenkins buildfarm

by Danny Groenewegen at 31 Mar 2015 13:50

For WebDSL compiler and editor building and testing we are now using Jenkins at http://buildfarm.metaborg.org/.

Latest compiler jar can be downloaded from:


Latest Eclipse updatesite is still at:


Ubuntu Server or VPS installation

by Danny Groenewegen at 29 Jan 2013 13:59

I’ve added some more detailed instructions in the manual on installing a WebDSL application and its requirements on an Ubuntu server or VPS.

Lightweight VPS

Nightly Builds

by Danny Groenewegen at 11 Oct 2012 19:39

Nightly builds of the WebDSL Eclipse plugin are available through the update site http://webdsl.org/update/nightly. This provides easy access to the latest developments.

WebDSL Eclipse Plugin 1.2.9

by Danny Groenewegen at 24 Feb 2012 17:05

WebDSL Eclipse Plugin 1.2.9 has been released:

  • Session entities stored entirely in database
  • New syntax for page and template defines (old syntax still supported):

    page root(){},
    template main(){},
    ajax template foo(){}

  • Added db=h2 and db=h2mem options for using H2 database engine

  • Added support for File/Image.download() in page/template init block
  • Extended search capabilities see manual
  • Recommendations see manual

WebDSL Roadmap:

WebDSL Eclipse Plugin 1.2.8

by Danny Groenewegen at 4 Jun 2011 13:45

WebDSL Eclipse Plugin 1.2.8 has been released, new features:

WebDSL Eclipse Plugin 1.2.7

by Danny Groenewegen at 14 Feb 2011 14:08

Version 1.2.7 has been released, noteworthy features:

More information about bugs fixed in this release can be found on the WebDSL Roadmap: http://yellowgrass.org/roadmap/WebDSL

WebDSL Eclipse Plugin 1.2.6

by Danny Groenewegen at 4 Jan 2011 11:39

Version 1.2.6 of the WebDSL Eclipse plugin has been released, this update includes the following changes:

generated spans

In previous versions, spans were generated around template calls. The span elements received a class attribute containing the template name. The no-span template modifier disabled this behavior. no-span is now the default, to avoid cluttering page source with spans. Add the span modifier to templates that were previously using it for matching CSS rules. Since no-span is the default, it no longer has any effect, therefore using it will trigger the following warning:

“warning: The ‘no-span’ modifier is obsolete, spans are no longer added by default.”


Arguments (non-ref) and for loop iterators can no longer be assigned to, this reduces the overhead of lifting (reference argument is not necessary), and it is also a common source of errors (e.g. when forgetting “this.” and assigning to argument in a setter method).
Assigning to such variables will show an error:

“Assignment to this variable is not allowed.”

built-in templates

table, row, column, group (= fieldset containing a table), groupitem (= row)

Tables no longer automatically generate rows and columns. This behavior was not very reliable, especially when working with ajax.
This change also affects group, which uses a table inside. A common pattern was to have a label with input in a groupitem, which automatically generated separate columns for label and input, this can be reconstructed by replacing label with labelcolumns:

labelcolumns("input i: "){ input(i) }
<td><label for="123">input i: </label></td>
<td><input id="123" /></td>


The String argument of the menubar template has been removed. menuitems must be added to applications that were previously using built-in menu templates:

    menuheader{ ... }
--> menuitems{ <---
      menuitem{ ... }
      menuitem{ ... }
--> } <---

WebDSL Tutorial: Event Planner

by Danny Groenewegen at 12 Nov 2010 15:50

The Event Planner application tutorial is now available: Tutorials page

WebDSL Eclipse Plugin 1.2.2

by Danny Groenewegen at 2 Nov 2010 12:58

We have just released version 1.2.2 of the WebDSL plugin for Eclipse (download here). There have been numerous improvements over the last few months:

  • on-save editor analysis of whole project
  • code completion for variable, function and template names
  • syntax templates in action code and template definitions
  • https support (manual)
  • asynchronous emailing (manual)

We are now more actively using the roadmap feature of Yellowgrass, for keeping track of WebDSL improvements and releases: http://yellowgrass.org/roadmap/WebDSL

Plugin Wizard Improvements

by Danny Groenewegen at 9 Jul 2010 17:58

WebDSL Eclipse plugin version 1.1.5 includes improvements to the new project wizard. This wizard will now generate a Tomcat server configuration with settings for increased JVM heapspace and permgenspace, avoiding errors when redeploying. A project build will also automatically start the server and open a browser on the root page when the application is deployed. The new convert project wizard allows converting projects that contain WebDSL code to a proper WebDSL plugin project. It can also be used to repair the project configuration files.

new project
convert project
servers project
servers view

Search WebDSL.org

by Danny Groenewegen at 18 Jun 2010 14:20

WebDSL.org now has search.

Example searches:
ac* con*

Plugin v1.1.1

by Nathan Bruning at 26 May 2010 22:11

We’ve released a new plugin version 1.1.1. The main features of this release are:

  • an up-to-date WebDSL compiler
  • better hover & reference resolving support
  • many performance improvements
  • database integrity checking, as described in the post below

Update your installation using the Eclipse Update Manager.

Please provide any bugs, issues and feedback on Yellowgrass.

Database Integrity Checking

by Sander Vermolen at 25 May 2010 16:00

Manually editing databases, removing database constraints or system crashes can break database integrity. References may break and unique columns may no longer be unique. As of the latest plugin (trunk), WebDSL offers an integrity checker. Targeted at those developers in favor of a little manual database tweaking. Click the ‘Database Integrity Check’ button and you will get a SQL script that prints all database integrity violations. Useful for debugging integrity errors, for reapplying database constraints, or simply for sanitizing your database.

Plugin 1.0.12

by Danny Groenewegen at 31 Mar 2010 14:00

Plugin version 1.0.12 is available, main improvement in this version:

‘build automatically’ no longer has to be enabled in Eclipse, the plugin invokes the Eclipse Java compiler instead of relying on automatic build. Another benefit is that Java compilation errors are more visible (no longer hidden under the ‘problems’ view). If you run into java compilation errors, please report an issue on http://yellowgrass.org/project/WebDSL

Plugin Update

by Danny Groenewegen at 22 Mar 2010 15:25

The plugin has been updated to version 1.0.10. This update includes recent bug fixes in the WebDSL compiler, and also a new code generation cache optimization implemented by Nathan Bruning.

The plugin (full) build now generates three Ant files with a single task, to make the common build operations more convenient to use:


For more information, go to the plugin page: WebDSLplugin

Issue Tracker

by Sander Vermolen at 13 Feb 2010 11:42

WebDSL now has its own issue tracker on YellowGrass. It can be found at:


If you find any bugs, have suggestions for improvements or have any questions, feel free to post an issue.

WebDSL Eclipse plugin

by Danny Groenewegen at 2 Feb 2010 14:59

The WebDSL Eclipse plugin is now available, it includes the WebDSL compiler.

The plugin will be used in the Model-Driven Software Development course for Computer Science MSc students at Delft University of Technology.

installation instructions

If you encounter any issues, or want to give feedback, please use the mailing list:


The Big Scheme of Things: Episode 1

by Eelco Visser at 21 Sep 2009 20:39

“The Big Scheme of Things” is a series of screencasts that illustrates the use of WebDSL, by building a (to-do list) web application from scratch. In the first episode I keep it really simple and create a single page app that allows us to add and remove tasks. First I show how to get an even simpler “Hello web!” app running.


root() is the new home()

by Zef Hemel at 20 Aug 2009 11:15

The main entry point of applications used to be the home() page, but has been renamed to root(), which maps to the / URL. E.g. for an application that is deployed to http://localhost:8080/myapp, the URL http://localhost:8080/myapp/ now dispatches the root() page instead of redirecting to the /home page, which it did before.

If your application does not have a page named root, with no arguments defined, it will give an error message.


by Danny Groenewegen at 19 Aug 2009 11:35

WebDSL applications now (svn revision 2922) explicitly use Unicode (utf-8) characters instead of relying on defaults (which often resulted in latin-1, e.g. in a Mysql database). A tool is provided to convert old databases:

1 backup your database (in case the script needs a fix) with:

mysqldump -u dbuser -p dbname > file

2 install the new webdsl and run:

webdsl cleanall build convert-to-unicode

3 deploy the webdsl app:

webdsl deploy

Some random characters: Ωжன்其भुῶنَб

New Style

by Danny Groenewegen at 17 Jul 2009 17:22

Uploaded a new style for WebDSL.org today. Although WebDSL has some styling abstractions, this was done using a custom CSS. WebDSL templates are automatically surrounded by spans with the template name as class, so it is easy to hook CSS to specific templates.


by Sander Vermolen at 28 May 2009 12:34

Released a data migration tool to automatically migrate WebDSL databases along evolving WebDSL applications. Acoda takes two versions of a WebDSL application and a WebDSL database as input and yields a new WebDSL database conforming to the new application.

Acoda web site

New WebDSL.org

by Danny Groenewegen at 30 Mar 2009 23:30

Welcome to the new WebDSL.org. This site will be the main source of information about WebDSL, a domain-specific language for developing dynamic web applications with a rich data model.