Dave Cross's Web Site

View the Project on GitHub davorg/davecross.co.uk

2020 Vision

Over on my main blog, in December, I wrote about my plans for 2020. I’ve left my job and I’m going to spend (at least) the first six months of the year trying to take a number of my web site ideas and turn them into viable businesses.

I plan to write about what I’m doing each week. So here’s are my weekly reports.

Web feed

January - Line of Succession

I’m starting by doing some work on a site called Line of Succession. This is a site that has existed for some time - you may have seen the video of me giving a talk about it to the London Perl Mongers.

The decision to go with an existing site for the first month was deliberate. One of the ideas behind this whole project is that I get to learn new skills and by choosing Line of Succession for the first month, I don’t have an excuse to spend the whole month working on technical stuff and ignoring the other parts of the project. I’m forced to spend most of my time working outside of my comfort zone. In this case, the thing that the site really needs is marketing. And I know almost nothing about marketing. So what have I been doing?

Week 1: w/c 2020-01-06

Although this month is mostly supposed to be about marketing, it helps if you have something worth talking about. There were a few little problems that I wanted to fix and I got through many of those during this week.

Until now, the data on the site went back to 1837 (the start of Queen Victoria’s reign). I thought it would be a good marketing hook to have 200 years of data and, conveniently, George IV came to the throne in January 1820, so I’ve ensured that the data is correct back to the start of his reign. I was also annoyed by a few bugs in the list of positions on the individual person pages - so I spent half a day fixing all of those.

I got off to a fairly slow start on the marketing front. I spent some time building a list of people who write about the royal family for newspapers and magazines. I then emailed those people, telling them about the site in the hope that they might be interested in writing about it. So far, that hasn’t been successful. I’ve only had a single reply - and that was just to thank me for my email. This convinced me that I needed a CRM system to manage my contacts with people like this - so I’ve signed up with Capsule.

I used to blog semi-regularly on the Line of Succession site, but that had largely fallen away over the last year. I’ve set myself a task to write a new blog post for the site every week in the month. I wrote one this week about the people who are at the end of the line of succession. I promoted this post on both Twitter and Facebook.

Oh, and talking about social media, the line of succession accounts are usually quite quiet, but as I’ve been working on the site full time I’ve made several more posts on these accounts. And the news about the Duke and Duchess of Sussex gave me more excuses to post.

SEO is an important part of marketing. Some months ago, I signed up to SEMrush so they could periodically audit the site for basic on-page SEO errors. This week I took a close look at their most recent report and created a couple of tasks to look at next week.

Oh, and I started reading Seth Godin’s book This is Marketing.

If you’re interested in following what I’m doing more closely, my Trello board is public.

Week 2: w/c 2020-01-13

The second week of the project had far less technical stuff in it as I concentrated more on marketing. I still found time for a few technical fixes though. I found and fixed a bug where the list of blog posts was only appearing on the front page. And I did a couple of technical SEO fixes - setting caching headers on CSS files and adding some meta descriptions that were missing from blog pages. As I’m only using the free tier of SEMrush, I’ll have to wait a couple of weeks before their next audit reveals how well those fixes has worked.

I’ve been blogging on the site for a while and this week I added another blog post following up on last week’s exploration of people at the end of the line of succession. I also set up a Medium Publication where I’ve republished the older blog posts. I don’t know how many people search Medium for stories about the British Royal Family, but those who do will now stand a chance of finding my articles. Oh, and I’ve signed up for the Medium Partner Program so I can be paid if people read my posts there.

An important part of marketing is to understand who your target audience. I spend some time thinking about this and by monitoring the likes I’m getting on my Facebook page I’ve worked out that the people most interested in my site seem to be middle-aged American housewives (I was honestly aiming at British historians, but I guess you take what you can). Some of the week was spend pondering how I could extract money from this audience. Would they buy some kind of merchandise? This is a question I’ll return to this week.

But I do think that a book could be a good idea. I spend some time considering what that might look like. Eventually, I decided it should be a coffee-table book with lots of photos. It could contain short biographies of all people who have appeared in the top twenty of the line of succession over the last two hundred years, together with a few essays related to the line of succession. I won’t have time to write it before the end of the month, but it’s a possible project for the future. Slightly macarbrely, the best time to promote a book like this might be when the Queen dies.

I see that my first progress report was posted to Reddit over the weekend. I answered a few questions there and I hope the discussion was interesting.

Week 3: w/c 2020-01-20

Week three was another week with very little technical work, as I concentrated on marketing. But the Reddit discussion I mentioned last week included the suggestion that I should credit the photos that I’m using on the site. That made a lot of sense to me so I spent a few hours checking the correct attributions and ensuring they appeared correctly under the photos. I glad I did that, but I’m not entirely happy with how it looks on the page. If I have some time to spare, I might try to hide the information unless a user hovers over the photo.

