A side project to learn about crypto/blockchain - TopOfTheCoins.com
One of my goals for 2018 is to learn more about crypto and blockchain, as the space is growing so quickly and is clearly the future.
There's no better way to learn than by jumping in the deep end, so I decided to:
1) Build a crypto-related project and learn the Coinbase API
2) Invest a very small amount of money in a few coins to see how it all worked (turns out that it's not easy to buy altcoins as a first-timer!)
TLDR; For those who just want to know about the project... I ended up building a pretty simple and fun site using the Coinbase API: https://www.topofthecoins.com/. The idea is that you can post a message to the website using nothing but a single transfer of Ethereum currency to a designated address. The idea is that this could potentially become the "MillionDollarHomepage" of the crypto age.
Getting started
Making money wasn't really a big objective of this project, but is obviously always a welcome byproduct! The MillionDollarHomepage idea popped into my head, so I got thinking about how I can do something similar, but not identical, in the crypto space. This is either going to make me a fortune, or basically nothing. We'll see!
The main goals of the project were:
- Learn about crypto
- Learn some new tech
- Make some spare change £££
The idea
I didn't have a huge list of ideas. Given that all I wanted to do was get stuck in to something crypto-ish, I pretty much went with the first one I thought of, which was... to be able to post a message to a website simply using a Bitcoin address and a small transfer of Bitcoin.
The idea is that to post a message on the site, you must transfer some Ethereum (a cryptocurrency like Bitcoin) to a designated address. The message that transfers the most Ethereum is the one that will remain at the top of the web page. Additionally the most recently posted message will take a small space at the top of the site, but less prominently than the top message.
Bitcoin vs. Ethereum
I thought Bitcoin originally simple because it's the posterboy of crypto. I didn't know that I needed to put any thought into the consequence of choosing Bitcoin vs. any other cryptocurrency. Turns out they all have pros and cons. Bitcoin seems to have more cons than pros from a technical perspective!
To send Bitcoin to someone, all you need is their Bitcoin address, which looks like this: 1GzuXrA9ToB7A6RAWfdA5rN8HuJpEdBZVG. The only inputs required are address and amount. I had 2 major misconceptions about Bitcoin when I started this project, which were:
- I thought that Bitcoin transactions were feeless. This isn't true - the current cost per Bitcoin transaction is actually around ~$14! Hardly free.
- I thought that Bitcoin transactions were instant. Nope. In the last month, the Bitcoin transaction time has ranged from 60 minutes, all the way to 3,500 minutes. That's insane.
My choice for other coins was limited not only because I'd already started integrating the Coinbase API, but also because unless a coin is widely held, nobody is going to use it to send a message on my website!
I chose Ethereum, which has transaction costs of around ~$0.30 and transaction times of up to a few minutes.
Starting to build
Whenever I build a side project, I always try to integrate with something that I'd not previously used. A new tech, frontend framework, build tool, certificate, open source project, database, etc. This gives me some upside even if the main objective doesn't pay off. Another example of this is when I built a website to reach out to Sir Richard Branson.
The new thing for me to use this time round happened to be Bootstrap 4, a popular frontend (CSS/JS) framework. I used to use Bootstrap all the time (2 and 3), and then for a number of years switched to Zurb Foundation.
Another new thing I wanted to learn was how to post Tweets using the Twitter API.
When it comes to startups and web dev, I subscribe to the agile methodology and the lean startup way of doing things. I wanted to get something out of the door as quickly as possible, so I built the absolute minimum set of features needed to get it in front of my prospective users.
The very first version didn't actually look all that different to the current version, it was just a little bit worse... For instance, form validation didn't work properly, Tweets weren't automatically posted, and links didn't automatically turn into a clickable hyperlink. I also forgot to install the Google Analytics script, and I didn't have event tracking implemented. Rookie mistake!
I've also made the conscious decision to not optimise too soon. E.g. the site could definitely be faster by caching database queries and reducing the size of the CSS, Javascript, and image files. ...but I really don't care about squeezing milliseconds off the load time for a throwaway project like this.
Here's the finished product as it stands today:
Making it look nice
Bootstrap does a good job with most of its default styling, but I did have a bit of tidy up in terms of colour scheme, background images, borders, etc.
I also put together a really quick logo, which was needed anyway for the Twitter account. Here's the initial mockup from 5 minutes working in Sketch (the square icons were used to post on ProductHunt.com:
Finishing the project
So I ended up building a pretty simple fun site using the Coinbase API: https://www.topofthecoins.com/. FYI Coinbase.com is the biggest and most reputable marketplace for cryptocurrencies.
It's just a bit of fun really. I've accomplished my primary objectives of expanding my brain into the topic of crypto. Though, the more I learn about this stuff, the more I realise I don't know. It's a massive, really exciting rabbit hole which is seriously going to change the world in pretty much every industry (in my opinion)!
Next steps
Now that the site is built and pretty stable, I'm going to spread the word and try to get people using it. So far it's brought in a couple of dollars of revenue (in terms of Ethereum) in its first day.
Thinking about it, the site could actually potentially turn into a really valuable place to advertise, though. If I can get featured in some online tech blogs and in term get lots of eyeballs on it, then there will be value in businesses paying to be in the top spot on the site. Actually creating an iconic internet site obviously isn't easy, takes a hell of a lot of luck, and is far less likely than it is likely. That said, I'm still going to spend a couple of hours over the weekend trying!
On the marketing side next I'm going to make a list of all crypto/blockchain companies and then outreach to them one-by-one via email. The good thing about this space is that its users are extremely vocal, tech-savvy people.
I'd love to know what crypto/blockchain things are you all working on - please comment below or feel free to email me: [email protected].
Would also love any feedback on the project, and of course some more users! :-)
Cheers,
Joe