The development of internet technologies offers wide opportunities for job opportunities all over the world. You are no longer stuck to your city and the office, but can find employees and employers from all over the world and work from whatever place you like.
This freedom becomes possible due to freelance marketplaces like Upwork. By connecting people seeking work and workers, they establish the communication between the parties and help to find the necessary person and project. For the entrepreneurs, such a platform is a good way to build a stable and profitable business.
In this article, we will consider the success story of Upwork and the core functionality of the client’s and freelancer’s side. Also, we will speak about the development process and give an outline of all the stages for creating such platform from scratch. Finally, we will calculate the approximate cost of creating a freelance marketplace MVP, and find out how much time it will take.
Initially, there were two companies – Elance and oDesk – founded in 1999 and 2003 respectively. Both of them were freelance marketplaces connecting workers and their employees from all over the world. In 2013, the companies merged as Elance-oDesk platform. The deal was finalized in April 2014, and the newly created platform contained about 500,000 registered businesses and business owners, and about 8 million freelancers.
In 2015, Elance-oDesk got rebranded as Upwork. At the moment of the deal, the marketplace contained about 10 million workers and a million businesses.
The functionality of Upwork
Both clients and freelancers can register themselves on the platform as private people or entrepreneurs – in each case, the workflow will be a bit different.
The employers can create online teams of freelancers right on the platform – Upwork provides all the necessary software for doing this. At this time, the platform allows employers to see the process of freelancers’ work when they are in the paid-time mode. Management of workflow and payments is also handled via the company’s tools.
Further on, we will consider the functionality of each side of the platform – client, freelancer, and enterprise (for the companies).
The freelancer’s side
On the homepage, the visitor is offered a search form and the basic types of work that can be done. There is an option to create a new account or log in to an existing one. Also, the visitor may go to the knowledge base in order to find out more about Upwork’s functionality.
In order to register as a freelancer, you need to provide your email address and username, and enter the captcha. On this page, you will be asked to agree with the terms of service and customize your notification preferences.
Upon completing the registration, you will receive a verification email. Click the link to confirm your account.
In order to continue the work, fill in your profile (add photo, job, description, skills, set your hourly rate, etc.). It will take some time for your profile to be approved, and then you will be able to apply for jobs.
When the profile is approved, the freelancer may apply for jobs.
The client’s side
- Sign up
If you wish to sign up, you will be asked to enter your email address and choose the type of profile – employer or freelancer. Right there, you may customize your notification preferences.
Then, you will be asked to provide additional information about yourself or your company. To do this, Upwork will give you a small questionnaire to fill out.
- Post a job
Upon completing the simple registration process, you can already post your project by providing the necessary information: title, description, budget, etc.
If necessary, you may attach a file for the project description (5 files up to 100 MB).
Then, you may provide additional information about your project. Here you can also ask the freelancers to provide you with a CV or a cover letter.
For the system to offer you the most relevant freelancers, provide additional requirements for their expertise.
You may restrict the visibility of the projects to a particular group of users. Here you also may specify if you need just one worker or several.
This page is designed to handle the financial details of the project. Here you may select the pricing model, the expertise level of a freelancer, the approximate time of cooperation, etc.
The last stage is to look through your project once again and check that you have entered everything correctly. Once it is done, you may publish the job or save it for later.
The registration process for a company is almost as simple as for individuals. In this form, select the necessary variant and answer the additional questions.
Then you will be asked to provide additional information: the company’s name, business phone number, etc.
To facilitate the registration process for the representative of a company, it is possible to invite all its employees in bulk mode: just enter the necessary information, write the message, and the work is done.
Upon completing this stage, you will be taken to a form for posting a project, which we have already considered.
Monetization of the marketplace
The platform is free – the employers can post an unlimited number of projects and the freelancers can send an unlimited number of applications.
Upwork takes its fee when the client pays for the freelancer’s work. If a freelancer earned less than $500, a 20% fee is charged. The more money the worker earns, the less percentage fee they pay – the platform takes 10% of revenues from $500 to $10,000, and 5% from revenues of $10,000 and above. The payments can be handled via Upwork only.
Building a website like Upwork
If you want to make a freelance platform like Upwork, you should define the aim of your business. Do you need a small platform with basic functionality or you do have some ideas you want to implement in the project? Depending on your answers, different methods of development may be suitable for you. Let’s take a closer look at them.
Building an Upwork clone is the fastest, easiest and the most affordable way to build a freelance platform. For about $1000, you can buy a template that will be a ready marketplace similar to Upwork (or any other famous one). It will work in exactly the way the original does, and have exactly the same functionality (without customization) and a similar design. Such platforms are not powerful enough to cope with a high load, but they are a good solution for those who want a quick result.
A more advanced way to make an Upwork alternative is to consider the services of online marketplace constructors like Sharetribe. You will be able to create a platform with a custom design and choose the functionality from the offered material. It is also an affordable solution – creating and maintaining the platform will cost you from $79 to $239 per month depending on your plan (see more information here). For this money, you will receive access to all Sharetribe functionality and have 24/7 support. Your data will be stored on their servers, along with thousands of similar platforms. Note that the marketplaces based on Sharetribe and similar constructors are not powerful enough to cope with large amounts of clients (for example, paying $239 for Sharetribe’s most advanced package, you will have a marketplace limited to 100,000 users).
The most advanced and challenging option is to consider the services of a software development company. They will offer you the team of developers, QA engineers and project managers, who will take into account all your requirements and preferences and create exactly the product you want. By the way, the core specialty of Sloboda Studio is the development of online marketplace platforms. We will consider the process of development in detail and calculate the approximate cost of developing the MVP for an online marketplace platform below.
How to create a website like Upwork from scratch
Constructing a fully featured web application requires the coordinated work of a development team consisting of backend and frontend developers, designers, QA engineers, and a project manager. We have covered the main aspects of the development of the backend part of your future freelance marketplace below.
How many types of users will your platform have? Which functionality will have different types of users? How will the server-side part work? These and other important questions should be answered at the stage of designing the architecture of the application. This is the most important part of construction, which will define the whole process of development and the work of your app.
API development and integration
An API is a programming interface for developers to interact with a program. Writing custom software implementations requires a lot of information, and integrating a third-party API allows developers to get the data they need in a convenient JSON or XML format. This will also help to introduce useful third-party tools, like Stripe for payments or Twilio for notifications.
In order to securely store the information about all your clients (including confidential information) and process the numerous requests from the users, the app needs a powerful database management system. Generally, we apply the combination of Ruby on Rails with PostgreSQL for this purpose.
QA & Testing
To ensure the perfect performance of the application, the product should be tested during all stages of development (not only before the production!). Using famous testing tools like Capybara, RSpec, and Selenium, we automate and speed up the testing process, shich helps us to deliver bug-free products.
Having finished the development, it is time to deploy the application in the necessary environment. The deployment process also includes upgrading the product in order to make it compatible with the new systems and their versions.
After finishing the work and releasing the product, the development process is still not finished. To make it work properly, constantly upgrade it, and add new functionality, we provide maintenance services even after the actual development is finished.
- Server-side: ElasticSearch, Grape, I18N [2 languages], PostgreSQL, Rack, Rails, Ruby, Sidekiq
- Tools (hosting, monitoring, etc.): Airbrake, AWS S3, BrowserStack, Codeship, Confluence, GitHub, Heroku, Slack, Swagger, Testrail, Youtrack
- Integrations: Intercom, localise.biz, Pexip, SendGrid, Stripe, Twilio
How much does it cost to build a website like Upwork?
- Sign in/sign up
On registration, the user should be allowed to create the two types of profile – freelancers and clients. To introduce this function, we will use CanCanCan and Devise Ruby gems.
- User profile
Generally, freelance platforms have two types of profile – customers and freelancers. You can also allow registering a company – it is up to you to decide. In the profile editing page, the parties should be able to provide their name, bio, and skills, and add portfolio items. For the freelancer’s profile, you may introduce the requirement of passing some tests to confirm their skills.
For the parties to be able to trust each other, it is necessary to introduce a verification system. You can verify your users by asking them to provide an email and phone number, government-issued ID, a photo, or other credentials. The companies may be asked to provide their registration number and/or tax information.
- Job posting & bidding
To make the platform work, the clients should be able to post their jobs, and the freelancers should be able to send their applications. You may introduce some limitations (for example, only freelancers of a certain grade may apply to this project). Also, the process of posting and applying for a job may be free or paid – you should define this at the stage of creating the business model.
- Advanced search
In order to give the parties the opportunity to find suitable projects and freelancers, the marketplace should have a detailed search system. For example, the clients may sort the freelancers according to their relevance, experience, skills, hourly rate, etc. The workers may sort the projects according to the budget, deadline, required skills, etc. In the filtering options, the parties may filter out the irrelevant projects and workers (e.g with too low a budget or insufficient experience).
To keep the users updated regarding the activity on the platform, a system of notifications is necessary. The app may inform the users about new messages, payments, money withdrawal, etc. by sending notifications to their email or smartphone, or by displaying desktop pop-ups. The users should have wide opportunities for customizing the notification settings.
To provide the parties a secure way of communication, the platform should have a built-in messaging system. For the users, it will also be convenient to have a system for screen sharing and file exchange.
- Payment integration
For the users to deposit and withdraw money, and make transactions for another account, it is necessary to be integrated with popular payment systems like PayPal, Payoneer, Stripe, etc.
To improve the user experience of both parties, it is necessary to localize the platform to different languages, especially if the marketplace is going to be international. Generally, it is enough to make two versions of the website – one for local users in their native language, and the international one in English.
Having finished the cooperation, the parties may want to leave feedback about their work. The client may comment on the quality of the freelancer’s work, and the freelancer may evaluate the communication, clarity of the tasks, etc.
- Admin panel
This allows managing the user accounts, jobs, and payments, and handling possible backend issues. We can develop an admin dashboard for you by using the Active Admin Ruby gem.
Having reading this article, you now know everything about the freelance marketplaces like Upwork. We have studied the functionality of Upwork in detail and, hopefully, you now have a more detailed vision of the business model of our future platform.
We have told you about the ways to make a website like Upwork. Let’s summarize them once again:
- Clone scripts – using these ready-made patterns, you will get an exact copy of Upwork very quickly and relatively cheaply. The marketplace will have a similar design and functionality with very limited customization options. Also, it is not designed to scale and handle high loads.
- Ready-made templates – considering the services of marketplace constructors like Sharetribe, you will receive a customized platform for a moderate cost. The platform will provide the hosting services and support – your marketplace will be stored on Sharetribe’s servers along with the platforms of their other clients. Such a platform will have a higher capacity than clone scripts, but it will be limited to 100,000 users.
- Custom development – applying to a web development company, you will get professional engineers and managers at your disposal. The team will take into account all your requirements and develop a custom, fully featured, and scalable platform for you.
Each option has its strong and weak points, and we hope that our article has helped you to get a better understanding of your needs and be able to make the decision that suits you best.
Developing online marketplaces is the core expertise of Sloboda Studio. Our managers have a deep understanding of this business, and our developers are aware of all the technical aspects of these platforms. For you, we have considered all stages of the development process and describe the core features of an MVP for an online platform. Also, now you know the approximate time and cost of developing such a platform.
If you have any question or ideas, we will be very happy to help you.