Blog

cuecamicon
CueCam 2.0: Markdown-ish webcam presentations

If you would rather watch a video of this post, go
!

Before we start: What is CueCam Presenter?

CueCam Presenter is a Mac app that makes it easy to present rich content on your webcam.
You can show pictures, text, video, share your screen, a second camera and control other apps.
It’s a presentation editor where you create a sequence of “smart cue cards” to feed a teleprompter and display content as you speak.
It works seamlessly with to turn your iPhone into a webcam, teleprompter and extra screen.
It works seamlessly with to let you control your presentation and draw on your screen using your iPad.

What is Markdown?

If you’re not a programmer you might not know what Markdown is.
Markdown is a way to write formatted documents in plain text, that is, text that does not have extra information about fonts and colours. This is useful because you can describe a document’s structure and the meaning of its elements without deciding exactly how it will be displayed. It usually looks something like this.
# Welcome to CueCam 2.0 <- this is the title
## It's great <- two hashes means 'secondary title'
* This is a bullet point
> This is a quote ~ by Someone
An app can take this code and decide that # Headings are in 36 pt Helvetica Bold or it could make those same headings stand out in a completely different way, for instance, by showing it in bright pink.
It’s easy for a human to read but it’s also easy for a computer to work with.
Stick with me and I’ll explain why this is relevant to CueCam 2.0.

What’s new in CueCam 2.0?

We have a brand new presentation editing interface.
After a fruitful and conversations with my first paying customers I saw how the first version’s slide / teleprompter editor had a big problem: it wasn’t clear how to see what your audience would see.
CueCam 1.0.png
CueCam 1.0
I’d added a hodge-podge of presentation features over time and they were all used in slightly different ways. It wasn’t clear how to preview your work and it was pretty inflexible.
CueCam 2.0 has a whole new presentation editor with realtime preview, a markdown-style syntax for building slides for experts and a new set of layout templates for newcomers.
I’ve revamped almost the entire user interface to make everything feel a lot more logical and self-explanatory. At least compared to 1.0!
Screenshot 2024-04-29 at 11.30.55.png
CueCam 2.0

Screenshot 2024-04-29 at 11.31.30.png
Slide Layouts

image.png
Live Camera / Dashboard

image.png
Clearer iOS Integration


image.png
More AI Text and Image Generation Features
I will talk more about the design changes later, but first I want to give you some background on the project.

Why I Made CueCam Presenter

Goals and Inspiration

My goal when creating CueCam Presenter was to make it easy to run presentations that go beyond a basic webcam, without getting bogged down in complex AV production software or running multiple interconnected apps just to be able to throw a title or picture on the screen.
I wanted to remove the friction of “can you see my screen” and the awkwardness of giving a Powerpoint presentation on Zoom.
I wanted to make audio a priority, so you could see at a glance whether you’re too loud or quiet, and make it easy to include the sound from a video or other app you might want to share.
I wanted to encompass some of the best practices and amazing ideas I’d seen for looking good on remote video (largely gleaned from ) without requiring all the expertise, configuration or a complex pre-flight checklist.
VS--YouTube-Episode7OvercomingMediocritywithDavidPaskin-25’48”.jpg
image.png
image.png
I wanted to make it easy to edit presentations that look as good as this. To start doing this, I had to find a way to separate content from presentation.

Content vs Presentation

Like any decent software developer, I always want to separate content from presentation.
Content, in this context, means the words, images, videos and any other cues that are required as part of a specific presentation.
Presentation, here, means how that content gets on screen (and into the virtual mic).
Software like OBS and Ecamm Live mixes your content with your presentation and that causes problems.
My OBS and Ecamm profiles were littered with scenes that I’d used in a single presentation but I was afraid to throw away in case I needed them at some unknown point in the future. A video, a title, a chart. I didn’t want my AV software to be an awkward mix of content and camera configuration. And I wanted to make the content portable. I wanted document bundles that could be passed from colleague to colleague instead of a link to some assets and some instructions on how to use them (instructions that nobody has time to figure out).
I wanted to be able to throw up a graphic or a video or a title or some bullet points without disappearing into a tiny thumbnail and I wanted to be able to edit these without having to grab my mouse and start dragging and dropping and right-clicking and rearranging text boxes or choosing font sizes.
I wanted to plan loose talking points, or the exact words I wanted to say, so I could speak confidently without losing my thread. I wanted to be able to focus on writing.
I wanted you to be able to draw on your screen, using your iPad and Video Pencil, without watching a configuration tutorial or relying on the opaquely implemented and awkwardly licensed NDI SDK, without any weird ghosting or video feedback.
I wanted to use my iPhone as a webcam and control all my camera settings directly from CueCam. I didn’t see any reason this needed to be complicated to set up.
And I wanted a teleprompter. I wanted to see my notes without looking away from my camera. I wanted to be able to see myself or whoever I was talking to, and for them to see me looking directly back. I wanted to see my carefully worded introduction. I wanted to see my interview questions. I wanted one window to drag into my teleprompter that showed me everything I needed to know, including a nice red border if my audio clipped.
I wanted one button to press. I didn’t want to have to remember a load of keyboard shortcuts or set up a load of Stream Deck buttons. I just wanted to run through a card and then press “next” without having to stop and think about which button is “next”.
was the best I could do on OBS!
And I wanted to be able to travel. I wanted to be able to run decently-produced live streams from an AirBnb, using just my Mac, iPhone and iPad. (And a lav mic, and some headphones). (youtube).
And I really wanted to be able to show stuff on my computer. And not just a silent desktop. I wanted to be able to bring up my music production software in one click and let you hear it. I wanted to be able to jump into a weird art piece I’d made with a game engine. I wanted to be able to do this without stress, and without breaking my stride.
This took a lot of tech.
CueCam Presenter goes pretty deep across a lot of different tech - audio, video, gpu-accelerated graphics, shaders, bespoke cross-device networking, parallel development of two iOS apps and integration with other Mac apps and protocols.

