My PWA made with Clojure/ClojureScript exceeded 400 users 🎉
Tags: clojure, showdev, pwa, react
Published: 2019-12-18 15:23:06

This is the 19th article at [Clojure Advent Calendar](https://qiita.com/advent-calendar/2019/clojure).

{% youtube DvJC8z_H_ro %}

Hello there! :)
I'm a Japanese Clojurian. I released a Progressive Web App made using Clojure & ClojureScript, called "Hito Hub".
So I will write about why I made this app and why I chose Clojure.

## About "Hito Hub"

"Hito Hub" is an online pairing service just for avatars living in virtual worlds such as [VRChat](https://www.vrchat.com/), [VirutalCast](https://virtualcast.jp/about/), [YouTube](https://www.youtube.com/) or other platforms.

Usage of "Hito Hub" is very simple. The process of finding other avatars is as follows.

![Usage of "Hito Hub"](https://thepracticaldev.s3.amazonaws.com/i/aavuuzb70jj5dplc4jvq.png)

1. Create your avatar's account using the wizard.
2. Swipe through other avatars to favorite or skip.
3. Several hours later, your avatar may get favorites from other avatars.
4. When your avatar matches with another avatar, you can share your avatar's virtual world accounts :tada: 

As of writing, Over 400 avatars have joined and over 8,000 favorites have been sent.

You can also use "Hito Hub" from the following URL, so please take a look!

![https://hitohub.boxp.tk](https://thepracticaldev.s3.amazonaws.com/i/yna466jzdunm4zn525xh.png)

https://hitohub.boxp.tk

## Motivations

The biggest reason for creating "Hito Hub" was to solve the challenges felt by the Japanese community using the most popular Virtual World of VRChat.
VRChat is a service that allows you to interact with people around the world using purchased or custom avatars. Recently however, most Japanese users play within a private space. So It is very rare to see Japanese people in public spaces.
Recently, an exploit designed to steal avatars was circulated on VRChat.

{% twitter 960577378505379840 %}

Because of this, many Japanese users are choosing to stay in closed communities for protection against these tools.

"Hito Hub" was developed to enable interaction with avatars across closed communities, and Japanese people using VRChat for the first time, to find people who can play together.

Also, posters advertising "Hito Hub" were published VRChat's biggest market festival [Virtual Market] (https://www.v-market.work/).

![Poster advertising "Hito Hub" in Virtual Market](https://thepracticaldev.s3.amazonaws.com/i/y301qty5ycsd52nqvvxb.png)
<figcaption>Poster advertising "Hito Hub" in Virtual Market</figcaption>

## Why Clojure?

"Hito Hub" developed everything in Clojure across the web front end and API server.
I usually write TypeScript and Go language in my usual work, but I love Clojure and personally do almost everything with Clojure / ClojureScript.

Usually, I would develop a PWA like "Hito Hub" using TypeScript + React + Redux, but I've wanted to implement it in my favorite Language Clojure for a while.

So, while creating [Simple sample implementation] (https://github.com/boxp/sample-github-spa) "Hito Hub" was the first prototype that I created to test Clojure/ClojureScript in production.

"Hito Hub" has a PageSpeed ​​Insight score of over 90 points, and I was able to achieve a level of performance equivalent to a more traditional PWA architecture.

!["Hito Hub"'s PageSpeed Insight score](https://thepracticaldev.s3.amazonaws.com/i/fk6j4w7re3pux05dqbma.png)
<figcaption>"Hito Hub"'s PageSpeed Insight score</figcaption>

## Next Step

Although "Hito Hub" is an app with a very limited target for avatars in Virtual World, we are going to continue development because the number of users is steadily increasing even after exceeding 400 users.

For the time being, the Hito Hub concept booth will be on display at the next Virtual Market, and by the time this article was posted, I'm probably fighting with Blender and Unity :sweat_smile:

That's all!
Have a nice year:)

Thanks for proofreading [@jonymul](https://twitter.com/jonymul) :pray: