WanderJest: Month 1

One-Line Summary

Still searching for my first dollar of revenue, but it feels like it's within grasp.

Highlights ๐Ÿ”—︎

  • Three businesses agreed to form affiliate partnerships with WanderJest.
  • Two of my blog posts reached the front page of Hacker News.
  • Is It Keto earned its all-time-highest monthly revenue, doubling its previous record.

Goal Grades ๐Ÿ”—︎

At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals:

Earn my first dollar of revenue from WanderJest ๐Ÿ”—︎

  • Result: I didn’t make money, though I formed affiliate partnerships that have potential.
  • Grade: C-

The quickest path to earn revenue for WanderJest is affiliate deals with local shows. I formed some agreements but haven’t earned any money from them yet.

Conduct eight interviews for WanderJest with comedians, bookers, promoters, and venue owners ๐Ÿ”—︎

  • Result: Conducted 10+ customer interviews
  • Grade: A

I conducted more than 10 customer interviews and lost count after that. The conversations were useful, but I’ve got all the feedback I need for the next few weeks. After the first eight or so conversations, I wasn’t hearing anything new.

Publish a follow up to “My First Year as a Solo Developer," about year two ๐Ÿ”—︎

This was useful to write, as it helped me re-evaluate my long term strategy. It garnered a strong response, especially on Hacker News and reddit, so I received lots of interesting feedback, most notably from famed bootstrapper extraordinaire, patio11.

Stats ๐Ÿ”—︎

Screenshot of Google Analytics traffic

WanderJest visit statistics - January 2020

WanderJest ๐Ÿ”—︎

Metric January 2020
Unique Visitors 821
Total Pageviews 2,933
Domain Rating (Ahrefs) 1.7
Registered Users 0
New Affiliate Partners 3
Affiliate Earnings $0.00
Total Revenue $0.00

It’s WanderJest’s first month, so I’m happy with its progress out of the gate. I wish I’d achieved some revenue, but I’m encouraged by how welcoming everyone has been when I approach them about setting up ad-hoc affiliate agreements.

User engagement needs to improve. No users have created accounts yet, and that’s partially because they’ve only been available for a week and partially because the only thing an account lets someone do is write public reviews of shows.

Is It Keto ๐Ÿ”—︎

Metric December 2019 January 2020 Change
Unique Visitors 26,891 63,465 +36,574 (+136%)
Total Pageviews 68,389 160,607 +92,218 (+135%)
Domain Rating (Ahrefs) 26.0 26.0 0
AdSense Earnings $235.71 $423.57 +$187.86 (+80%)
Amazon Affiliate Earnings $157.08 $345.04 +$187.96 (+120%)
Meal Plan Sales $0.00 $18.10 +$18.10 (+inf%)
Total Revenue $392.79 $786.71 +$393.92 (+100%)

Is It Keto had its biggest month ever. I wish I could claim credit, but January always brings a huge surge in traffic from new year’s resolution dieters. Unfortunately, this bump fades pretty quickly.

I tried to capitalize on increased diet enthusiasm by bringing meal plans back to the homepage and navbar, but I only made four sales in two weeks. That’s not enough to earn such prominent placement on the site, so I’ve once again relegated them to an obscure page two links deep.

Is It Keto is officially in maintenance mode now. I had hoped the site’s freelance writer would reach self-sufficiency and continue adding content in the background. After three months of working with me, their articles still required me to edit them thoroughly, so I let the writer go at the start of the month and stopped adding content.

Zestful ๐Ÿ”—︎

Metric December 2019 January 2020 Change
Unique Visitors 207 1,723 +1,516 (+732%)
RapidAPI Earnings $50.43 $79.67 +$29.24 (+58%)
Enterprise Plan Earnings $3883.70 $0.00 -$3883.70 (-100%)
Total Revenue $3934.13 $79.67 -$3854.46 (-98%)

It might appear that Zestful experienced a disastrous drop in revenue, but it’s just that December was a huge outlier.

Zestful’s income is bursty, and anything in the $50-100 range is a good month. There was an eight-fold increase in traffic, but that’s a mostly meaningless side effect of my blog posts reaching the front page of Hacker News with mentions of Zestful.

Still searching for my first dollar ๐Ÿ”—︎

With previous businesses, I’ve focused too much on growth and failed to consider how the site can make money. I have several ideas for monetizing WanderJest, but the one that I could validate earliest is affiliate partnerships.

My first arrangement was with an experienced comedian in Connecticut. He was posting on Facebook inviting students to sign up for his comedy classes. I offered to create an ad for his course on WanderJest in exchange for 10% of the tuition for students I referred. His class only had three open slots, and tuition was $200, so it wouldn’t be a sustainable source of income, but I just wanted to see if I could make any money with affiliate deals.

Screenshot of WanderJest's first affiliate ad

WanderJest’s first affiliate advertisement

Unfortunately, this attempt failed. The ad was live for a few weeks, but no WanderJest users enrolled by the time classes began. It was a longshot, as my audience is still small, and the classes were in Hartford, CT, roughly an hour’s drive from most of my users in Western Mass.

I now have affiliate partnerships with one theater and a one-time show. Their show listings appear on WanderJest with distinctive flair and discount labels, but I plan to do a little more in February to draw users' attention to those shows.

Screenshot of partner show listings on WanderJest

Shows that partner with WanderJest get special flair for their show listings.

I’m hoping show tickets will be easier to sell than comedy classes. The cost to the consumer is lower, my users receive a discount, and they’re geographically close to the towns where I advertise WanderJest.

Attracting comedians to WanderJest ๐Ÿ”—︎

