A month ago I released the alpha version of asciitabs.com. This post covers how the site started, how it was launched, what I learned from that launch, and where it will go from here.

I don’t really consider the launch to be successful, but it was a good learning experience. I believe with a few more features and market research it has potential to be a useful website.

How Asciitabs started

Asciitabs CLI prototype

I have always found tablature to be the most approachable way to learn guitar and share amateur compositions online. There is a lot lost in translation between tabs and standard notation, but it seems like the difference between Markdown and LaTeX: both have a place and purpose.

I wanted to practice my basic music theory, and my Go programming, so I created a command-line tool to generate random tabs given a key and a scale. I got this to a point where it could make random tabs and basic ascending scales before deciding to see if I could turn it into a more accessible website.

Creating the website

I marked my prototype as complete and left it up on Github for the curious. The repo was copied to a private Bitbucket repo for future work, which I hope maintains some semblance of a competitive advantage if the website ever gains traction. I hope to open source the core music-definition and tab-generation libraries once they have matured.

Asciitabs Alpha Home Page

I built out a very basic web interface using the Go html/template and net/http standard libraries. The website is hosted on a single EC2 t2.micro instance and is deployed using Docker and ECR. I managed to get 50% test coverage on the core tab-generation library but had no testing on the CLI or website code at this point.

I released a pre-alpha to some of my friends and got an initial round of feedback, bug reports, and feature requests. By the end of that round, the website was in a minimally styled but fairly robust state, supporting: random tabs, scales, flats / sharps, majors / minors, guitar, and ukulele.

Asciitabs Alpha Random Tab Page

There were dozens of tweaks and features that I still wanted to add, but I decided to test the waters as early as possible, hoping that would help me decide what to focus on next.

Alpha launch and early feedback

I put the finishing touches on the site, made sure people knew how to contact me for feedback / bug reports, and posted it to Hacker News.

The early feedback was minimal, but was thankfully helpful, positive, and diverse. I got website feedback of the following nature:

  • Mobile support was broken (easy fix - remove the viewport settings)
  • Request for plectrum / pick-centric tabs (easy feature)
  • Request for in-browser audio output of the generated tabs (medium-hard feature)

My favorite comment was one not about my website, but about my future progression as a musician. The user recommended that I learn standard notation and not rely so much on tablature because of how limiting it is. I took this to heart in my practicing by trying to play songs from standard notation that I have already mostly memorized. It’s slow going, but sure to pay off in the long run.

The next day, I also submitted the site to Reddit at /r/UsefulWebsites. This got some more visitors and analytics data, but sadly no more direct user feedback.

Analytics data from launch

I wish I had more time to figure out a locally-hosted or privacy-centric analytics tool, but Google Analytics is just so good and free and easy. I’m sorry everyone. I assume most people that are offended by tracking have blocked those requests anyway, which also means that the data below is not 100% complete and accurate. Take this section as you will.

Asciitabs Alpha User Rates

I got just under 1,000 visitors in 3 days, and have only seen at most 5 a day since then. I have not done any continued marketing since the two initial posts, and was curious to see if there was any latent virality in this idea. The answer was clear. I need to make the site more useful and catchy, and probably also need to consider some direct marketing if I ever monetize the site.

Asciitabs Alpha User Rates

The source metrics show that most of my traffic came from the Hacker News post, but most of those users just toyed with a couple pages then left. The Reddit group stayed around a bit longer and seemed to show more interest in it, but there were a lot fewer of them.

All in all, not much useful data here other than that I clearly need to do more work if I want the website to be found by and useful to a wider audience.

Lessons learned

  • The site needs more features
    • More tab customization options
    • Rhythm in tabs (spacing of chords)
    • Custom instruments
  • The site needs a way for people to share tabs easily
  • The site needs monetization and direct marketing
    • Only after further validation of base idea
  • The site needs a better landing page
    • Way to experience the app for non-musicians

Updates since launch

Since the original launch, I have begun to make progress on the lessons learned from above.

Index Page

The index page still retains above-the-fold simplicity and big call-to-action buttons, but also has a small description and GIF of the major “Random” and “Scale” features.

Sharing Modal

I added a sharing modal on the tab page that includes a link to the exact tab the user is viewing.

Asciitabs Share Modal

This was pretty easy to implement in Go by using rand.Seed for each tab generated, and passing that seed through to the page in case the user wants to share it. The final URL looks something like this:

http://www.asciitabs.com/random?instrument=guitar&key=Bb&measures=8&scale=minor&seed=53gw5f

I might make a small internal shortening service for that if it becomes too unwieldy.

More Options

I split the tab button bar from the options box, and now have a lot of room to grow out the options section without overwhelming a first-time user.

Asciitabs Option Box

I knocked out a new feature here too for supplying a minimum and maximum fret for tabs - previously it would always just use frets 0 to 4 for random tabs and root to root + 4 for scales.

Programming Stuff

I added an official CHANGELOG and started doing git tags on releases. I also started unit testing my cli and web libraries and raised overall coverage to 60%. It’s not much, but sometimes it’s the little things that help you sleep at night.

Closing thoughts

The alpha launch of Asciitabs didn’t have the virality or continued usage that I was hoping for, but it has been one of my most successful sites so far. I’m going to keep building features and fixing bugs as I have time, but my mind is starting to wander off to other, possibly better, ideas.

Check out the site at asciitabs.com. If you have any feedback, feature requests, or bug reports, please send me an email at andy@asciitabs.com.