Recently I've decided to shift my focus on Wave Radio to growth. The goal is to gauge the results of product improvements I've made in the past few months since launch. I'm not looking to find a million users now but rather I'm trying to find sustainable methods to bring users in so I can measure how improvements have impacted the site. And those methods need to fit naturally into the product while still providing value to existing users.

As part of that, I've begun working on a blog. Content marketing and SEO is one of the cheapest ways to drive traffic to a project. I've already put a lot of effort into making every page of Wave Radio a potential source of organic search engine traffic and it's ranking pretty well so far.

Naturally, a community-oriented site like Wave Radio generates a lot of content. But so far I haven't put that content to much use. Every week I send users a brief newsletter about updates to the site, the top users of the past week, and the best new songs. But that content was only serving to re-engage existing users. It could easily be used to bring new traffic. Hence the decision to build a blog. The work I'm already doing each week can have double the value.

Building It

I usually prefer ready-made solutions that don't require any dev work. It makes it easier to test if an idea is valuable and they already have a ton of edge cases figured out. But this time I've chosen to build a custom blog for a few reasons.

SEO

Blogs on a subdirectory tend to do more for the rankings of your site than a blog on a subdomain. Wave Radio is built with Nuxt.js and getting a ready-made blog to easily work in a subdirectory looked like it'd be a pain in the ass.

Dynamic

I aim to make the blog posts a bit dynamic. Some content will be available to signed-in users and will prompt non-signed-in users to join. Also, a lot of the content will mirror the weekly newsletter which I already generate in HTML and it can be easily repurposed.

Simplicity

This blog is going to be super simple. I don't need an editor or themes or tags or anything else that comes with blogging software. Why struggle to get something working how I'd like when I can build a rough solution in a few days that does the job.

Technical

I've built the blog using Vue and the Vuex store. Each article is represented by a JSON object and added to a pre-populated Vuex store object. The blog page and article page simply read this data and display it.

{
            "title": "Second Article",
            "snippet": "A little bit about this article",
            "image": "<url>",
            "id": "second-article",
            "content": "This is the second article on this blog about music."
}

To generate the dynamic content I've also written a Node.js script that pulls data directly from my database and renders HTML based on it. That HTML is then added to the article's JSON object. All the styling is handled in CSS like any other page of the site. This allows me to include other components easily into the blog posts. There's the same navigation bar that you'll find anywhere else. Potentially I can also make songs in the articles playable as well.

Finished Product

There's still some work to do on improving the look of it but I think it's good enough to launch this week. I have a ton of ideas for interesting music-related content that can attract an audience. New albums worth checking out, new artists you never heard of, top new songs, reviews, and a lot more. I'm going to start small though and focus on having just two articles each week. Let's see what impact it has.