I’ve been attending two comedy shows per week to meet new comedians and ask them how WanderJest can be useful to them. In person, performers seem enthusiastic about WanderJest, but when I follow up later asking for their photo and bio to list on the site, only about half respond. A small minority are vocal enough champions that they promote the site without me even asking:

That said, WanderJest is still far from being part of any performer’s or show organizer’s workflow. Even the most passionate WanderJest supporters still use Facebook events as their primary channel for promotion. I don’t blame them, as event creation on WanderJest is still clunky โ€” they have to fill out a Typeform, and then I add their show manually. I want to add enough features to the site that using WanderJest makes show organizers' lives easier than promoting a show without it.

Some features I want to complete by the end of February:

  • Make event listings self-serve so people can submit and manage their own shows on WanderJest.
  • Make performer profiles self-serve so that comedians can manage their own pages.

Once those are complete, there are a few other features I’m considering:

  • Add social media tools for automating and scheduling posts for shows.
  • Add analytics to let people see how many people are viewing their show listings and where they’re coming from.
  • Offer poster-making as a service, initially at below-market rates.

Attracting audiences ๐Ÿ”—︎

Ultimately, the thing that performers, venues, and show organizers care about above all else is audiences.

Fancy features and promotions mean nothing unless I can demonstrate to show organizers that WanderJest increases their ticket sales. And to do that, I need to get WanderJest in front of consumers. Not only that, I need to make it “sticky” so that users think of WanderJest when they’re wondering what to do for entertainment.

I’ve posted on my town’s local Facebook group and two local subreddits: /r/northampton and /r/springfield. The response to every post has been uniformly positive, with the /r/springfield subreddit even adding WanderJest to their permanent sidebar.

This is one of my value propositions to show organizers. Many of these social networks have rules against promoting individual events, but people view WanderJest as a helpful resource rather than an attempt to promote a particular show.

During February, I plan to:

  • Post WanderJest to other local Facebook groups and subreddits.
  • Contact local newspapers and blogs to see if they’re interested in partnering with or linking to WanderJest.

A few other ideas I’ve had, but I’m not sure if I’ll have the bandwidth:

  • Partner with several show organizers to create a pamphlet called, “WanderJest’s Guide to Western Mass Comedy,” which highlights all the shows happening in the upcoming month. I’d then distribute the pamphlets to local businesses.
  • Have a contest where fans enter by “checking in” to comedy shows on their phone. Each check-in earns one raffle ticket, and then the raffle prize is something like a $100 Visa gift card.

I’ll never launch with a database again ๐Ÿ”—︎

One of the most important lessons I’ve learned in launching new businesses is that quick hacks and clunky solutions are fine at the early stages. I love maintainable systems more than almost anyone, but there’s no sense investing in maintainability when a project’s future is so uncertain.

Instead, with each project, I look for new ways to cut corners and launch faster. With WanderJest, I skipped the database โ€” I just hardcoded all of my data right into the source code.

Screenshot of WanderJest source code with hardcoded data

Hardcoding data into source code is ugly but effective for launching your first version quickly.

I told myself that I’d migrate to a database when hardcoded data got too annoying, but I found that working with hardcoded data was, in fact, far easier. It meant that all the data in my dev environment stayed perfectly in sync with my prod environment. There were never issues where I only noticed after deploying that something didn’t work (e.g., “Whoops, this looks horrendous when a title is longer than 80 characters!"). And because my code is under source control, my data is too, so I could jump back to any version of my site and know that I’m seeing both the code and data as it existed at that point in time.

Probably the greatest benefit was that it allowed me to iterate quickly on my data schema. Early in a project’s life, I don’t know enough about the problem to design the schema perfectly, so I often make mistakes that require tedious, expensive fixes later. With a real database, schema changes mean hacky one-time migration code or tedious manual adjustments.

With data baked into the code, changing the schema was a breeze because everything’s just text. My backend is in Go, so if I ever screwed up and put the wrong kind of data into a field, the compiler just yelled at me until I fixed it.

This obviously doesn’t scale, but it’s fine up to ~10k records. Similarly, if an app relies on user-generated data, this solution doesn’t work unless you give source access to all of your users and teach them to make pull requests. And indeed, after a few weeks, I had to add a database to WanderJest so that users can submit show recommendations. But for all of my future projects, I look forward to applying this launch hack whenever possible.

Wrap up ๐Ÿ”—︎

What got done? ๐Ÿ”—︎

  • Commissioned a logo for WanderJest.
  • Included ~80% of the local comedy shows on WanderJest, but probably only ~20% of the active performers.
  • Added support for user-generated show recommendations on WanderJest (basically, user reviews).
  • Published my blog post “My Second Year as a Solo Developer," which reached #1 on Hacker News.
    • I’ve had unusually good luck with Hacker News recently, reaching the front page three times in six weeks.
  • What Got Done got a huge surge in new users because of the Hacker News attention.
  • I migrated this blog from Jekyll to Hugo, making it 10x easier for me to use.

Lessons learned ๐Ÿ”—︎

  • Delay integrating a database into your app as long as possible.
    • For instances of ~10k or fewer entries, hardcoding data into source is fine.
  • Programatically querying Google Analytics data is easier than I expected.
  • In general, my businesses have a revenue problem, not a cost problem:

I would suggest devoting approximately zero cycles to cost control. You don’t have a cost problem and no amount of cost control will bend the curve of your current businesses to sustainability. You have a revenue problem. Your desired state in the medium term will make it economically irrational for you to think for more than a minute about a $50 a month SaaS expense; marketing and sales gets you to that desired state, not cost control.

-Patrick McKenzie (patio11) via Hacker News

Goals for next month ๐Ÿ”—︎

  • WanderJest
    • Make $1 in revenue (for real this time).
    • Get 20 new user signups.
    • Reach 2,000 unique visitors.