I recently built satoshiprices.com, an online tool that lets you calculate the conversion rate from one cryptocurrency to another. It only took me a few days in total, spread out over a month or so. Here’s how I did it.
Step 0 – Idea
I recently had a need to find the price of a Satoshi (100 millionth of a Bitcoin) in Pounds. And there wasn’t a good tool for it. There were a few websites, but the user interfaces weren't very good, and I knew I could do better.
I know a bit about cryptocurrency APIs, and I knew I could build something like this without too much trouble. I also knew that I could get a simple version built and launched quickly.
At this stage, I also spent about an hour looking for competitors (I couldn't find any). I also looked for websites that allowed users to calculate coversion between two fiat currencies, for example Euro to Dollars. Looking at those sites gave me some ideas for how my site should look and work.
Step 1 – Connect To An API for price data
First things first, I needed a way to get live price data so that I could do the conversions. I was already aware of the Cryptocompare API, which gives price data for over 1000 crpytocurrencies. The documentation for the API is very good, it's free and it works well.
Step 2 – Build super simple version
The first version had the minimal amount of code to make it work. So the website had just two dropdown boxes for currency 1 and currency 2, and two input boxes for the amount of each currency, with nothing else and no styling.
Step 3 – Fix bugs
My friend Kenny is a website tester, and I happened to be staying with him when I built the super simple version. I asked him to take a look, and within about 5 minutes he had discovered about 10 bugs I wasn’t aware of. So I fixed them, thanks Kenny.
Step 4 – Too many coins
I added every coin from the API – over 1000 coins. That all worked, but it meant there were a lot of API calls to get all the data (about 15 calls every time the page was loaded). Also, having so many coins introduced a new problem, that it was now difficult for a user to find a specific coin. A dropdown box with 1000 options is not fun or easy.
Solution 1, an autocomplete box. My first idea to fix this was to build a text box that the user could type in, and that offered autocomplete suggestions for coins. So if the user types “Bit”, it suggests Bitcoin (as well as some others). This worked okay, but it wasn’t really intuitive like a drop down box, and it made the whole user experience a bit clunky.
Solution 2, limit the options. My second solution for dealing with so many coins was simply not to deal with so many coins. I limited the coins to the top 100 coins. That would cover the vast majority of use cases. This also meant that I was making less API calls per user, so I figured this was a good option for now.
In the future, it would be worthwhile to add all the coins. I could maybe add a button to “Get more coins”, which opens up all 1000 coins. Or maybe I could build some kind of smart way for the user interface to work better with 1000 coins.
Step 4 – Add in price tables
At this point, the functionality of the site worked well enough, but it was very bare. I thought it might be a good idea to add in price tables for the major currencies, and so I did.
Step 5 – Make it look pretty
I like simple and bold designs, and so that was what I went for.
I slapped on the bootstrap design framework, added some colour, made it mobile friendly, and made the headings bright and bold. I kept the whole thing simple, which is usually better for the user. It's also generally easier to make a simple design look good.
After trying a few fonts I decided on using Lato for everything, which is a versatile font that is friendly yet formal. Perfect.
Step 6 - Make it reactive
I decided not to have a “Calculate” button, but instead to simply calculate everything every time a user makes a change. This works well because the calculations are built to be super quick, and all the data is stored in the browser in a way that is really fast to access. So the whole thing feels quick and reactive.
At this point, I also set the price tables to update with whatever coins are selected, which I think is a nice feature.
Step 7 – Release (by accident)
That blew up, the post got over 140 upvotes, got to the front page of the cryptocurrency subreddit, and gave the site 1400 sessions. The feedback was overwhelmingly positive, and I got some good ideas of how to improve the site, and some good information about my competitors.
Step 8 – Social Bar
I woke up the next morning and checked the site, I was still getting a lot of traffic. I realised that I should be making the most of this traffic. So in about an hour I installed a social media sharing bar from sharethis.com.
Over the next day, I got about another 500 visitors and about 50 social media shares. The social media bar continues to work great, and I get a share from about 1 in every 10 visitors.
Step 9 – Marketing
Over the next 3 weeks the traffic dropped down to about 10 to 20 visitors a day.
Yesterday, I did some new marketing on facebook, twitter and medium. That gave me a small traffic bump of about 100 new visitors, and some more social shares.
I also started the process of getting featured on Product Hunt, and I contacted a few cryptocurrency news sites to see if they would write a story about satoshi prices, and I’m still waiting to hear back.
Step 10 – Next Steps
The next step is to add some more functionality to the site, and to get more visitors.
Here is the new functionality I want to build:
- Users should be able to calculate conversions for all 1000 coins, either as basic functionality of with an option to “Add More Coins”.
- A historical price graph would be nice. It’s challenging to do this and keep everything super quick.
- I should make things more Google friendly. I haven’t done anything on this at all yet.
- Generate pages and a link structure. At the moment, everything happens on one page. It wouldn’t be too difficult to generate pages for every cryptocurrency pair. That would give me 1000 x 1000 pages – so 1,000,000 pages. That should help grab some traffic from Google, especially on long tail keywords.
To add those features well, I will probably need to change the structure of the site so there is a database and proper web server. That’s no problem, but it will probably all take another week.
I'll also keep up the marketing efforts. I'm encourgaed by the positive feedback I have had, and the fact that people often share the site on social media. What I really need is an influencer, or product hunt, or some other crypto news site, to pick it up and give me a massive traffic spike.