Create an app without knowing code
A few months ago I set out to create an app that’s a website which acts like software, but doesn’t require any programming to make. I wanted to see how much was possible nowadays without code – to prove a point to myself that anyone can make software, regardless of technical or programming expertise.
(For programmers, I’m using the term “software” loosely to illustrate a point that anyone can “make” something on the internet.)
The feature-set I wanted for my software was this:
People can submit their online courses to be added to a directory. A manual vetting process means that courses are either in a pending, approved or rejected state.
People can sign up for free accounts which let them rate/review entries and save their favourites to a list within their account.
The directory can be filtered by tag and by type, and be fully searchable.
In the past, this might require custom programming to create user accounts and then have features for each user, like saving favourites, rating and reviewing. But there’s so much good, sometimes free software out there, that a simple website like this could get by without any code.
The whole thing is hosted by my friends at FlyWheel, which comes with free WordPress setup, so you don’t have to worry about installing software, just setting up your site and customizing it.
Create an app with WordPress
For all its faults, WordPress is an amazing and super extensible bit of software. Out of the box, with the default theme, you’ve got a fully functional blog. To move past that, you simply need to add a few plugins.
Here’s what I used to make this directory site work:
Restrict Content Pro: I love this plugin and use it for all my paid courses, but it also works great for a simple registration system to allow people to sign up on your site quickly and for free. Now anyone that wants an account on your site can have one, and what you share with those users is totally up to you.
Advanced Custom Fields: I wanted each course listed to have: a blurb, a title, a tagline, a price, an instructor and a URL. ACF let me easily set those up as custom fields (which are bits of information that can be shown separate from the “content” area in WordPress) so adding a new course is a snap.
Favorites: American spelling aside, this plugin lets users favourite posts, and since each course listed on the site is a post, users can favourite the courses they like. It also comes with a shortcode (an easy way to add a button for favouriting into WordPress – like [wp_favorite]) that let me create a list of favourite courses for each user.
Social Warfare: A simple plugin that adds share buttons to each course. It was easy to setup and customize so the share buttons didn’t stick out like sore thumbs (Side-note: do sore thumbs really stick out? Like, when was the last time you noticed someone had a sore thumb?)
MC4WP: I use this plugin more than anything else, since it connects WordPress to MailChimp in ways far smarter than the code MailChimp gives you. In this case, I needed only one feature, User Sync. Now, every time someone signs up for an account, they’re automatically put onto the mailing list, with a hidden merge field, populated by their subscription—this integration helps differentiate users and course submissions for automation sequences.
Create an app with MailChimp
I wanted the website to both alert course submitters via email if their course was approved or rejected, but I also wanted to be able to share news and updates with users, so MailChimp was the obvious choice (see my own MailChimp tutorial here).
Within MailChimp, I created one hidden merge field that gets filled with “yes” if someone signs up for a user account. I also created an Interest Category (i.e. a Group) with 3 options:
Pending: email addresses get tagged as this when people submit their course. I’ll explain in the next section how.
Approved: when I’ve manually reviewed a course and confirmed it met the criteria, and looks good, I’ll approve it.
Rejected: when I’ve manually reviewed a course, saw it did not meet the criteria, or it looks of poor quality, I’ll reject it.
Each tag triggers a different automation sequence. So when someone first submits, they get an email telling them they’re in the queue, and I’ll review it shortly. If they’re approved, they get a welcome message saying they’re listed on the site. If they’re rejected, they get a message saying how they can improve.
Create an app with Typeform & Zapier
If I had wanted people to submit courses that were automatically added to the site, I would have set up a form directly in WordPress to do so. But, since this is a list of the “best” (super subjective, I know) courses, I wanted to manually vet them before including them on the site.
To that end, I used TypeForm to collect submissions. The form collects everything from the screenshot to the course details.
From there, I get an email with the submission, and Typeform pushes the data to both MailChimp (adding the person to the pending queue) and to WordPress (to create a draft of the course, with a few details filled in) using Zapier.
That way, all I have to do is view the submission in my inbox, and if it’s good, finish updating the draft in WordPress and publish it. Then I go into MailChimp to set the group tag from “Pending” to “Approved”. If the course doesn’t make the cut, I simply delete the draft and set the group tag to “Rejected” instead. And remember, both tags fire off an automation email with details to the course submitter.
To summarize how to create an app without code
There are certainly limitations to building software without knowing how to code and I love to hire and work with software programmers, but there are also so many possibilities to create functionality on websites or courses without ever looking at the source code.
Since I am a designer/developer, I created a custom theme for CourseList, but most any theme will work, even free ones. Just pick any design that fits what you want to accomplish.
This whole project, start to finish, took me a total of two days. The first was spent on design (which can be skipped if you pick an existing theme) and the second to set it all up. Two days, start to finish, idea to launch. Sure, it’s not perfect, and many processes could be tweaked to be faster, but it only took two days to launch. One thing’s for sure, you don’t have to be a tech whiz or programmer to create things online anymore.
So, what will you launch two days from now?