Shape is a lucid dreaming app for iOS.

Case study: Building a profitable app in 30 days

Arthur Van Siclen
Bootcamp
Published in
5 min readOct 6, 2021

--

I just built Shape, a lucid dreaming app for iPhone. It took 30 days to design the app, build it, produce the audio guides, and ship it in the App Store. Here’s how I did it.

Design Phase

Lucid dreaming is the art of awakening within the dreamworld. Once aware of the nature of the dream, it’s easy to control it. You can fly, overcome fears, learn new skills, anything. I learned to lucid dream many years ago and improved my technique while studying yoga (dreams are especially important in the Tibetan yoga traditions). I knew I wanted to create a lucid dreaming app because it would help people proactively work with their mind, even if they’re not interested in meditation.

I wasn’t sure what a lucid dreaming app should look like, and that’s a good thing. Defining problems and solutions too early is the most common design error, so it’s healthy to let ideas stay unformed for a while. I let a few months pass with this vague concept in the back of my mind. I didn’t write anything down, I just let the idea sit there while I worked on other things and rock climbed.

Then one inspired day I opened Figma and drew some sketches of the app. I like to start with low-fidelity sketches, but for some reason I went straight into visual design and formed a motif.

I liked this idea of foreground gradients that subtly change — I’ve never seen that before in a software interface, so I knew it would be distinctive and eye-catching. (While animated background gradients are totally a thing, foreground or active element gradients are pretty rare, it seems.)

Earlier in the day I had looked at some package that arrived in the mail and noticed a monospace typeface. This typeface made me think the package was kind of fake, like something out of a sci-fi film. It seemed appropriate for an app that was designed to make people question whether or not their experience is real, so I went into my notes app and looked for my list of favorite typefaces, and saw JetBrains Mono. I thought something like “damn, what a typeface” and knew this needed inclusion in the app.

Shape’s type system, showcasing 6 sizes/weights of JetBrains Mono.

One fortunate thing about being a designer who also writes code is that I can make decisions early and save immense volumes of engineering resources. In this case, I went full-on with system features and minimized custom functionality/interfaces in order to trim down the engineering phase to the bare minimum. The result isn’t just an easier-to-build app, but also an easier-to-use app. Perfect. (Side note: when the simplest solution is also the cheapest solution, you know you’re on the right path.)

To sum up the design phase…

  • The feature set was discovered with months of passive ideation
  • The brand and visual design was laid out in a half-day’s Figma session
  • The app’s flow was quickly refined with an awareness of iOS system frameworks (I decided to do what’s simplest, writing the least amount of code)

Build Phase

To build the app, I need to do two things: write the code that makes it work, and craft the audio guides that constitute the lucid dreaming coach.

I decided to use SwiftUI to build this app, because I wanted to understand this new paradigm better. I love Objective-C and continue to write a lot of code in Objective-C, but I like to kill multiple birds with single stones and the easiest way to do that is to always be learning. I had previously created some home screen widgets in SwiftUI, so I wasn’t totally frightened.

Design+Code’s SwiftUI courses were an amazing resource for learning SwiftUI. I went through several of them, and had a blast. Many of the features from those courses were relatively applicable to the lucid dreaming app, and I’ve always founds that immediately applying lessons and techniques from tutorials into one’s own work to be the best way to solidify them and take ownership.

After about ten days I had learned the basics of SwiftUI and built a portion of the lucid dreaming app. With ten more days, the app was basically complete. What remained was the audio content.

Crafting Audio Guides

I had previously created audio for my app Timeless, so I was no stranger to the process. I knew how to record, how to edit the tracks, and how to convert the audio files into the ideal format for delivery. My girlfriend is a voice actor — so we have a home studio that’s an inspiring space for recording sessions.

My background is actually in teaching yoga, not crafting apps, so designing the lucid dreaming training was exactly the kind of thing I am suited for. I’ve taught meditation to in-person and remote audiences, and many of the techniques carry over to teaching other things.

Each day for about ten days I drove into the mountains, walked into the boulder fields, drank some coffee, read my book, and as inspiration landed wrote the transcripts for the audio guides. Then I went bouldering. When I got home, I recorded what I had written, tried it out, and refined it.

The author en route to the boulder fields of Rocky Mountain National Park.

Shipping Shape

I’m terrible at launching the things I create. I indulge in that phase of perfecting things, like a craftsman in a workshop delighting in the creation. But it’s not fair to other people — they need this app. And from a business perspective, just ship. Ship early. Ship often. Get it out there.

The key for me was understanding this one fact: I can optimize this app now, for my current mindset… or I can optimize this app later when I learn more from real people using it. That latter option is just so obviously superior that it’s now fairly easy to save features and improvements for versions 2, 3, 4, and 5.

Download Shape and learn to lucid dream. If you’re interested in writing, meditation, or tea, check out the other apps I design and build right here.

--

--