I’m trying to stop myself reaching for Wordpress whenever I want to set up a new site, so this site is just a static site hosted on Github Pages. That’s all very well, but I slightly miss all the stuff that Wordpress gives you for free. For example, there was no web feed for these updates until I hacked one together last week. And it still doesn’t have the autodiscovery tags in the HTML headers. Maybe I’ll add them at some point.

The biggest piece of marketing I did was to create a video that talks people through all of the various things that you can do on the site. But I havent done a very good job of promoting it. A week later, it’s had twenty-three views.

A few years ago I set up a Mailchimp account. I registered for the free level and I mostly used it for the Perl Hacks mailing list that I’ve been ignoring for far too long. But the free level allowed you to have as many mailing lists as you wanted as long as your total number of subscribers was fewer than (I think) 2,000. And I had set up a few more mailing lists for other projects I had dabbled with. Last week I revisited that account as I wanted to create a new list for Line of Succession. But I found that the account had been locked because the pricing plans had changed and the free level could now only use a single mailing list (or “audience”, as they now describe them). So I’ve subscribed to a paid plan. And I’ve added a sign-up form to the web site. Most of the marketing material I’ve read agrees that getting a long list of email addresses should be one of your prime targets - so I’m trying to do that now.

I did one afternoon of heavy promotion. I emailed a genealogy mailing list about the site. That got it mentioned in a newsletter and brought about five hundred visitors to the site. I tweeted to a number of well-known TV historians - but got no response at all. And I emailed the owners of a large number of royalty-focussed blogs asking them if they would be interested in mentioning the site to their readers. I’ve had no response from any of them either. I guess I need to send a follow-up email this week. One thing I’m learning is that marketing means you need to be a lot more persistent than I’m naturally comfortable with.

Oh, and one other little technical thing. I ran a Google Lighthouse report on the site and it told me that I was using an older version of jQuery that had a couple of vulnerabilities (version 3.2.1, if you’re interested). I’ve now upgraded to the most recent version - 3.4.1.

This week is, in theory, all about merchandise. I think the best way to actually make some money from the site is to sell stuff to people.

Week 4: w/c 2020-01-27

The final week on this project was slightly strange. To be honest, I felt a bit down. I’m not really sure what I wanted to get out of this month (and see the retrospective below for more about that) but I had this vague disappointment because I hadn’t set the world on fire. But, of course, you can’t expect to do that in a month. This mild despondency made it very tempting to retreat back into my comfortable world of coding and just spend the week writing improvements to the site, but I forced myself not to do that and to carry on promoting the site.

I mentioned that in the previous week, I had emailed some people who wrote blogs about the royal family. I got no response from any of those people so I sent a follow-up email offering to write a guest blog post for them. This was way outside of my comfort zone as I couldn’t help thinking about the spammers who email me, offering me various services and then following up a week later with “did you get my message?” I really didn’t want to come across like that, so I spend considerable time working on the best way to phrase the email. I still got no responses.

I also found a few history forums and posted about my site on those. The only response I got there was a rather snippy reply saying that they didn’t approve of self-promotion. Their site, their rules, I guess.

Early in the week, I posted a few items to the Facebook page for the site and then decided it would be worth spending a bit of money on a Facebook ad. I’ve done this a few times before and I’d expect to get a couple of hundred clicks and maybe thirty new likes on the page. But something was different this time. Over the five days the ad was running, I got hundreds of clicks and the page likes went from 126 to over 550. I’m not sure why this ad was so successful (and there’s another item for the retrospective) but I hope to be able to repeat this success in the future.

But at the end of my last report, I said that the week was supposed to be all about merchandise. What’s the point of getting people to the page if there’s no way to extract money from them? I did spend some time thinking seriously about this question. I was trying to work out what kind of merchandise my users would buy. Would they want the line of succession printed on a t-shirt (does anyone want that?) Or, perhaps, on a mug? I’ve previously mentioned the idea of a book. But I didn’t have enough time to write a book.

Then on Thursday I had an idea. The line of succession would look nice on a poster. I found a company who make print-on-demand posters on various sizes, on different types of paper and in various kinds of frame. And they have an API that you can use to place an order. If I had more time (and I might revisit this idea later on) then I would offer the chance to buy a poster of the line of succession on any date. I’d then generate an image of that list and use the API to get it made and sent to the customer.

In the end, I did put a shop page on the site, but it was only a “coming soon page” with a mocked-up book cover along with an invitation to sign up to the mailing list.

I did make one tiny tweak to the site’s code. Over the weekend a friend on LinkedIn suggested that it would be nice if instead of giving a baby’s age as “0”, I could give the age in months. And that turned out to be really easy to do.

January Retrospective

So what have I learned from my month working on this project? What went well? What went less well?

I guess the biggest lesson is this. Marketing is hard. Or maybe it’s “I’m not particularly good at marketing”.

