My story: RanPic
JavaScript
TypeScript
Vue.js
Vite
Tailwind CSS
Worker API
OffscreenCanvas API
PWA
PHP
An offline progressive web app that generates random pictures.

RanPic is a random avatar (or abstract image) generator. Select a hue and generate a random avatar for your profile picture. The app creates a random kaleidoscope-like image made of triangles and circles on a white, black or transparent background. You can select the hue and average saturation for the shapes.
This project was inspired by Identicons, which are used as default avatars on GitHub. I decided to make something more variable and customizable, and this is the result.
Originally, the idea of the project was implemented in PHP, but I later rewrote it and developed further in Vue. The app uses the standard Worker API. The worker runs as a separate thread to render the image using OffscreenCanvas API. Since the app is completely static, I used Netlify to host it.
This app is also a Progressive Web App (PWA), so it can be installed on a mobile device and run offline. I used Vite-PWA to automatically generate the service worker at build time.