We already talked about Pahvi in our main blog in Finnish. In this English developer’s blog we go a little bit deeper into technical details. For example how it was build and which components were used.


Pahvi walks the same path with Walma as being a tool for enabling student collaboration using computers. The idea in Pahvi comes from collage style group assignments where the students cut and paste pieces from magazines etc. to form a collage. These collages are usually build on cardboard paper. Cardboard paper is ”pahvi” in Finnish, so therefor the name Pahvi.

Pahvi tries to bring this kind of work to the Internet age. Instead of cutting and pasting images from paper magazines students can use any freely available content* from the Internet.

As in Walma, collaborative working is an important aspect of Pahvi. Students are able to edit the same Pahvi from multiple computers and the changes are synchronized automatically between the browsers.


The idea of Pahvi was originally conceived in Janne Saarela’s bachelor thesis and we were given a two week sprint to develop a prototype of it, but Pahvi got surprising amount of traction during the Educa fair and we were given an extra week to develop it. Now after three weeks of hacking Pahvi it is still far from the final product, but it has been already used by various schools in Finland!

Feel free to try it here:


Please send us any feedback to dev@opinsys.fi. Future of this product is based on your feedback! You can also post issues directly to our Github issues list.


The technology stack is fairly similar to Walma. It is running on top of Node.js and client-side code is organized by using Backbone.js. An important part of Pahvi stack is Zoomooz.js library by Janne Aukia. It enables all the cool zooming action in the presentation mode. So in a sense Pahvi is a wysiwyg editor for Zoomooz!

For synchronization we decided to give ShareJS a try. It was a very pleasant experience and we ended up creating a nice Backbone.js adapter for it. We decoupled it from Pahvi and released it under more permissive MIT license. For more experiences about it you can read from this separate blog post.

Pahvi itself is licensed under GPLv2+ and is hosted on Github.

*video support not make into this sprint yet

Esa-Matti Suuronen