Skip to content
Jerome Mouneyrac blog
Share
Explore
Jerome Mouneyrac blog

I created a crypto tracker in 2017

In 2017, like many developers, I got curious in crypto. Also, my bad habit came into play. I did an app -
. A crypto tracker to identify undervalued coins in term of supply. You probably won't understand my supply calculation but don't feel bad - it comes from my mind.
Since I released the web app, all the API endpoints have changed or died. Yesterday, I took advantage of my holidays to fix them. The project is back up and running. Such a nice feeling to bring back an old project to life.
It is a progressive web app. It works offline and should behave well on mobile browsers. The mobile experience is slightly different from the web experience. Let me know what you think on Twitter; I know you won't.
In term of architecture, I used React table v6, Firestore, Cloud functions, new crypto APIs that will die soon again with my luck and FlowType.
About FlowType, I forgot how nice it was. Flow feels less an obstacle to produce code than Typescript does - at least from my experience. It makes the code much more readable as I was not forced to type every single plugin, function and parameter. However it still provide some type checking benefits. To my big surprise, it was a piece of cake to change the API, especially the end point retrieving all coins. I updated my coin type file, and the function matching the API object to the code object. And it worked at first run.By the way, the project does not use redux - and I don't think it needed it - even at that time when redux was the number one state management solution. It felt nice to go back to a simple React architecture.
Finally, Firebase is the backend. I did not write any backend. Serverless and very little devop - I love Firebase!

Screen-Shot-2021-07-09-at-1.08.57-pm.png
Desktop version

Screen-Shot-2021-07-09-at-1.10.16-pm.png
Mobile version

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.