Ondřej Žára



JavaScript developer, living in Prague, Czech Republic. Currently employed by Seznam.cz.

Interested in my résumé? Try the GitHub version as well.


Name Description Technologies Source
Railroad Ink TypeScript port of a board game by Horrible Games. TypeScript GitHub
The Curse of the General Sibling Combinator My 7DRL 2019 (7-day roguelike contest) game. A semi-playable roguelike implemented only in CSS. Coffeebreak length. CSS, PHP GitHub
Sleeping Beauty My 7DRL 2017 (7-day roguelike contest) game. A somewhat polished roguelike based on a traditional story and a new-ish combat mechanic. Coffeebreak length. rot.js GitHub
Café Havoc My 7DRL 2016 (7-day roguelike contest) game. A rather traditional roguelike with an unorthodox story/setting. Coffeebreak length. rot.js GitHub
Warden's Duty My 7DRL 2015 (7-day roguelike contest) game. Lacks the traditional roguelike map and features over-sized ascii glyphs. You cannot really win this game, but you can try to get deeper than others. rot.js GitHub
Goldfish My 7DRL 2014 (7-day roguelike contest) game. Playable, winnable, losable. Features colorful and aesthetic maps, aquatic fauna and fishermen! rot.js GitHub
Custom Tetris My take on the GitHub Game Off 2013 contest. Modular Tetris game that offers configurable sides and multiplayer. Firebase GitHub
The Conception My 7DRL 2013 (7-day roguelike contest) game. Contains hexagons. And chlamydia. And much more. rot.js GitHub
The Royal Wedding Another coffebreak roguelike – with story, lighting, zombies and (sometimes) lutefisk! rot.js GitHub
Star Wars Miniature My take on the GitHub Game Off 2012 contest. rot.js GitHub
RailRL Small testbed game: hexes, trains, procedurally generated terrain. rot.js GitHub
Drago HTML5 remake of an old game by Blue Byte Software. Fully playable with cool graphics, animations, sounds and music! HAF GitHub
CSS Blockout 3D Tetris (Blockout) implemented using CSS 3D transforms. Submitted as a demo to Mozilla Dev Derby. Works correctly only in certain Browser/OS/HW combinations. CSS 3D GitHub
Rubik's cube Rubik's cube implemented using CSS 3D transforms. Submitted as a demo to Mozilla Dev Derby. Works correctly only in certain Browser/OS/HW combinations. CSS 3D
Clickmania JS port of a well-known time-killer. GitHub
Just Spaceships! Space shooter game: canvas, sounds effects, animated sprites, AI, websocket-based multiplayer! A presentation documenting the development process is available for online viewing. HAF, WebSockets, TeaJS GitHub
Atoms Traditional "atoms" game, well-known from Windows 3.1. Up to four players; local play with bots, multiplayer using Firebase. Firebase GitHub
Geometry Wars Multiplayer-only game, implemented using WebSockets. Score by drawing longest line; block enemies by placing circles. WebSockets, TeaJS GitHub
Brain Defense Zombies & lasers. What could go wrong? (Non-obsolete browser required.) HAF GitHub
Rogue Zombies Coffeebreak roguelike game. Warning: they will get you. Google Code GitHub
js-like JavaScript roguelike, heavily inspired by ADOM. Google Code GitHub


