Building An App In 30 Days — Is It Even Possible?
Day 0 — The Story Begins…
I run a social enterprise called UniRise — we help disadvantaged students get into top universities. Mentors, personal statement reviews, course recommendation algorithm, etc.
Everything is 100% free and we’ve helped ~9000 students so far.
But this year we want to 10x to 100,000 users! And launch a bigger, better, more bad*ss tech platform.
No more Typeform, Zapier, Teachable. We want something custom-built.
But when we reached out to developers, the lowest quote we got back was £25,000…
So now I’m building it all myself on Bubble.
Today I mocked up the designs in Figma (the most intuitive but versatile design software I’ve ever used):
I feel like what we’re building is so simple! But the developers we’ve spoken to have spooked me out with their £X0,000 quotes and technical jargon…
I just made my Bubble account.
Starting to play around with the software.
Their tutorials are amazing! Like the best tutorials ever.
Day 1 — I’m actually making sh*t!
Today I finished Bubble’s tutorial content!
I made all sorts of cool things like a simplified Instagram, a song library search tool and this shopping list app.
I think very logically so always felt like I’d make a good coder…but every time I’d tried before, I get bogged down by the /// and <>:; and I never get anywhere…
I remember wasting £200 and 10 hours at a coding boot camp in my first year at university just to learn how to publish an ugly af HTML homepage.
My first day on Bubble and I’ve built a login dashboard, integrated a Typeform survey, and laid out the application infrastructure.
Check it out 👇
What makes Bubble so easy-to-use is everything is plain English!
Instead of having to code out a confusing if/then statement and storing stuff in databases, you can add workflows to Bubble like:
“If user clicks this button” → “Take them to this page” → “Increase progress bar fill by 12%”
It’s so easy as soon as you strip out the :://<> jargon.
The main difficulty I’m having right now is integrating Typeform and Bubble…but we’ll deal with that tomorrow.
Also, I think I’m addicted 👀 I got back home at 1 last night and stayed up till 3am no-coding…
Day 2–Typeform, I’d like to introduce you to someone…
Today I spent the first half trying to get Typeform to “speak” to Bubble.
Unfortunately there’s no good direct integration, so I investigated Typeform Developer APIs etc. but got scared so started looking for an alternate solution.
And what I found was genius! When users move from Bubble to Typeform, I can add their name and email to the Typeform URL link so when they land on the Typeform page, Typeform knows who they are…and vice versa, when they land back on Bubble, Typeform sends their name and email in the URL so Bubble knows who it is.
No need for APIs — just “web hooks” as they’re called, hidden parameters sent via URLs. Cheeky 😉
Day 3— 2 functions, 1 button
Today I built my beautiful progress bar!
So now as students work their way through the course, they can see their live progress up top.
Check it out 👇
I also ran into some difficulties getting around the infamous 2 functions, 1 button problem.
Basically: when you click Complete Lesson the first time, I wanted the progress bar to fill up, the button to go green and the student to move onto the next lesson…but if they clicked the button again it would “uncomplete” the lesson, reversing the student’s progress etc.
With the help of Bubble’s insanely responsive forum, I found a solution!
After the first button click, Bubble would change the variable M1L1 to take value 1.
I then attached a condition to the button, stating that if M1L1 is already 1, then another click would change M1L1 back to 0.
So when students first click the button: M1L1 goes to 1, the button goes green, and the progress bar fills up.
But second click: M1L1 goes to 0, button goes grey, and progress bar reverses — all triggered by the different values of the M1L1 variable I made.
Day 4— make art, not tech
Check out the new dashboard 👇
Still a work in progress but kinda peng right?
The beautiful thing about no-code is designers get total control over their product!
As an artist, I’ve always felt frustrated when building tech products.
I’d have these beautiful visions in my head…but when I communicated them to developers/technical cofounders, they’d come back (usually several weeks of development later) with designs that made me 🤢
Amazingly talented coders, they just didn’t have the design skills…
But even when communication was crystal clear, the spark always missing.
Now that I’ve got 100% creative control, the spark’s back!
Instead of handing over design sketches and praying for the best, I’m constantly iterating and redesigning on the go.
Our signup page started off a boring email/password form; now it’s Harry-Potter-themed with beautiful testimonials on the side.
And the main dashboard (see below👇) is space-themed; with colour-coded graphics to match our company colours.
It’s these little touches that (for me at least!) make a product truly special; when a product goes from tech utility to emotional experience.
But maybe that’s just me 🤷🏽♂️ would love your feedback on the designs!
Today’s lesson: make art, not tech!
Day 5— Nikes on my feet, the cipher’s complete
BOOOM! The whole platform is now functional👇
Thanks so much to Rob Blake — my Bubble coach — who in just an hour transformed my understanding of database structures and turned a 100+ page product into a 3-page design! 😂
Not sure why I look so red in the video but super excited now.
With 25 days left in the challenge, I’ve increase my ambition and will be building some insane new features like our Course Explorer and Viral Referral Engine 😎
Day 6— Back to the drawing board
With the core platform taken care of, I’ve turned my attention to our course explorer.
You’ll be able to explore every course in the UK and watch day-in-the-life vids + honest interviews with current students; find out what grades successful applicants commonly have, campus tours, application guides and so much more!
We mocked up a version in Notion^ a few months back as an MVP and students loved it!
But the UI sucked, and within the parameters of a static Notion page we couldn’t really deliver on the promise of “one-stop-shop” for university application information.
So I’ve spent the day mapping out our new and improved course explorer.
The rough designs are BTEC af (I know):
But I’ve taken inspiration from Airbnb and other UI beasts.
This is an important point for edtech founders. Almost all edtech products I’ve seen look ugly af; I think it’s because a) “it’s education, who cares about aesthetics” and b) edtech founders just copy each others’ platforms (lol) so they all end up looking equally meh.
Obviously there are exceptions (Duolingo, Masterclass) but everything else is just unsightly 🙊 (Teachable, Coursera, Applyboard — yes I’m throwing shade, sorry not sorry)
Day 7— Back to endz
I’ve now got the backend set up for our course explorer:
I’m using AirTable to store all our content, and I’ve synced it up to Bubble so it’ll just pull content from AirTable and display for our users.
You can think of AirTable as Google Sheets on steroids. And with ~50 million data points to be added to our content database…I wanted to use a tool designed to handle those data quantities (not Bubble’s native database).
Day 8— First roadblock
Today is the first day I felt out of my depth:
A stupid problem with this “fuzzy search” plugin I’m using is screwing everything up and now I’m wasting time connecting up APIs.
The documentation for these APIs is awful and obviously written for technical people so I’ve literally spent all day just googling term after term: bearer token, API connector, GET request, private key header…ugh!
Update: I decided to return to the problem just before midnight and found an uncompromising workaround using God’s best friend, Zapier ✌️
Another update: the next day I realised Zapier doesn’t work lol so we’ve got a virtual assistant to manually add subjects from AirTable into Bubble’s native database…not perfect, but such is life 🤷🏽♂️
Thank you no-code universe 🙏🙏🙏
Day 9— We’re getting there…
The syncing problem between fuzzy search, AirTable and Bubble is now solved so it just feels like an issue of adding content and making things look nice!
Easier said than done as I found out the hard way 👇
Day 10— Steal Like An Artist
Today I’ve been looking at Airbnb and a bunch of other elite designers to get some inspiration.
We’re trying to build something new, cool and exciting — not another hideously ugly university course comparison blagh.
I feel like founders in the education space have this nasty habit of copying each other. I’ve seen very little “inspiring” design in education — everything just has this “school-esque”, underwhelming look to it.
I recommend education product designers stop looking at competitors, and start looking at serious top-level designers — the Googles, the Facebooks, the Airbnbs…what are they doing?
For instance, I mocked this up in Figma after some inspiration for Airbnb:
Still needs work but already miles more aesthetic than the Guardian’s league tables or UCAS course search #🤮
Also built in a course-shortlisting feature so as you’re browsing courses, you can add them to a shortlist…and then as you “un-like” courses to narrow down your final courses, a popup will appear asking you why you unselected that course.
This will be useful data to help universities improve their course quality!
For our subject guide, which previously looked liked this in Notion:
Lots (too many) words #😴
So I’m sprucing it up with some snazzy pictures:
Again, needs some design work but already looks a bit sexier.
Day 11 & 12— The £4000 bet
So my time this week has been eaten up by random and annoying (but important and inescapable) commitments elsewhere in the company.
We still want to reach our launch date target…and so desperate times call for desperate measures…
After my weekend camping trip got canceled, I decided to give my cofounder £4000, which I only get back if the product is completed to showable standards by Monday.
Unfortunately: I only slept 3 hours on Friday night…so this will be an interesting weekend!
Things were going well in the world of Bubble until my brand new Macbook Pro decided to do this:
I spent several hours trying to fix the issue. Apple were obviously useful but if you turn your laptop off and on enough times it eventually fixes everything.
With a few nuggets of wisdom from Rob the Bubble Coach, the main site infrastructure was fully functional by Sunday afternoon (not bad for a full day of Bubbling)! Unfortunately, because I’d given Ollie all the money in my current account…I had no money for food:
Things were looking bleak…
And at midnight on Sunday, I gave up. There were still several huge features I still hadn’t built but I had no energy left and couldn’t think.
I figured 6 hours of sleep would be better than running on empty into the twilight…so I woke up at 6:15am on Monday morning (3.5 hours before the deadline) and blitzed it:
See those ticks? Yeah those are my ticks. I’m f*cking exhausted. Maybe this was a dumb idea…but (functionally) the app is finished ✌️❤️
Day 13 — passing the baton
After 12 days of intense Bubbling, the backend infrastructure is all set up.
But the app isn’t mobile optimised for sh*t and the UI doesn’t look nearly as beautiful as the mockups I made in Figma.
I spent several hours on calls with a Bubble mobile optimisation expert, Jason, but frankly I found the process extremely frustrating.
Things are now aligning more neatly and it has been fascinating to explore the intelligence of Bubble’s mobile repsonsiveness engine…but we’re approaching launch date and I’ve got other responsibilities!
So I’ve contacted a few Bubble developers (~5% the cost of a regular developer) and they’ll spend the next couple of weeks getting it mobile-perfect with beautiful Airbnb-esque design.
Honestly, it’s so crazy to think that just a few weeks ago I’d sketched this all out on my iPad…as a company we’ve literally saved (at least) £25,000 building this myself.
But more than that: I’ve learnt an extremely powerful new skill and unlike many founders, I understand our tech platform inside out — its functionality, its limits, its possibilities.
I find it deeply amusing to watch bullsh*t startups raise £500k+ in “seed money” to build a basic b*tch web app. You can literally do it on Bubble (and other no-code platforms) at zero cost in just a few days.
Final chapter — coming soon…
We’ll see what the final product looks like after some extra tweaking from professional Bubble developers.