Book Image

Opa Application Development

By : Li Wenbo
Book Image

Opa Application Development

By: Li Wenbo

Overview of this book

Opa is a full-stack Open Source web development framework for JavaScript that lets you write secure and scalable web applications. It generates standard Node.js/MongoDB applications, natively supports HTML5 and CSS and automates many aspects of modern web application programming. It handles all aspects of web programming written in one consistent language and compiled to web standards.Opa Application Development is a practical,hands-on guide that provides you with a number of step-by-step exercises. It covers almost all aspects of developing a web application with Opa, which will help you take advantage of the real power of Opa, as well as building a secure, powerful web application rapidly.Opa Application Development dives into all concepts and components required to build a web application with Opa. The first half of this book shows you all of the basic building blocks that you will need to develop an Opa application, including the syntax of Opa, web development aspects, client and server communication and slicing, plugin, database, and so on. By the end of the book you will have yourself created a complete web application along with a game: Pacman!
Table of Contents (18 chapters)
Opa Application Development
About the Author
About the Reviewers

Setting up editors

You can write Opa codes with any text editor you like, but a good editor can make coding easier. This section is about setting up editors you may commonly use. For now, Sublime Text is the most complete Integrated Development Environment (IDE) for Opa.

Sublime Text

Sublime Text ( is a sophisticated text editor for code, markup, and prose. You can download and try Sublime Text for free from

There is an Opa plugin that offers syntax highlighting, code completion, and some other features. To install the plugin, follow these steps:

  1. Get the plugin from

  2. Move it to ~/.config/sublime-text2/Installed Packages/ (in Linux), or %%APPDATA%%\Sublime Text 2\Installed Packages\ (in Windows), or ~/Library/Application Support/Sublime Text 2/Installed Packages (in Mac).

  3. Start Sublime and check if the menu entry (View | Syntax | Opa) is present. If everything goes well, the file with the .opa extension should automatically have its syntax highlighted. If not, please make sure you are using the Opa plugin (View | Syntax | Opa). We can navigate to Edit | Line | Reindent to auto-indent the Opa code.


Vim ( is a highly configurable text editor, freely available for many different platforms. The Opa installation package provides a mode for Vim at /usr/share/opa/vim/ (for Linux) or /opt/mlstate/share/opa/vim/ (for Mac OS). To enable Vim to detect Opa syntax, copy these files to your .vim directory in your home folder (create it if it does not exist already):

  • On Linux, type the following command:

    $cp –p /usr/share/opa/vim/* ~/.vim/
  • On Mac OS, type the following command:

    $cp –p /opt/mlstate/share/opa/vim/* ~/.vim


On Mac OS X, you can either use Aquamacs and the package installation will take care of it, or you should add the following line to your configuration file (which might be ~/.emacs; create it if it does not exist already):

(autoload 'opa-classic-mode "/Library/Application Support/Emacs/site-lisp/opa-mode/opa-mode.el" "Opa CLASSIC editing mode." t)
(autoload 'opa-js-mode "/Library/Application Support/Emacs/site-lisp/opa-mode/opa-js-mode.el" "Opa JS editing mode." t)
(add-to-list 'auto-mode-alist '("\.opa$" . opa-js-mode))
(add-to-list 'auto-mode-alist '("\.js\.opa$" . opa-js-mode))
(add-to-list 'auto-mode-alist '("\.classic\.opa$" . opa-classic-mode))

On Linux, add the following lines to your configuration file:

(autoload 'opa-js-mode "/usr/share/opa/emacs/opa-js-mode.el" "Opa JS editing mode." t)
(autoload 'opa-classic-mode "/usr/share/opa/emacs/opa-mode.el" "Opa CLASSIC editing mode." t)
(add-to-list 'auto-mode-alist '("\.opa$" . opa-js-mode))
(add-to-list 'auto-mode-alist '("\.js\.opa$" . opa-js-mode))
(add-to-list 'auto-mode-alist '("\.classic\.opa$" . opa-classic-mode))

For Eclipse, the experimental plugin is available at