Name Description Technologies Source
HITMAN Html Infrastructure for Turing Machine ANalysis. Web Components GitHub
Chords Small library for exploring, rendering and working with chord layouts. TypeScript GitHub
<x-range> Styling-friendly replacement for <input type=range> Web Components, CSS Custom Properties GitHub
CYP A web-based MPD frontend with Youtube-dl integration. NodeJS, ES2015+ GitHub
ws2mpd WebSocket–MPD bridge NodeJS GitHub
maslo Scalable Markdown-based HTML slide deck. Watch the sample presentation to see its features. Markdown, CSS Custom Properties BitBucket
CFO A two-pane multi-platform file manager. Electron GitHub
Pandoc filters Small filters for Pandoc: pandoc-dot, pandoc-code-file, pandoc-vlna node.js BitBucket
primitive.js JavaScript port of the primitive.lol image vectorization bruteforcer. GitHub
elm-irc Elm IRC client library, written for Elm 0.17. Elm, WebSocket GitHub
mp Hybrid music player for desktop and the Web. Uses web APIs to play and visualize music. Web Audio API, 2d canvas, ArrayBuffers, ES 2015, Babel 6 GitHub
iv Image Viewer for nw.js and Electron. Unfinished due to poor image loading performance. GitHub
<instant-button> Instant Button Web Component. Colorful. Does sound FX! Web Components GitHub
<fix-me> & <to-do> Semi-serious Web Components Web Components GitHub
My Mind Online Mindmap editor, featuring variable layouts, (computed) values, storage to Firebase/GDrive and much more. Firebase GitHub
ie8eventtarget EventTarget polyfill for IE8, with complete capture support, MouseEvent and CustomEvent. GitHub
promise.js A tiny browser-based implementation of the "Promises/A+" spec. Passes all tests (using a tiny mocha2jasmine adapter). GitHub
JS Style Badge Create your own JS signature, based on your coding preferences. GitHub
rot.js ROguelike Toolkit, written in JavaScript. Cool dungeon-related stuff, interactive manual, documentation, tests! GitHub
HAF HTML5 Animation Framework is used to orchestrate complex canvas-based rendering projects, such as Brain Defense or Just Spaceships. It can be also used to perform several benchmarks and generally experiment with HTML canvas. Google Code GitHub
TeaJS Multi-purpose wrapper around V8 JS engine. Rich set of libraries included, including DB access, POSIX + Web Sockets, Apache module, … V8, C++ Google Code GitHub
Slides Yet another HTML/JS presentation system. Google Code GitHub
WWW SQL Designer Online tool for designing relational database schemas. Features schema saving, exporting to xml and sql script creation. GitHub
Gallery Personal photogallery.
Cookbook Written in PHP, uses MySQL database backend. Contains over 250 recipes. Google Code GitHub
oz.php Tiny PHP framework for rapid application development. Google Code GitHub
SZ Showcase A selection of photos taken in Sluneční zátoka.
Sluneční zátoka Photos from traditional children summer camp with long history and unique atmosphere. Years 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, and 2013.
Fire Commander Traditional two-pane file manager, implemented as Firefox extension / XUL application. Google Code GitHub
Syntax Tiny syntax highlighter. Google Code GitHub

Demos & Experiments

Name Description Technologies Source
Browsershot Utility library for programmatic screenshots via getDisplayMedia. JavaScript GitHub
<ex-ample> Custom HTML Element for interactive HTML/JS code samples. Web Components GitHub
Turtles Cute CSS animation CSS CodePen
Dragons Web-based version of Twenty generations of dragons (an aesthetic rendering of multiple dragon curves) 2d canvas GitHub
Numberwang bot Plays the famous Numberwang game on Twitter node.js, Twitter API GitHub
ws2irc Tiny WebSocket ↔ IRC bridge node.js, WebSocket GitHub
es6-boilerplate Skeleton code for es6-based projects. Uses LESS, Babel 6, Make and inotify. ES 2015, Babel 6 GitHub
elm-slides Simple slide deck written in Elm. Elm GitHub
Shooting the π Monte Carlo method for π approximation. Made for the 2016 pi day. 2d canvas
oscope.js JavaScript oscilloscope. Configurable, supports various input types, has XY mode. Web Audio API, 2d canvas GitHub
Rect-to-Polar converter Converts panoramic pictures into tiny planets 2d canvas GitHub
WebGL Fireworks WebGL + Web Audio API = awesome sound-driven fireworks! WebGL, Web Audio API GitHub
Photo Editor Basic photo adjustments using Web Workers. No server-side necessary. Load, adjust, crop, save, profit :-) Submitted as a demo to Mozilla DevDerby. Web Workers GitHub
Hash Bruteforcer Computes MD5 and SHA1 hashes using Web Workers. Submitted as a demo to Mozilla DevDerby. Web Workers GitHub
Pure CSS slides A non-JavaScript experiment: fully featured presentation system, using only HTML + CSS. No JS
Collaborative Draw WebSockets used to share drawing area. Support for lines, text and images. WebSockets, TeaJS GitHub
Harmoniums of Mercury Semi-interactive homage to Kurt Vonnegut. WebGL GitHub
Space-filling curves Recursive implementation of Peano/Hilbert curves, using canvas transformations.
a-g-e Adventure Game Engine, suitable for playing interactive gamebooks. Sample adventure, Limonádový Joe Google Code GitHub
Coral generator Based on certain Game of Life rules; requires Web Workers. Web Workers GitHub
Worms Canvas-based worm simulation.
Canvas-based e-mail hash Visualizing e-mail addresses using various algorithms.
Canvas fireworks JavaScript fireworks using elementary mechanics, <canvas> and <audio> tags.
Compression benchmarks Trying to compress JSON with algorithms implemented in JS.
Canvas maze Produces a perfect maze and finds the path between two corners. In perfect maze, every two cells are connected with exactly one path.
Web Worker Fractals Interactive fractal drawer. Uses <canvas> and Web Workers (processing in multiple threads). Both Julia and Mandelbrot sets are supported. Submitted as a demo to Mozilla DevDerby. Web Workers GitHub
Derivation Captcha An accessibility experiment. PHP
HEX Creates SVG maps for "Expres" game (Dampfross, Railway Rivals).
Sun Interactive SVG Sun, logo for Sluneční zátoka.
Sudoku solver I wrote three Sudoku solvers. This one is fastest, featuring some optimizations in addition to brute force.