Actually, that’s a bit glib. Really, the biggest takeaway I have from the month is the importance of having a plan. I spent a lot of the month either improving the site or trying to drive people to the site when that rather ignored the important question which is - how am I going to make money from the site. I managed to (slightly) increase the amount of traffic to the site, but I didn’t make a single penny from all of those visitors because I didn’t have any way to take money from visitors (well, I had Google Ads, but they generate approximately zero income).

So you need to have a plan. And the plan needs to look like this:

Just having a vague plan to “grow the audience” won’t cut it. You need to know exactly how you are going to make money and then everything you do needs to be focussed on making that happen.

If I had had a better plan at the start of the month then I would have realised the importance of merchandise on a site like this. I spend a lot of the month thinking “oh, I should probably sell some merchandise” but putting off actually doing that because… well, probably because it felt too hard.

And that’s another theme from the month. A lot of this stuff is hard. It’s going to push me outside of my comfort zone. And you can’t cherry-pick the easy (i.e. programming tasks) and leave the uncomfortable stuff for later. You need a plan and that plan needs to be executed in a sensible order.

So, moving forward, all of these mini-projects will need a plan. And the plan needs to answer questions like this:

Then the answers to these questions need to be used to set concrete goals for the month. Goals that meet the SMART criteria. Goals that are Specific, Measurable, Achievable, Realistic and Time-related. It’s only when you know what you’re trying to achieve that it makes sense to start working on it. So from now on, the introductions to my monthly projects will include the goals for the month (which, I guess, means that the introduction to February’s project will need to wait for a few hours!)

Oh, and one other thing. Remember I said I had no idea why the last week’s Facebook ad worked so much better than earlier ones. That’s a terrible situation to be in. I need to be better at measuring this stuff. I need to be able to answer questions like that. Among other things, I need to get into A/B testing to find out what works best.

To summarise, I’m happy that I managed to raise the profile of the Line of Succession site. I’m not happy that I made no money out of it. And I’ve learned valuable lessons that will feed into the rest of the experiment.

February - Lystyng

In February, I’m going to be working on a project which is currently called Lystyng (but that name might not last the month). Like Line of Succession, this is an idea that I’ve had knocking around for a while and there’s even some code that basically does what I what (but it’s currently in pieces as I hacked at it rather a lot last summer and didn’t put it back together when I was finished).

It’s a pretty simple concept - it’s a social media site for creating and sharing lists.

You’ll be able to create lists, mark them as public or private and then share them (the public ones, of course) on other social media services.

I originally had a general-purpose list-sharing site in mind. But I’ve decided to start by restricting it to a particular use case. I want to aim the service at people who want to share lists of their favourite films. I think that with a bit of magic borrowed from The Movie DB’s API I can make the site look pretty good by splashing film posters and stuff like that all over the page.

I have a few more ideas, but they’ll appear (or not) during the month.

In my January retrospective I said I needed a clear idea of how to monetise this projects before starting them. In this case, I do. It’s a two-pronged approach:

And what are my specific goals for the month?

  1. The MVP is live. Where the MVP looks like this:
    • Users can sign up, log in and create lists
    • Social login is supported (Facebook, Google and Twitter)
    • Users can edit and delete lists
    • Users can share lists
    • List items are enhanced with data from TMDB
    • The site is fully functional on smartphones (mobile apps will follow)
  2. The service has an active Facebook page and Twitter account
  3. I have promoted the service to a dozen student film societies
  4. I have promoted the service to half a dozen film magazines

And for the first week, I want to:

  1. Get the Facebook page and Twitter account up
  2. Get the code back working again (without social login or TMDB cleverness)

Week 1: w/c 2020-02-03

Slightly later than expected, here’s my report for the first week of February.

I thought that the beginning of February would be easy. I knew which project I was working on and there was quite a lot of programming needed in order to get it into a usable state. I predicted that a week of coding would get me to where I wanted to be. I was wrong.

The code for Lystyng goes back to 2014. Originally, it was a preyy basic Dancer application with a database backend accessed through Perl’s de facto standard ORM, DBIx::Class. It stayed that way for a few years and I dabbled on the codebase on occasional free weekends.

I first decided that I wanted to do something more serious with the code when I was in Riga for 2019’s European Perl Conference. During downtime at the conference I made a lot of changes to the code, effectively rewriting it so that it was just an API. The plan was to write the front-end as Javascript which made calls to this API.

So task one in the Trello board was “see what state the code is in”. And it was in a rather different state than I remembered. So I spent a lot of the first week trying to remember why I’d made various (undocumented) design decisions and identifying what else needed to be done. Eventually, I had a list of things to do and I made a start on working down that list.

