Getting your first freelancing job is hard. Getting a freelance job without a demo project or portfolio is just about impossible.
Why is the demo project so important? Because without proof clients will not believe what you tell them. They want to see that you can reliably solve their specific problem.
A solid demo project will get you your first freelancing gig. It will set you down a path and start a chain reaction that gets you additional projects.
Qualities of a Solid Demo Project
A great demo project:
- Looks good
- Works – you can send someone a link and let them try it out
- Uses programming languages similar to the type of jobs you want to pursue
- Has code hosted and available for review
Make Your Demo Project Look Good
Let’s start with the first one. First impressions matter, so how your project looks will go a long way to landing you a job.
Now I know a lot of you are back-end programmers like me that cannot design from scratch. So I’ll tell you my secret to building a great looking app with zero design skills: themeforest admin templates.
These templates cost around $25 and come with all the elements needed to design a great looking app, to include menus, forms, charts, and tables.
More template ideas:
Make Your Demo Project Work
As for hosting your project, I’m a big fan of Heroku. They have everything you need under one roof, to include databases, monitoring, etc. The free tier includes a lot and is fast.
If you do use the free tier, your app will ‘sleep’ after a period of time and be slow to start. That’s bad if you are sending it to a client.
Instead, splurge for a hobby dyno which is $7 per month. Or, if you are really cheap, turn the hobby dyno on right after sending proposals when clients are likely to take a look at your app.
Other places to host your app:
Build Your Project with Technologies from Your Niche
Obviously, your demo app should use languages and frameworks similar to the jobs you plan to apply for. It should closely align with your chosen niche.
Host Your Code
Finally, you will want to host your code somewhere so clients can view it. The easy choice for this one is GitHub.
GitHub public repositories are completely free. The interface is a joy to use.
When hosting your code, make sure your code is clean and compliant with current coding standards. For python that would be PEP8. To make that really easy, use a an editor with a linter such as Sublime Text, which shows formatting errors and issues as you type.
The fact that you can push your code to GitHub alone will help you get clients, who are very likely using Git and GitHub in some manner for their own projects.
Other ways to host your code:
What to Build
Now I know what you’re thinking. This is all good and well but I don’t know what to build!
My first advice is to build something that you are passionate about that you think will be useful. Solve your own problem. Pursue that random idea you had at 3AM.
If nothing comes to mind in that area, then here is a formula to use:
- Choose a software as a service product
- Apply it to a niche industry
- Purchase an admin theme from ThemeForest
- Build out one to two core features
- Host it on Heroku
- Push the code to GitHub
Choose a Software as a Service Product
You can find software as a service (SAAS) ideas from browsing the Saleforce.com web site. Some recommended ones are:
- Contact management
- Lead generation
- Project management
- Trouble ticket system
- Customer check-in system
Whatever you choose, keep it simple. A SAAS product can be very complex. But unlike Salesforce that builds out the kitchen sink, you are going to focus on a couple very core features, and tailor it to a specific industry.
Tailor it to a Niche Industry
What I built was an estimate and invoice application for photographers.
Why photographers? Most estimate software is generic, covering every category of expense or product offering. The plan for my application was to to have industry-standard products preloaded. So when a new photographer added a copyright for an image, they could see what other photographers would normally charge, and easily add it to the app.
You can do the same thing with other industries, such as:
- Real Estate
Putting the two together, your SAAS idea can be:
- Customer check-in system for spas
- Lead management for realtors
- Project management for construction
- Contact management for schools
Wrap it in an Admin Theme
The admin theme I used for my product was Limitless.
Build One or Two Core Features
The core features I built was to:
- Register as a new user
- Log in/log out
- Create an estimate for photography services
- View an estimate
- Print or email an estimate to someone else
Why do I like SAAS products so much for a demo project? Because it demonstrates the core features that almost every web development project needs:
- Create an account
- Log into the web site
- Add data via a form and save it
- Log in at a later time and view or edit your data
Now when you apply for jobs you can tell your client:
‘I recently built a software as a service product MVP for the construction industry. You can check it out here, and the code is available on GitHub here.’
Did you catch that part about the minimum viable product (MVP)? That’s right, your SAAS product is not finished and it’s not in production. But it’s an MVP and clients can appreciate that.
This kind of language will get their attention and get you in the front of the line for jobs.
The last two steps, hosting and pushing the code, were covered in the previous section.
Working with WordPress
Now if you plan to build web sites using WordPress, then your demo project will be a bit different, in that WordPress is not perfectly suited to building a SAAS product.
In that case, I would build an example small business web site using a custom theme.
Already have a demo project?
If you are already have a project to show off, great! Update or remove any incomplete features. If it looks like garbage, purchase a theme and try to spruce it up.
Did you complete a project at a past job? You can send your client the link (if that is an option) and send them screen shots of your work on it.
Bad Project Ideas
I hate to say there any bad project ideas. But if your goal is to optimize your chances of winning freelance clients then I would avoid creating clones of other web apps.
I sometimes see people do things like clone the Reddit web site as a learning exercise, which is a great. And when I say clone, I mean it looks exactly like the Reddit web site, but all the backend is done by the programmer.
I do not recommend sending these types of web sites to clients because it likely confuses them and makes them wonder what portion of the site you did build.
To sum this up, your demo project is the cornerstone of your freelancing career. It’s the boost that’s going to get you over that initial hump of getting your first job.
Before I finish this up, let me address one likely remaining fear. You’re probably saying ‘Oh yeah Casey just build a software as a service product, no problem!’
If you think you don’t have the skills to build something like this then think again. Break down the problem into manageable chunks. Focus on each core component at a time and ask for help from your programming community if you get stuck. Don’t give up!