Presentation Language
Pravý význam zkratky IoT (devel.cz 2019) Czech
Pravý význam zkratky IoT (CodeCon.sk 2019) Czech


Presentation Language
async/await (ViennaJS) English
Co nového u JavaScriptu (ES2015+) (madeo.com, Zlín) Czech
Technologie z minulého století (make) (PragueJS 10/2018) Czech
WebGL in Easy Mode (WebExpo 2018) English
Co jste nevěděli o CSS (devel.cz 2018) Czech
async/await v praxi (CodeCon.sk 2018) Czech
async/await v praxi (GDG ČVUT/Prague) Czech


Presentation Language
What's new in ES2017 (WebExpo 2017) English
Věděli jste, že váš prohlížeč umí … ? (čtvrtkon.cz) Czech
Koncepty a triky real-time her více hráčů (devel.cz 2017) Czech


Presentation Language
JavaScript: The Hard Parts (GDG ČVUT) Czech
Going functional with Vanilla JS (ngBigParty III) English, Czech
Jazyk HTML (ČVUT ZWA/WA1) Czech
ES 2015 – Co nového u JavaScriptu (GDG Jihlava) Czech
JavaScript a modularizace kódu (devel.cz 2016) Czech


Presentation Language
JavaScript, vyvíjí se vůbec? (Posezení s vývojáři Seznam.cz) Czech
HTML5 a hry (čtvrtkon.cz) Czech
Výkonné částicové systémy a WebGL (devel.cz 2015) Czech


Presentation Language
Panoramata na mapy.cz (VŠE Web Inkognito) Czech
HTTP/2 Czech
Mapy API (FI MUNI) Czech
Jazyk PHP (ČVUT WA1) Czech
Skriptování na straně klienta (ČVUT WA1) Czech
JavaScriptové API mapy.cz (VŠE Web Inkognito) Czech
Roguelike development in JavaScript (IRDC 2014) English
Méně známé JS tipy a triky Czech


Presentation Language
WebSocket: Provařené i méně známé partie (devel.cz 20132) Czech
HTML5 a Roguelike hry Czech
JS knihovny a další balast v roce 2013 Czech
Mapy API známé i neznámé Czech
Lopaty, krumpáče a kladiva Czech
JIT Compilation Czech
JS Promises Czech
Cross-browser v roce 2013 (Barcamp Praha 2013) Czech
Předmět "Tvorba klientských aplikací v JavaScriptu" na FEL ČVUT Czech
Souřadnice, projekce a šikmé snímky Czech


Presentation Language
HTML5 a CSS3 v praxi Czech
Distribuované verzovací systémy a Git Czech
Den s vývojáři – komplexní JS aplikace Czech
Just Spaceships! – development notes English, Czech
HTML5 (compressed into one talk) Czech


Presentation Language
My job at Seznam.cz Czech
Mapy.cz API Czech
HTML5 for Web Designers Czech
HTML5 (set of four talks) Czech
AJAX Czech


Presentation Language
JavaScript & Seznam.cz Czech
Advanced JavaScript topics Czech


Presentation Language
JavaScript introduction Czech


Name Description
Nelehká na lodi romantika Czech poem about sea. And a ship. And people. And love. And so on.
Petrov, Jeljena a já Another attempt to translate a song by Flight of the Conchords to my native language.
Firebase: krátké seznámení Introductory article about Firebase and its JS API
Moc kolíků na parketu An attempt to translate a song by Flight of the Conchords to my native language.
DOM události: co o nich možná nevíte Less-known properties and features of DOM events for advanced frontend developers.
JSConf.eu 2013 List of talks, slides, youtube links.
Začínáme s WebGL A series of a WebGL-related introductory articles.
JS MVC My critical opinions regarding JS MVC frameworks. Written in Czech language.
Rums Various rums I tasted, categorized and rated.
Comics Well-organized online comics I read.
Android games List of Android games I played (+ their rating).
Plain JS What can you do in plain JavaScript?
JSConf.eu 2012 List of talks, slides, youtube links.

Old stuff

Name Description
oz.js Tiny but smart JS assistance for advanced coders.
Sluneční zátoka – přihlášky Website created to simplify the process of registering and administering attendees of Sluneční zátoka.
Dungeon-related algorithms Maze generation, FOV computation, turn scheduling.
Wild West Browser-based arena for simple but interesting fights of JavaScript AIs, based on a child's play.
Fallout 3 hack tool An attempt to simplify the Fallout 3 hacking process.
WWW SQL Designer 1.x Old version of a popular tool.
Showcase Some fine photos taken with my old and crappy Fujifilm FinePix S5000.
OAT Gallery Open source PHP/JS-based complete personal photogallery solution. Created with OpenLink Ajax Toolkit, with map and timeline.
OAT JavaScript/AJAX toolkit for advanced web development. Has some unique features ;)