Frontend projects


For a long time I wanted to experiment with TypeScript and Electron. I chose to create a native file manager using these technologies: this looked like an interesting project with enough challenges.

React-Explorer makes use of the following:

  • Mobx: reactive state management
  • Blueprintjs: a beautiful React UI toolkit
  • decorators
  • CI testing with Travis, Jest, Cypress

I wrote about it:

Electron: how to configure NodeJS and runtime Chrome flags

Modplayer-JSAudio WorkletMaterial Design Lite

I have always been a fond of Amiga like modules and have wondered how it worked so when I heard about the new Audio Worklet API it would be a good idea to create a module player to experiment with this new API.

Modplayer-js features:

  • AudioWorklet API
  • automatic fallback to ScriptProcessorNode API on older browsers
  • playback of Amiga 4 channel Sountracker/Noisetracker mod files with 4 channels and 15-31 instruments

I wrote about it:

webaudio: from scriptProcessorNode to the new AudioWorklet API

AthenaJS-TetrisES2015Canvas API

AthenaJS Tetris is a full game that's using the game engine AthenaJS I wrote. I have written and released it so that it can provide a tutorial on how to write a simple but complete game using my engine.

cat-hexNode.jsfs API

cat-hex is a simple CLI tool for viewing heaxdecimal content of binary files that I have published on npm. It makes use of Node.js FS API and process based signals.

I wrote about it:

Dealing with process signals with Node.js


AthenaJS Samples is a tutorial for the AthenaJS game engine. It is an introduction on the following components of the engine:

  • Drawables: the simplest drawing class
  • Basic Behavior
  • Scene Effects
  • Sound with panning
  • Map: scrolling

AthenaJS webpack starter templatewebpack

AthenaJS webpack starter project is a ready to use project bootstrap for AthenaJS:

  • Webpack configuration file
  • Transpilation from ES6
  • Ready to use webpack dev-server


pcx-js is a JavaScript PCX decoder for NodeJS & Browser:

  • Works on NodeJS & the Browser
  • Supports 4bit/8bit/24bit PCX variants
  • Published on npm

AthenaJSES 2015Canvas APIGamepad API

AthenaJS is a complete 2D Game Engine written using ES2015 which features:

  • Unlimited number of scenes with an unlimited number of sprites
  • Image-based Sprites with any number of animations
  • Tiles-based Maps with horizontal & vertical scrolling
  • Scene transition effects like Fades, Mosaic can be easily added
  • Map VS Sprite and Sprite vs Sprite collision detection
  • Map Triggers support
  • Sound support with volume and horizontal panning
  • Keyboard & Joystick input event supported

I wrote about it:

Optimizing the Canvas HTML5 element

AthenaJS Gods demoES2015AthenaJS

Gods is the first demo that was written using AthenaJS. It is a partial faithful reimplementation of the first level of the Game Gods from the Bitmap Brothers.

It features:

  • maps with tiles & tile behaviors
  • map triggers based on player position & other conditions
  • enemy waves
  • tile-based collision detection
  • map vertical & horizontal scrolling
  • png-based sprites and bitmap fonts
  • sprites collision detection
  • special effects like SNES-like mosaic & sprite rotation

JQ-JSjQueryvanilla JS

jq-js is an experimental jQuery modular reimplementation. I was always curious of how this wonderful library worked so I decided to write my own version to learn more about it.

jq-js features:

  • Implements a subset of jQuery 1.8 API
  • Fully modular: a build can contain any predefined module

Brackets regex-diagram extensionvanilla JSBrackets

Brackets regex diagram is a regular expression railroad diagram view for regexp under the cursor. It allows to visualize the diagram of the regex without leaving Brackets.

Deferred standalone implementationvanilla JSDeferred

deferred-js is a tiny implementation of Deferred-based promises which features:

  • compatibiity with jQuery.Deferred
  • very small footprint: < 1kb gzipped

Mobile development

Modplayer-iosSwiftAV Foundation

Modplayer-ios is a direct port of my JavaScript Amiga protracker module player that's using Swift 5.

WPFunJavaAndroid Studio

WPFun is the Android companion App for Windows Fun.

I wrote about it:

Android: how to use slide transitions in activities?