October 2023 - The launch of CueCam 1.0

I was moving to a new city. I had a baby coming. I tried to meet these deadlines to launch the app. After 20+ years as a professional software developer I’m usually pretty good at knowing how long something will take, but this app never stopped subverting my expectations.
It was so big that perfectionism wasn’t an option. And I had so many ideas for tweaks and improvements and new features that it was hard to stop. One Saturday I added music playback. And then spent the next week ironing out all the kinks. It should have been a post-launch feature but I couldn’t help myself.
There was a lot of tension between the requirements of a minimum viable product and something that did all the things I wanted for my weekly live streams.
After a few months of work it was time to put it in front of paying customers and get some real feedback.
Thankfully, I got exactly that. Some paying customers and a lot of feedback.
I should mention that at no point was I working in a silo. I knew there were people who wanted this app at every stage, having built a community around , , and other (less successful) apps on .
It wasn’t like previous big projects that went nowhere because I didn’t talk to anyone, I spent a lot of time talking to my customers.
But it did slow things down. I’d initially named the app “Beat Sheet Studio” and then a week before I was hoping to launch, someone asked me how wedded I was to that name. I groaned loudly as I realised I hadn’t really given it a lot of thought and now it was clear that it was not the right name. So I spent a week coming up with something better and then another week or two changing the name. Changing the name was not trivial and some early beta testers still have a problem with an unremovable camera extension as a result of this name change. And it annoys me every time I work on the website or CueCam source code that it’s still called “beatsheet” behind the scenes.
But the main thing was to get the most important features working and make sure that great results were at least achievable.
If you knew what to do with it. Despite the lack of documentation...

The problem of documentation

I’ve always found it difficult to create documentation.
This project helped me put my finger on exactly why.
As soon as you write down the steps involved in achieving a certain result with your app, it becomes clear that, with a small tweak here (or a large tweak there), at least one of those steps could be skipped.
So instead of writing a user guide or making videos that will soon (in my mind) be redundant, I spend a week making something easier to do. And then rarely do I write any documentation at all (because I’m worried that I’ll end up losing another week to yet another round of improvements if I try).
So I keep adding features and leaning on my weekly live streams, Discord server and release notes to let people know about them, which is particularly bad for people who are coming to the app for the first time.

Cycles of feedback

I like to get on video calls with my users, and started doing this more after CueCam 1.0 was released.
But each call resulted in a cycle of usability improvements and feature additions similar to those generated by my attempts to write documentation.
It’s great that the app is getting better and I’m getting a better idea of how to explain things to my users, but it can feel like wading through treacle sometimes.
I wish I could just say “here’s how to do X” without saying “but I want to make it work like Y which would be super cool”. If I conceive of an easier way something could be made possible, I feel guilty about giving people a more difficult way to do it!

Hacker News

I was a little scared, knowing the level of potential technical scrutiny to which I was exposing myself, when I finally posted my work to “Show HN” about 3 months after the initial soft launch.
I was thrilled to see such .
People could see the value in the project and started trying it out. They gave me some great ideas, and I’ve already implemented a few of them.
I knew that putting screen shares over the webcam feed could compromise legibility so the suggestion of providing a mirror for windowing as a “desktop” made a lot of sense. Sometimes you do want to take over the call, and with CueCam you can now do it without your face disappearing into a tiny thumbnail.
I had the suggestion of attaching Video Pencil drawings per-slide which turned out to be trivial to implement and is incredibly useful.
As more people discussed my app through the framing of “presentation software” some design flaws came into focus for me. It’s called CueCam Presenter but in my mind it’s still the bastard lovechild of Beat Sheet and Video Pencil Camera, neither of which are remotely comparable to Keynote or Powerpoint.
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.