Imitation is said to be the best form of flattery. Emulating a service or a product also allows you to better the original idea and fill in the gaps left behind.
Facebook, a social network platform that was created by Mark Zuckerberg in his Harvard dorm room to help connect Harvard students, today boasts 2.85 billion monthly active users. Nobody, not even Zuckerberg himself would have imagined the success his website would bring him. But scaling new heights of success and acquiring a niche space in the world of online communication and building a connected community also brings excess scrutiny which we have witnessed in recent years.
The lack of privacy, truth-sharing, and fact-checking has made Facebook a platform for bad actors to influence the information narrative to spread maliciously and adversely.
This spread of misinformation and surrendering power in the hands of a few has not only made Facebook look like a bad faith platform but has also increased the lack of trust in its users.
But, these shortcomings of Facebook have helped open up the previously niche market of social media platforms to anyone and everyone. Today, every second person will know what Facebook can and cannot do, and opening yourself up to this big market by building your social networking platform almost certainly guarantees a recipe for success.
But the next question that many of you might have is “How Can I Build My Own Facebook”? Especially if you don’t possess engineering skills and knowledge.
This is where a no-code platform like Bubble comes into play!
In this article, we are going to understand and unravel how you can create your version of Facebook without writing a single line of code using Bubble.
With the help of this guide, you will be able to create a Facebook clone or even create a community website using some core features of Facebook.
So what are we waiting for? Let’s get started!
First and foremost, before starting to build the social network platform, you need to register your Bubble account. The Bubble platform is free to register and use, but it also offers paid plans which give access to more features.
So once, you’ve chosen a plan and are accustomed to the workings of the platform, we can begin work on creating a functional Facebook Clone.
Create Core Pages
Kickstarting a project always comes with a list of do’s and don'ts, especially if it's a visual project that involves an online interface and user experience. Hence, it’s essential to start the project by wireframing the product design and building the necessary fields within the database.
With building a Facebook Clone, the creation of the core page is of the utmost importance to give the online platform’s interface some sense of familiarity and help not alienate the audience with a starkly different and complicated design.
Some of the core pages we will include in this Facebook replication are:
1. Login Page - Allowing users to log into their profile
2. Home Page - Displaying the feed of content of the user’s friends
3. Profile Page - Displays the user details and the posts they have written or shared
4. Group Page - Showcases posts by group members and also has member-only access
5. Upload Page - Let’s users author and publish new posts
6. Comments Page - Allows users to see the comments on the posts
One of the most attractive features of Bubble is its ability to send data between pages. This major feature allows you to create one generic version of a page and then it dynamically displays the content as and when required from the database.
In the case of a Facebook clone, the only page you need to create is the user profile page. We can then set up the page in a way so that it only displays a relevant user when required.
Configuring the Database
Once you’ve strategized and set up the display of your product, you can focus your energy on creating the core data fields to power your platform.
Bubble’s pre-built database makes it easier to build new data types with unique fields. It is always recommended to split large items into separate databases to help the speed of the site.
For a Facebook clone, we will create one data type for every entity we require. By creating these different data types for each entity, we will be allowed to load relevant and necessary data as and when needed. This reduces the time the Bubble editor will need to render information and will enhance the speed of your platform.
With our Facebook platform, we will need to create the following data types:
Data Type: User
• Profile - Photo
• Group/Community (School, Organization, University)
Data Type: Post
• User - The name of the user authoring the post
• Post - Content - Message or Information posted by the user
• Date - The day the post was published
Data Type: Post-Content
Data Type: Group
• Group Type (School, Organization, University, Fan-Group)
These will be the core fields required for the skeleton of your website. As we build, we can add or subtract some data types and fields according to our vision.
Now that we have the design and the database for the website ready, we need to bring them together to make the platform functional.
In Bubble, it can be done through workflows. Each workflow happens when an event occurs (e.g. a user clicks on a button), and then runs a series of “actions” in response (e.g. “sign the user up”, “make a change to the database”, etc.)
You will be building this online platform for people to connect and communicate. Thus, a signup page where potential users can come and register is of utmost importance.
To build this page, you just need to create a button element with the Sign Up text. Once the button has been created, you’ll need to click on Start/Edit Workflow. You will then need to select the action Account > Sign the user up to trigger the in-built Bubble sign-up page.
You can also provide your users the option to sign up from a social login (Google, Facebook, Instagram) by selecting, Account > Signup/login with a social network.
Update User Profile Page
Once registered, your users will need to gain access to a profile page to edit and update their details.
By using a combination of input fields, such as Name, Bio, Age, etc, And inputting information in the corresponding fields, the user will be able to activate the workflow by clicking the update button.
With the help of the Start/Edit Workflow button, you will be able to make changes to a thing in your database.
On this page, the changes will need to be made to the user details. Each on-page input will need to be mapped to the corresponding fields.
Name - Input Current User’s full name Value
Age - Input User’s Age Value
Bio - Input User’s Bio Value
Profile Photo - Input User’s photo value
Once the workflow is ready, it will be able to update the fields with relevant values.
This workflow will allow you to showcase relevant data on a user's profile by using matching data provided for the data fields.
Create a new post on wall
Once the user profile is configured and ready to use, we will need to create a new workflow for a page where the registered users can post messages on their wall.
This workflow will follow the same structure of the previous two workflows only, you will need to create a new thing within your database.
On our upload page (the wall) we will add a multiline input field as well as an image uploader element. You will also add a Share button, which when clicked will trigger the workflow.
You can now also create a new thing in your database called a new post.
In this new workflow, we will always start by creating a post content data type element which will need to be linked to the post.
This element will have:
Post - Input shareable text value
Image - Input shareable image value
We will also be required to add another thin” in the workflow database called the post. This element will have the actual post created.
Post = result of step 1 (Create a new post)
By linking Post Content to Post it will be possible for you to consistently integrate the data across your website.
Every time now, the user clicks the Share button, the whole workflow will be triggered creating a new post on the wall.
Showcase content in a Feed
Once users get access and start creating and sharing content, it will be necessary to create a page where the posts can be seen by the users.
You’ll need to create a homepage feed where the posts can be displayed in a list. This can be easily achieved with the help of Bubble’s repeating group element.
When working with this element, you will need to link it with a data type within your database. In this instance, the Type of Content would be Post.
Even the data source will have to be configured in a way where the creator is in the friends' list of the users.
The input fields for this element would be:
Search for posts :
Created by is in - Current User’s friends
Repeating Group Post
Type of Content - Post
Data Source - Search for posts
Now that you have built the structure to display the posts, you just need to map out the top column of the current workflow. With the help of this powerful element, once you’ve decided how to fill the top column, the rest of the columns will automatically be filled with the existing data you have.
Commenting on Posts
The workflow of commenting on posts will follow a similar trajectory to the previous workflow created to display content on the feed.
This workflow will be triggered and the user will be directed to the comments page when they click the comment button on the home feed.
In this workflow, we will have to direct the user from the home page to a comments page.
As the user will be directed from one page to another, additional data will need to be sent to let the Bubble Editor know what needs to be displayed. The data that will be sent is that of the current cells post.
On our created comments page, the page type will need to be configured to be a post. This configuration will allow the Bubble Editor to display content that is unique based on data and posts sent through the workflow.
The other thing we will need to add to this workflow is to dynamically display the list of comments.
For the same, we will need to add another repeating group.
This repeating group will be configured as a comment and the data source will be set to index comments from the current page’s post.
As in the previous workflow, we will again need to set out the relevant content for each comment in the top row of the repeating group.
We will also be adding an input field below the list of comments where users will be able to publish their new comments.
We will also need to add a post button next to the input field, which, when clicked will trigger a new workflow.
In this new workflow, we will need to build a new thing which would be a new comment.
Once this is done, we will set up the comment input field with the data field required.
Creating Friend Relationships
The final core feature that we will want to create for our clone is the ability to let users follow/friend each other on the platform.
For this feature, we will first create an Add Friend button. When clicked, the action should create a new workflow where we can make changes to a new thing.
The thing we will be changing is the current user. The current page user will need to be added to the friend list of the current user.
This action will also require us to update the current page user’s list of friends by adding the current user.
Hopefully, with the help of this guide, you’re now familiar with the Bubble Editor and how you can create custom data fields and display dynamic content with the help of it, you can move ahead and start building custom features to set you apart from the herd.
You can add features such as:
• Displaying Notifications
• Admin Panel for Moderator Control
• Creation of Groups
• Messaging Function
Even though you can build your messaging function with Bubble, it might require more time and even more manpower. Hence, I recommend using a software such as AtomChat for a better-streamlined process.
AtomChat easily integrates to a Bubble website within minutes and helps add features such as real-time text-chat, voice and video calling, and real-time language translation.
These features truly help your website defy the odds and make it a global platform.
AtomChat also offers collaborative features such as screen-sharing and whiteboard. It also helps you develop White Labelled Apps which means that your users can chat on the go without missing a beat.
Privacy & Security
While creating a social network has become quite easy as showcased by the above steps, maintaining it does require a little bit of hard work. The main piece of this puzzle is the privacy and security terms of your website to protect your users’ data. You and your website need to abide by the laws and have policies in place that help keep your site and its data secure.
Now that you know how easy it is to build your own Facebook clone, especially without having to spend thousands of dollars on a development team and with just a few handy tools, you shouldn’t wait for any divine intervention and should seize the day.
You just need to get access to a Bubble account and have an AtomChat subscription and you’re ready to build, connect and engage!
PS. AtomChat would really like to thank Lachlan Kirkwood for all his help in shaping this article and guiding us in the right direction!