Hi, I'm Zoran Ravic, developer and designer.

I also like to work on open source projects in my spare time.

Get in touch or keep scrolling.


About me

I was first introduced to programming in highschool where I developed passion for C++ and PHP.

After highschool I got interested in game development and worked as a freelance game dev while studying computer science.

Unfortenatelly the university program I was taking had a big focus on math, physics and low level programming, which I didn't know when applying.

A year before graduating I decided to drop out and set off to find a job using my the newly acquired skills of being able to recreate the C compiler in case the nuclear fallout destroys all existing copies.

I soon got employed at a local IT company working as a PHP developer where I switched interests to React and TypeScript.

I then went on to develop open source projects.


Web Framework targeting TypeScript developers


After using express.js I've decided that I need a new framework that lets me exploit all of TypeScript's features.

Static Sites

Modern sites tend to be developed as single-page apps with an api backend and developing both the frontend and backend in the same framework makes the workflow much smooter.

Additionally static sites can be used for sites where only admins can edit the content, such as personal websites and blogs.


Originally the main use case for the framework was to make developing an extensible GraphQL api as easy as possible.

For this putpose I developed a plugin-based library that can be used with zox.js as well as other frameworks like express.js.


React is the most popular framework for developing single-page apps, so having built-in support for server-side rendering is a must.

Virtual Elements

Minimalistic JSX


JSX is a pretty handy way of generating HTML elements, but for simple use cases importing React is too big of an overhead.

In Node.js

The main use case is serializing the VElements to a string for use in static sites.

It has a big advantage over React here in that it does not need to include comments and metadata in the output.

In the browser

Same as with React you can generate HTML elements and use event listeners, but VElement.js has no state management system.

Compatable with React

A really neat thing about VElements is that, since they also use the same JSX syntax they can easily be converted to React elements.

This means that any script that returns VElements as output can easily be used in a React project.

Svg Textures

SVG utilities based on Virtual Elements

Easy to use

The utility allows you to create interesting SVG backrounds with just a single function call.

The demo page contains a long list of sample patterns which can be edited live in the browser.

React compatable

Since the utilities return VElements this tool can easily be used in a React project.