(1/12) I’m launching 6 startups in 12 months

The first month of the 12-month sprint to develop 6 startups.

For my first startup, I’ve decided to dive head first into two new technologies. React Native & Firebase. These are two fantastic concepts which I’ve been wanting to play with for an incredibly long time, but never had the chance to! I thought about using Django to create a backend in replacement of Firebase but decided in the end that the time to develop and maintain might just be too much for the limited timeframe I have.

What am I building?

I will be creating a simple ‘lucid dreaming assistant’ app. It’ll have two features, a dream journal and scheduled notifications for ‘reality checks’. A dream journal is just simply a journal in which you log your dreams. Seriously. It’s pretty simple. It helps with your recollection of your future dreams and allows you to spot possible trends in your dreams. This makes it easier for the user to notice they might be dreaming. ‘Reality checks’ are the act of quite literally questioning your existence right now. The user is occasionally notified to perform a reality check, where the user will simply attempt to push their index finger through their palms, and thoroughly question whether they are dreaming or not. It may sound silly, why would I need to know if I’m dreaming while I’m obviously in reality? Well, once you begin doing these checks often, it becomes a habit. Your dreams quite often copy what happens real life, so your habits will copy over as well. You will question if you are dreaming in your dreams. How cool is that? When you try to push your finger through your palm, your finger will go through it. This act will trigger the train of thought that leads you to realise you are dreaming!

Week One

I began with form over function, as I already had a clear vision of the function of this app. It’s all incredibly simple, two functions. The first and most focused on will be a dream journal with a simple analysis/reflection ‘screen’. This will allow you to not only log your dreams but reflect and analyse their meaning to further develop the separation between the physical world and the locations we create in our mind. The second function is a simple, configurable, scheduled notification that will trigger a ‘reality check’. These reality checks will begin to become a habit, and you’ll begin to try them in your dreams.

I started designing using Sketch, designing for the iPhone X first.

Name HEAVILY work in progress.

I started with the on-boarding process, going from the ‘Welcome’ screen through to the signup/login views, then an animated tutorial/introduction section. To create the animations for on-boarding, I’ll be using Haiku, it allows you to import your Sketch files, apply animations, and export to code. For a beta, it supports a surprising amount of export options, frameworks like React Vue, and React Native. It also supports HTML/CSS/JS exports, and iOS & Android.

Week Two

I began the process of collecting my exports from Supernova and creating my app, connecting it to Firebase. However, there were some issues with the export, which rendered the actual app near useless.

A broken login screen, after 2 hours of fixes

This is my login screen, after 1–2 hours worth of fixes and tweaking. I am not a native JavaScript developer, so take this with a pinch of salt, but the exports Supernova created were unusable without incredible visual tweaking. Some text was missing, icons were missing, the background was misaligned, at least the navigation worked. I had high hopes for Supernova, especially looking at the native exports in the simulator and seeing a 1:1 replication of my Sketch designs in the simulator. It seems the React Native exports are just not up to the standard of a native export.

I also began working on the app’s landing page, which will be hosted on my Firebase app, using Firebase Hosting.

Mockup for the app’s landing page

I started by looking at inspiration from Dribble and Hyperpixel, brainstorming layouts and how I can use my brands' colours to my advantage. Sketch allows you to copy-paste CSS attributes/SVG code of elements in your designs. I simply copied the gradient CSS from my background symbol, and just like that, I had the basics and colors for my website. I decided to add a full-width hero row, which will form the basis of details about the app. I plan to draw some graphics and animate them in Haiku and then export them to use as animated pictures on top of each column/feature.

Week 3

Week 3 was incredibly busy for me, outside of this project. So I didn’t get a lot done throughout the week. However, I’ve decided to completely scrap my Supernova.io React Native exports, and start from scratch. I’ve spent hours debugging less-than-acceptable JS code that Supernova has generated. I’ll be cancelling my Supernova subscription as soon as possible (Every time I go to cancel, it gives me a popup telling me I can cancel next week! Thanks Supernova). I’d been browsing Github for better solutions to my problems and found quite a few libraries that’ll help me achieve what I’m looking to do.

Everything is new!

I spent a few hours re-creating the app from scratch, free from any generated code. Shockingly enough, pretty much everything worked out as expected. I had managed to implement basic navigation and UI/UX elements, successfully recreating the onboarding process from scratch. This did absolute miles for my confidence in the long run and really boosted my morale.

The entire app has an (almost) brand new look, and feel. The quality and robustness feel a lot stronger than that of the Supernova exports.

Strictly work in progress

The landing page has had a bit of a rehash, with a new background pattern and copy. Soon it’ll feature an animated iPhone X mockup on the right column, showcasing the app and all its features!

Week 4

Supernova update! I was unable to cancel my Supernova subscription, every time I tried to change my plan back to “Free”, I was faced with a message saying this ‘feature’ would come next week. It’s an ambiguous message, as I am within a week of my billing cycle ending, yet I still cannot cancel? I had to send an email to the founders about cancelling my plan (Although they did reply almost immediately! Nice support!).

Moving away from the rather disappointing behaviour of Supernova (in general), I had finally added Firebase to the app! You could now create accounts, sign into them, and sign out of them, sweet! This is a pretty major stepping stone into Firebase, as this is my first time ‘dipping my toes’ into it so to speak (let alone my first time deploying JavaScript). I also began work on sending notifications to devices and CRUD abilities for the journal. There was a bit if a learning curve for notifications and Firestore, but I am hopeful that I can power through both of these and really focus on more of the UI elements and polishing during the coming weeks.

This week I also purchased a domain name, daydreamapp.co, and connected it to Firebase. Who would’ve guessed the app would go through another name change? You can now access the landing page using that URL, and soon enough you’ll be able to download the app from there as well. My hopeful aim for these 6 startups, is to have a domain and landing page for each.

As seen below, I also implemented Firestore into the app. All relevant data is now pulled from Firestore (from the user specific collection) and into the app. The UI is incredibly WIP, as I just wanted to get something onto the page. My vision for the entries, is that they will begin by showing you the title, a truncated description and the date of the dream, but you may click an expand button to roll out the extra info, such as the rating, dream type, and dream meanings data.

Data being read from Firestore

Wrap up!

I have learnt an incredible amount this month, not only in regards to programming but about myself. I feel like every day I spend working on this project, I feel less like procrastinating with other tasks. Overall, I am incredibly happy with the state of the app since the complete restart. It’s proven to be really valuable and has created some great learning experiences. I’m really looking forward to publishing this app, and possibly see to getting it placed on the Android store as well, in addition to the iOS App Store.

This month, my total expenses were $55, being the (much-regretted) Supernova subscription and domain name.

Want to download the app? Visit daydreamapp.co and download now!

Like what you read? Give Sam a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.