Latest demo app

An experiment: create a cool looking quality app for 3 platforms in a few days.

EventApp - fast PWA app for iPhone & Android & desktop

May 2019

Progressive web app, PWA, is a natural evolution of the web. It provides extensions for building cross platform web apps that behave like mobile apps, using common web tools, developing fast with quick iterations. I believe PWA is an important addition to the web and have invested time to learn it.

EventApp is my latest side project, a demo app of a conference or concert guide which helps visitors to list the presentations, companies and speakers of an event, see their locations on a floor map and read info about the event. It provides blazing fast UI, visual candy and operates completely offline. Tech stack allows rapid & cost-effective development, branding and publishing for event organizers. The future is here.


Open source projects

Yep, I do like building stuff. I have open-sourced 3 Chrome extensions, Vue and React starter kits, python REST server and whatnot.

Tomitool VSCode extension

June 2022

Tomitool is a VSCode editor extension to add custom tokenization and colorization to plain text files, to help me master note editing as I did with Vim before jumping into VSCode.

Tiny Notes - mobile notes app

June 2021

Tiny notes is a mobile notes PWA app that provides the essential note taking features in a small package. The user interface is minimal but functional. The codebase is only about 700 lines of code, easy to extend.

It was always a huge struggle to find the perfect notes app in the app stores. No more. This is the best notes app for myself and I can add a new feature instantly.


RESTPie3 - Python REST API starter kit

September 2018

A lightweight REST API server implemented in Python3 offering essential web service features in a simple package. Practical and clean codebase that relies on few core components that do the job well. Fork and create your own REST API server quickly.

Sample movie CRUD API serves the Vue & React front-end kits below.

Vue + Nuxtjs + Vuex starter

August 2018

Vue/Nuxtjs starter kit to create a modern front-end quickly - basic CRUD, Axios/Localstorage, VueX state management, SASS, static site export.


React + Nextjs + MobX starter

August 2018

React/Nextjs starter kit to create a modern front-end quickly - basic CRUD, Axios/Localstorage, MobX state management, SASS, static site export.


Page Size Inspector - Chrome ext

September 2016

My 3rd Chrome extension for developers - reports page size, cache usage, network requests, fast and concisely.

Chrome store


My old blogs, plus open source code. Nowadays I prefer writing code over blogs.

Responsive HTML5 image gallery tutorial

January 2014

A tutorial explaining the building blocks of a responsive, fast, touch-friendly, native alike image gallery HTML5 application.


Mapcolorizer.js: Choropleth maps with Leaflet

November 2013

A jQuery plugin that colorizes GeoJSON polygons on a map. Based on leading open-source Javascript mapping library Leaflet.

See plugin live at, an educational site showing statistical data of Finland's 320 communes.


My favorite Javascript + jQuery boilerplates

January 2013

My favorite boilerplates for Javascript and jQuery. Plus simple dynamic loading of scripts. And a demo.

Android & iOS screenshot fetcher

November 2012

A python script to fetch screenshots of the top ranking Android and iOS apps from the App Store and Google Play, and build a montage of the screenshots.

Tools: Python + lxml + ImageMagick.

Quick source viewer - Chrome extension

July 2012

Quick source viewer is a Chrome extension that shows you the HTML, Javascript and CSS source files of a page in a fast and compact way.

Chrome store

Save CSS - Chrome extension makes you fly

April 2012

Save CSS is a Chrome extension that speeds up your web UI development workflow by automatically saving your CSS and Javascript modifications in Chrome Developer Tools into the local disk.

This post explains how to use the extension and how the extension works internally. Sources available in GitHub.

Chrome store

Multi-touch events playground

March 2012

Play with browser touch events. See the flow of events and their data.

Sample Javascript code included.

Django, SQLite and writes

February 2012

SQLite embedded database has transactions, and simultaneous writes from multiple processes are properly queued. Tests in a Django environment.

Tech stack of my blog

February 2012

A post about the technology stack and setup of blog.

Python, Django, nginx, uWSGI, SQLite, memcached, Upstart, Ubuntu.

Hello World!

February 2012

I've finally started my own blog!