The Coppice Blog

News, tips, and sneak peeks

Streaming Coppice Development

Posted:

Software development can seem like a rather opaque practice at times. People tap on keyboards and software comes out at the end. Most people only see the final result, not the many decisions that led to it. You also often don't get much communication with the people behind those decisions, beyond the occasional blog post, tweet, or support email.

I've been thinking of ways to help change that with Coppice. Last week you saw one aspect, with the introduction of the Dev Diary to chronicle what I have managed to work on the previous month. Another aspect is what I want to talk about today: the Coppice Dev Stream.

Developing Live

When most people think of live streaming services like Twitch they think of people streaming playing games or chatting with people. However, there's a small but ever-growing community of people developing software too. From games to websites to server side code, developers are sharing their process with people all over the world.

I've been enjoying quite a few of these streams. In particular I've enjoyed both Pirate Software (who is building a game) and DoigSwift (who build their entire streaming environment in Unity). These streams have inspired me to experiment with building Coppice live.

There are multiple benefits for me in this. For one, having a regular streaming schedule helps lock my focus down purely on Coppice. I've found that I'm far more productive while streaming than I would have otherwise been because I'm very present in those 2-3 hours of the stream.

I also have the benefit of people in chat offering suggestions when I'm stuck on a problem. I would have got to a solution eventually, but I've had several cases where chat has helped speed me up by pointing out the more obvious answer.

Streaming can also help work as a "low effort" marketing tool. Marketing is one of the hardest things for an indie developer to do, and it usually takes away from time that could be spent improving the app. Streaming allows me to make the development part of the marketing. It's too early to say how real this benefit will be, but it doesn't cost me anything to do.

Finally, streaming offers me a way to give more back to the community. Others can watch and learn how a Mac app is built. They can bring questions along for me to try and answer. Or they can just see out in the open that everyone makes silly mistakes or writes messy code from time to time.

Building the Stream

I want to go a little bit into how I've built up the stream. The first key part is the video. This is handled via OBS (the Open Broadcaster Software), which lets me build up various scenes. Most of the time I'm on a scene that captures my iMac's screen and adds an overlay and my little robot avatar over the top.

Screenshot of OBS. The top left is a preview of the screen. On the right is a Twitch chat. On the bottom are areas for Scenes, Sources, Audio, and Controls

The little robot avatar is my answer to the fact I don't want to have a camera on me for several hours. It uses an app called veadotube mini, which lets me set up a series of PNGs that will change based on my audio input.

Speaking of audio, that is the next key component. For hardware I'm just using my regular gaming headset. Now I did buy this headset because it's meant to have a better than average mic, but I haven't gone for some sort of fancy set up. With a few audio tweaks in OBS it's sounding pretty good.

The background music is a bit more involved. First is finding the music, as you need to get royalty free and DMCA friendly music, but thankfully I've managed to put together a playlist. Next is getting the audio into OBS. This is a bit Rube Goldberg-esque, but essentially I use SWB Audio App to create a virtual output for OBS to read. It also creates a virtual input for me to pipe the audio from the Music app to, which I do using SoundSource. A bit awkward to set up, but it works really well.

Finally, I have my Stream Deck. This is probably the biggest amount of money I've spent on this set up but, to be honest, the stream was just the justification to finally buy something I've wanted for a while. I've configured various actions to let me switch my OBS streams, switch my avatar between states, post messages to the Twitch chat, and even post my "going live" tweets to both @coppiceapp and @pilky.

Screenshot of streamdeck app. On the left are buttons for controlling OBS, in the middle are buttons for twitter and twitch, and on the right are buttons for controlling avatar expressions

Watching the Stream

If you want to follow along with Coppice's development, ask questions and provide live feedback as I design and code, learn more about software development, or just chat with me and others watching, then you can follow along live at twitch.tv/pilkycrc.

Currently I'm streaming twice a week. Every Monday I stream from 2pm-5pm UK time (9am-12pm EST). And each week I alternate between Friday from 2pm-5pm and Saturday 2pm-4pm, to fit around other work commitments. If you follow the pilkycrc account on twitch, you can be notified whenever I start streaming.

If you can't catch the streams live then you can watch the videos on-demand. The videos go up on Twitch immediately after the stream ends and stay up for 2 weeks. I've also started a YouTube channel for Coppice where I'll be uploading each stream a few days later.

A grid of 6 youtube thumbnails for Coppice Dev Streams

I hope you'll join me as grow both the stream and Coppice itself. As always, if you want to stay up to date with Coppice then also be sure to follow @coppiceapp on Twitter and subscribe to The Coppice Blog

Dev Diary – January 2022

Posted:

Back in October I wrote about how I wanted to be more transparent about the development of Coppice. There are several ways I'm wanting to do that, but the one I'm focusing on today is a new series of posts called the Dev Diary. This will be a monthly account of what work I managed to get done on Coppice, be that design, development, marketing, or anything else around building and selling an indie Mac app. So let's get started with January's edition.

Recovering from 2021

After the release of version 2021.2 I was feeling dangerously close burnt out. I took the decision to take the whole of December off from working on Coppice, and then take two full weeks off all development work over Christmas. Burn out is a dangerous thing, especially for an indie developer. I've learnt the hard way that it's far better to tackle it early to save yourself in the long run.

Thankfully, after this rest I'm now feeling a lot happier, healthier, and more enthusiastic about working on and improving Coppice, which bodes well for the rest of the year.

Starting Streaming

The first thing I worked on this month wasn't actually Coppice itself, but a live development stream. This is a place where people can tune in to watch me work on Coppice live, and bring comments and questions for me to answer as I work. It's another pillar of my transparency strategy and one that is also helping keep me motivated and focused on the task at hand.

Most of the work this month was just building the initial stream setup and getting used to the software, but I'm pretty happy with how things are going. I'm planning a more in-depth post next week, but you can check out the stream (including VODs of old streams) over at twitch.tv/pilkycrc.

Starting Version 2022.1

The next big version of Coppice is version 2022.1. This will focus heavily on improving the functionality of image pages. The two key areas I'm working on are some basic image editing tools, such as rotate and cropping, and the ability to create links from image pages to other pages.

I've already managed to get the rotation functionality built and have made a good start on the cropping functionality. The latter is going to take a lot more time than I anticipated as there are lots of small UX problems to solve.

Screenshot of an app displayed inside Coppice. Part of the image is highlighted by a rectangle, with resize handles around it

I've also started building out the designs around how linking hotspots might look, though this may take a bit longer to implement. One enjoyable thing about this whole version is it's pushing my graphical coding abilities beyond my usual comfort zone, allowing me to explore parts of Apple's APIs I haven't had opportunity to touch in the past.

Screenshot of the Coppice website inside Coppice as a page. A rectangle is highlighted and surrounded by dotted lines with resize handles at the corners

That will do it for this month's dev diary. As always, if you want to stay up to date on Coppice then be sure to subscribe to The Coppice Blog and follow @coppiceapp on Twitter.