A headshot of Louis.

Louis Ritchie

Programmer from Victoria startup scene

Full-Stack Web Development & Design

Seeking Full-Time Remote Employment

This is the wordmark & branding. The font is Urbanist.
Phone users can use the charts without issue.
This is the tablet or laptop view.
The tokens page, which can be sorted & filtered.
This is the main chart, showing a tooltip overlay. Notice the simple toolbar.

What is TokenHydra?

TokenHydra shows you the price action of all your favourite cryptos in a single chart. It does a beautiful job of charting ten or more crypto prices at the same time, and allows you to easily explore other combinations of tokens. It is powered by a database which collects minutely price data for two hundred cryptocurrencies. The indexed database can quickly provide data to the React frontend, where thousands of price points are carefully combined into TokenHydra’s pleasant and intuitive charts. Even on mobile devices, the experience and usability of these charts far exceeds that of it’s competitors.

Improving on existing charts

Existing crypto charting sites are hard to navigate through and offer too little insight into how one token's price fits within the market. Those sites may offer a search feature to find a specific token, but what if you just want to browse? I couldn’t find a charting site which allowed easy & fun browsing of cryptos. I grabbed the bull by the horns and built something better from the ground up. My product, TokenHydra, provides lots of insight by charting many cryptos at once, allowing users to quickly identify the outliers, or to grasp broad trends. When the user’s focus drifts to the suggested charts shown at the top & side, they see a preview of how those cryptos are doing, and may click them to bring them into the main chart. This is how TokenHydra gives greater insight & usability.

Beautiful layout & colours

I went with a layout based on fractions of 24: The main chart’s height is 15/24 of the screen height, and it’s width is 12/24. The spacing between components is 1/24. The design process started by examining how space is divided on the page of a textbook. I chose margin sizes & content sizes which roughly match those proportions. A particularly compelling component is the Token Selector; it overlays the main chart with a grid of tokens to add to your current chart.

This opens over the main chart, and gives you access to a selection of tokens.
My plans for the mobile layout.
This is the primary design document for the layout.
This was the first real design document. Layout came first for this project.
Here is an early set of colours picked for the app. I used www.coolors.co to choose the primary colours.
Here is another colour document.

The tech stack

This is a NextJS project. The frontend uses D3 within React. It's all written in Typescript. I did the styling entirely using MUI’s SX prop. Great care was spent on responsiveness of the layout.

The backend is not separate. It’s built with NextJS API routes (/pages/api for you NextJS afficionados). The backend is constantly receiving data from a data agent which collects data from several places.

It’s deployed to a $20/month AWS instance, and has blue/green deployments for the data agent, for the staging environment, and for the production environment. All parent Node processes are managed by systemd. I spent time keeping the memory usage down. I really get a kick out of running this big app on such a small AWS instance.

Related Projects