The site now consists of two Dancer applications. There’s still one application which drives the API, but there’s now another application that drives the web version of the application (there’s only a web version currently, but I’m hoping that having the API will make it easier to create a mobile app in the future). By the end of the week, new users could register for the site and log in and out.

I also did a small amount of marketing work. I already had a Twitter account for the project, but now it has a Facebook page too. Oh, and there’s a Mailchimp mailing list for keeping up with news about the site. You can sign up to that from the projects holding page.

February Retrospective

I’ve been quiet here for a few weeks. And that’s because February’s project really didn’t go how I hoped it would. I last wrote a report in the middle of week 2 - about what I had done in week 1. And I was still very positive about it at that point. I was happily disentangling the two applications that I had wrongly wrapped together in one.

As the second week progressed, it became more and more obvious that this disentanglement was a far bigger job than I had previously thought. I was making progress but it really wasn’t very fast. I started to doubt that I could get anything up and running in the time that I had given myself.

The original plan was to spend a week or maybe two finishing the coding on the project and then the next two weeks marketing the site. That’s not what happened. I spent all of the time working on the code and did almost no marketing. To be honest, it didn’t really seem like there was much point in marketing the project if there was a good chance that it wasn’t going to be ready.

And that’s a problem with the way that I’ve structured these six months. The idea is that I spend a month on each of the projects. But what if a month isn’t long enough? Without the artificial end of month deadline, it would have been worth doing some marketing - to try and get a bit of a buzz going about the site which would have gone live at some point (if later than planned). Knowing, as I did, that the project might not get finished, I was loathe to spend time promoting a project that was probably never going to live.

Then I started to wonder if that was a fundamental flaw in the way I’m approaching this six months. I’ve had conversations with some people where I’ve talked about what I was planning for my March project. But that was just an idea. It had no existing code whatsoever. Line of Succession was largely complete at the start of its month. Lystyng was (I thought) close to being ready to launch. But project three would have needed even more development.

So it looked like I needed to reconsider this whole 2020 vision thing. A month just isn’t long enough to take on a whole development project and do the marketing for it too. Maybe I needed to take a different approach. Or concentrate on smaller projects. Over the course of a walk in Finsbury Park with my business mentor and two beagles, we came up with a plan that entailed me rather changing tack for March. More detail on that in the next post.

But February still wasn’t finished. I had a week to go and a project that wasn’t complete. That’s when I noticed something else that had gone wrong. I had completely abandoned the Trello board for the project. That’s because it had a single task - “fix code” - which had been in progress for most of the month. That task is obviously far too big to be useful (and I should know that - I’ve been doing this for over thirty years; I know how to plan a project!) I spent an hour breaking it down into smaller tasks and then the final week of the project was actually pretty productive. I didn’t get the site working, but I got it a lot closer than I thought I would at the end of the previous week.

One other problem was taking time off. I allow myself a day off in each month to go and do something cultural in London. But in February, I also took a long weekend in Amsterdam. And then my flight home was cancelled because of Storm Denis and I spent a day longer in Amsterdam than I planned to. Which was lovely, but gave me a day less working on the project. I need to be more aware of planned holidays when I’m planning how much I’m going to get done in a month.

So, all in all, February wasn’t as successful as January. At points I felt quote down about the whole thing. But things picked up again in the last week, and I’m feeling very excited about March’s project.

March - More Than Code

In August 2018, I spoke at the European Perl Conference in Glasgow. And the organisers asked me if I would like to run a day of workshops before the conference started. I’ve often done this before but I fancied doing something a bit different. Instead of a day’s workshop on some part of Perl, I offered them two half-day workshops on completely different topics. One was about simple ways to make your web site more SEO-friendly and the other was called The Professional Programmer. It was discussion about the bits of a programmer’s day-to-day work that don’t include actually sitting at a computer writing code. I ran it as a conversation between me and the dozen or so attendees and we talked about the kinds of non-programming knowledge that a successful programmer should have. During the rest of the conference, a few of the attendees came up to me and told me how useful it was for them and a couple suggested that it would make a good book. That idea stuck with me and has been perculating in my head for eighteen months or so. And now I think the time is right to do something about it.

So that’s my project for March. I’m writing a book called “More Than Code”. It’s a bit of tall order to write a book in a month. It’s always taken me closer to a year in the past. But that was when I was doing a full-time job as well. Perhaps it’s possible to consistently write 2-3,000 words a day if it’s your job. We’ll see.

I’ll need to do some marketing for it as well, of course. I’ll need a web site, a Twitter account, a Facebook page and a Mailchimp mailing list. And if the book is to be released at the end of the month, I’ll also need to get people to proofread it and do publisher things like designing a cover.

Honestly, I think that if I can make a living through writing and speaking (oh, I’m happy to run workshops on the subject at your company - drop me an email) then that would make me far happier than running a company that provides a web service.

The slides for the original workshop are online - The Professional Programmer.

I need to set goals for the month. Here they are: