CouchTimes - Year in Review

It has been a year since I launched CouchTimes. During this time, I released 13 versions, and CouchTimes was downloaded over 14,500 times from the App Store, receiving 202 ratings with an average of 4.8.

As mentioned in the introduction post during CouchTimes' launch, this project was a long journey with ups and downs. In this post, I aim to reflect on the year and share some of my insights.

Release Day

The release of CouchTimes on May 5, 2023, came at a strange time for me. The day before, Shopify, my employer at the time, announced layoffs that impacted me as well. Despite these unexpected events, I proceeded with the CouchTimes launch as planned, turning the situation into a more positive moment. The outcome was incredibly rewarding and put my mind into a whole different environment for the next days and weeks afterward.

While the release date of CouchTimes was a big and exciting day for me, I didn't have any huge expectations. I didn't engage with the press or have elaborate marketing strategies. Instead, I shared the journey on the podcast Arne and I had been running for years and posted numerous progress updates on Mastodon or on this very website.

My plan was straightforward: I aimed to publish a concise blog post outlining my thoughts and introduce CouchTimes, share it on Mastodon, Twitter, and other platforms, and then hope for the best. For the remainder of 2023, my goal was to surpass 100 downloads comfortably.

My Mastodon post gained some traction, which helped me immensely in the first hours of the release day. It quickly became evident that my 2023 goal had been exceeded within hours. However, this marked just the beginning.

Later that day, CouchTimes was featured in the "New App Features and Content" category on the App Store, leading to increased downloads. Furthermore, Alex Olma from iPhoneBlog.de wrote a post about CouchTimes, sparking a wave of coverage in German tech outlets.

Throughout the weekend and in the days that followed, numerous tech outlets covered CouchTimes (Caschys Blog, iphone-ticker.de, appgefahren.de, Chip.de...), resulting in a significant increase in download numbers. I found myself checking TelemetryDeck, the privacy-focused analytics tool in CouchTimes, every 30 minutes, astonished by the continuous growth in downloads.

Screenshot of the Analytics page in App Store Connect of CouchTimes showing the data after the first week after the initial release.
App Store Connect Analytics of CouchTimes shows the data after the first week following the initial release.

After the first week on the App Store, CouchTimes accumulated over 5,500 downloads, a figure that was utterly unimaginable to me. Discovering that over 80% of all downloads originated from Germany highlighted two key points:

Firstly, the unplanned press coverage in German tech outlets significantly drove the majority of downloads, emphasizing the crucial role of press coverage in any launch, even when it happens unexpectedly.

Secondly, the decision not to localize the CouchTimes experience in any way and to maintain English as the default language for the release generated discussion. Initially, my download expectations were modest, envisioning downloads from family, friends, and perhaps friends of friends. However, the unforeseen success in Germany posed challenges, leading to some 1-star ratings in the App Store.

Supporting German

During the initial excitement in the first few days, what truly amazed me and continues to bring joy are the numerous DMs, emails, or comments filled with feedback or bug reports. Since day one, I have been fortunate to have many wonderful individuals using CouchTimes, demonstrating patience and understanding in their messages.

Most interactions were positive, but occasional outliers emerged, especially regarding the lack of German translation support. This situation presented a delicate balance between enjoyable and challenging moments. German translations were always part of the plan, but now I had to rush to complete them as quickly as possible without prior experience in Xcode, considering CouchTimes was my first app ever.

On June 1st, a couple of weeks after the launch, I released version 1.1, which addressed various bug fixes, minor improvements, and the highly anticipated German language support. The subsequent events took me by surprise...

Without any prior prompting or messages, some German tech outlets (Caschys Blog, iphone-ticker.de...) began picking up on the 1.1 update, emphasizing that CouchTimes now supported the German language.

The oversight of lacking something so evident and being caught off guard turned into another scenario of press coverage and a significant surge in downloads.

Screenshot of the Analytics page in App Store Connect of CouchTimes showing the data after the first week following the release of version 1.1.
App Store Connect Analytics of CouchTimes shows the data after the first week following the release of version 1.1.

In hindsight, it's easy to see things clearly. Today, I would emphasize even more on shipping as soon as possible, even if you are missing an obvious feature or functionality. You may receive feedback pointing out the missed obvious feature, but if you plan to swiftly respond and address it, you can maintain the momentum and keep the conversation about your product alive.

Continuously shipping updates

After the initial exciting weeks, my focus shifted more to listening to user feedback and continually shipping updates. Enhancing German localizations, adding support for ARD and ZDF (German public-service television broadcasters) search recommendations, support for iPadOS, redesigning the "Add New Show" experience, improving the library, iCloud enhancements, and more became my priorities until the end of 2023.

By that time, the number of downloads had surpassed 10,000, with monthly active users (MAU) hovering around 1,500.

2024 and today

In February, the year for CouchTimes started with the launch of version 1.5, the most feature-packed release so far. This update introduced Interactive Widgets, support for Cast information, and various quality-of-life improvements for managing and tracking seasons and episodes as watched.

While I initially doubted the importance of Widgets for CouchTimes due to insufficient user requests for it, I aimed to include this functionality to enhance CouchTimes integration into the iOS ecosystem. Additionally, many other features were based on long-standing user requests, which is always rewarding to implement when they align with the product's overall vision.

Despite my enthusiasm for the new features, I soon discovered that I may have inadvertently introduced some regressions that compromised the user experience. This led to increased emails about data, performance, and syncing issues, which resulted in some negative reviews on the App Store. Negative reviews were previously uncommon, especially after the addition of German translations.

Undoubtedly, this was perhaps the most challenging period since CouchTimes launched. Despite the high download and active user numbers, the pressure mounted as I realized the mistakes in my codebase that were not straightforward for me to rectify.

It's worth reiterating that this is my first app. I'm not a professional programmer (I'm paid for product and design work as a profession). While I feel competent and quick with SwiftUI for frontend development tasks, handling complex backend work involving databases, networking, data syncing between APIs (like TMDb), and personal databases (CoreData), and ensuring everything is up to date is a source of significant anxiety for me.

Following the release of 1.5, I delved deeper into backend-related matters and issued multiple updates to address data syncing issues, multi-threading challenges, performance challenges, and more. The pivotal aspect during this period was even more communication with users who reported these bugs. Users typically seek solutions to their problems and are often willing to assist and provide contextual information along the way. Some even volunteered to have a call to aid in resolving the issues, which we never had to do, but which was greatly appreciated as a gesture of support.

Currently, version 1.5.5 has been out for a little over a week, and it seems that most significant issues have been resolved. While there are some elements to further refine in the upcoming iterations, the initial response has been excellent. CouchTimes seems more stable and notably speedier, especially for users with extensive show lists, which remains a concept that surprises me.

Looking into the future

The journey with CouchTimes has been incredible, and I aim to keep refining the user experience and feature set going forward. A core principle of CouchTimes is to provide a simple and elegant solution for TV show enthusiasts to track their favorite shows.

This implies that CouchTimes will not strive to include every possible feature. I will work diligently to curate the app with a focus on simplicity and elegance for those who prioritize these aspects in such an application. Nevertheless, here are some high-level directions I am planning to invest time in next, in no particular order:

  • Support for Trakt.tv
  • Upcoming episodes notifications
  • Episode forecast
  • Stats
  • Rating for shows
  • watchOS App
  • Export
  • ...

The mentioned items provide an overview of potential additions to CouchTimes, but there are no set commitments on the order of these features or specific timelines. CouchTimes remains a side project that does not contribute to my income, so I have to have priorities straight.

Monetization

A common question I receive is: What are your plans for CouchTimes and how can I support CouchTimes today? Here are two straightforward answers:

First, if you want to support CouchTimes today, please consider writing a 5-star review in the App Store; this is the best support CouchTimes can receive currently.

Secondly, CouchTimes, in its current state and with its current features, is and will always be free to use. Additionally, I intend to introduce charges for some of the mentioned features above, which will be entirely optional. The exact pricing details are still pending, but it will be a one-time in-app purchase, without any subscription model. But the details and thoughts behind this are probably for another blog post.

Learnings

As I tried to share stories and insights about the past year, there were undoubtedly essential lessons I learned from my initial year running CouchTimes.

CouchTimes was not the ideal "first app"

While CouchTimes may appear straightforward initially (searching for shows and tracking watched episodes), it presents more technical challenges than I anticipated. Initially, I believed it would be a suitable scope and challenge for my first iOS app, a view I now reconsider. If I were to start over, I would begin with an app that avoids network or synchronization complexities.

It doesn't matter if other apps exist in the same space

When discussing CouchTimes or my ideas, the initial response I often encounter is, "Doesn't a similar app already exist?" My typical response is, "Indeed, there are many TV show tracking apps out there."

If you think this should discourage me from building yet another TV show tracking app, you're wrong. If you find yourself in a similar situation with another idea, it's essential to deeply consider the specific problems you aim to solve. The presence of competition doesn't diminish the value of pursuing what you want to create. You can still add value to an existing market. Everything depends on how you seek to solve the problem; just copying something else is obviously not the solution.

In many scenarios, creating a product is not a zero-sum game. Addressing diverse needs and offering a customized solution for a specific group of users adds value. Think about the plethora of to-do apps with successful business models. I can probably tell you 10 successful to-do apps/products out there in a very similar market off the top of my head. While market competition and conditions are important, my emphasis with CouchTimes is on simplicity and elegance, aiming to cater to a market segment that values these qualities.

If you require additional features, there are numerous fantastic alternatives available, and I'm pleased to suggest some to you. Ultimately, the diversity of solutions and endeavors is what matters.

Press coverage

I have emphasized the substantial influence of press coverage in CouchTimes' success, primarily due to fortuitous circumstances. A crucial lesson I've gleaned is the importance of nurturing relationships with the press and proactively pursuing coverage for significant releases. Depending solely on chance and goodwill may not be sustainable in the long term.

Additionally, the experience with the missing German translation and the subsequent increase in press coverage after its prompt addition remains thought-provoking. This scenario presents a potential area for future exploration and utilization.

I don't fall into the power-user category of my own app

I had a sense of this prior to the release, considering my reduced TV consumption in recent years. However, discovering the extensive libraries of shows some CouchTimes users have has been surprising and has set a high standard for my sync engine, especially during testing.

My personal list of TV shows primarily consists of content from platforms like Netflix, HBO, or Apple TV+, with the total number of shows tracked in CouchTimes still in the double digits. Facing limitations as a non-power user with a less varied show list created challenges. As feedback increased, I learned of users tracking hundreds of shows, occasionally including shows started decades ago or ones with over 1000 episodes.

Reflecting back, having a more diverse range of TV shows for testing purposes would be beneficial in identifying stress case errors and problems effectively in the long term.

Respond quickly, be kind and ask for patience

In essence, my strategy for managing feedback and support requests entails prompt and appreciative responses, emphasizing the personal connection as a solo indie developer. Acknowledging messages quickly, expressing gratitude, and reassuring users that issues are being addressed help build trust significantly.

Users have expressed pleasant surprise at receiving timely responses from the app developer, often within 24 hours. This personalized approach, combined with requests for patience, particularly after the 1.5 release challenges, has effectively transformed lower ratings in the App Store to 5-star reviews.

Thank You

Last but not least, I want to express my gratitude to all the people who tried CouchTimes, provided feedback, and left ratings in the App Store. As a side project, it's truly rewarding when it adds to your happiness rather than stress. Throughout the past year, CouchTimes has achieved this, and it wouldn't have been possible without your support.

If you haven't heard about CouchTimes before and want to give it a try, don’t forget to download it from the App Store!