This guide will show you how to make a Facebook-like website using WordPress and BuddyPress.
WordPress + BuddyPress allows you to create a beautiful website that includes key social networking features like user profiles, groups and mentions, activity feeds, and more.
With a few bits of open-source software, you’ll be able build your website “out of the box”, step by step. This software is meant to empower anyone to create a social network for their school, community, or hobby.
WordPress was originally created over a decade ago to be a simple blogging tool. However, it has evolved into one of the most popular content management systems (or CMS) on the Internet. It allows you to create and manage any kind of website .
WordPress offers “Plugins”, or bits of software that can add features and functionality to the platform, such as social networking.
WordPress is a platform that can be used to create any kind of website. You can build a Facebook-like website by simply installing the software pieces that work together.
Capabilities & Expectations
A few things need to be clarified before we start. The first and most obvious is the fact that there are many ways to create a social networking website like Facebook. This is similar to how you can build a house. It all comes down to what you need and what it takes.
Because:
- It works right out of the box
- It is supported by an active community
- It offers all the essential features of a social networking site
- It offers many options and a community that can add any to the platform.
- It is open-source, free and standardized so that you don’t feel “locked in” if ever you need to create a custom solution.
It’s also and not.
- Funded by billions in investment (aka Facebook),
- Built from the ground up using social network features
- Drag, drop, click, and done.
It takes some thought, planning, and setup. This guide will help you do that! Let’s get into creating a website similar to Facebook using WordPress.
How to Get Started – Hosting and Installing WordPress
The first thing you need to do is get a domain name (an address where your site will reside) and a hosting account (a place where your website will reside) with WordPress installed. For more information and screenshots, -> . Read my guide to setting WordPress up from scratch.
Hosting is not as important as choosing a domain name provider. If you want flexibility and cost savings, I prefer to keep hosting and domain separate. For a cleaner dashboard and better pricing, I like Namecheap (view their plans). Here’s a lengthy review of Namecheap & GoDaddy.
Although social networking sites may initially be resource-wise small, they can quickly grow to require large databases and heavy PHP memory.
A shared, Linux-based hosting account is a good choice for the first few months. They all offer more than 256M memory, which is something not offered by many hosting companies, and unlimited storage. To start a WordPress + BuddyPress website, I recommend these hosting plans:
- HostGator (view their plans with a 45% discount here A great host, with excellent pricing, solid service and complete features. They are great for my personal projects including this website.
- InMotion hosting (view their plans with 53% off here). A strong, independent hosting company. Although a bit more costly than HostGator, I have had excellent service from them.
You will need to choose a service with dedicated server resources if you plan on creating a large number of users.
This will allow you to purchase a Virtual Private Server through InMotion, which will provide dedicated server resources for large sites. It will look the same as shared hosting if purchased with cPanel.
It could also mean a plan with WPEngine, which is a company that specializes in WordPress hosting. They actively manage your installation and server resources (view their plans).
All mentioned companies have an easy-to-use WordPress installation process (here details in my setup guide).
After you have WordPress installed, and are familiar with the Backend setup and Dashboard, you can create a website similar to Facebook (or any other social network).
BuddyPress Introduction
WordPress is the content management software that powers your website. It’s versatile because you can install WordPress plugins to add functionality not included in the main package.
BuddyPress is one of these plugins. This plugin adds social network functionality to WordPress websites. It allows users to create profiles and activity streams. BuddyPress, unlike many plugins created by third parties, is actually a plugin that was developed within the WordPress community.
It was designed to work with WordPress, and has the same documentation. It is also built using the same principles as WordPress.org software. It’s open-source, which means it isn’t proprietary to any corporation.
BuddyPress + WordPress is open-source so any site you create with it will be yours.
It’s part of the growing WordPress ecosystem and has a strong developer community (they just raised $51,000 so a developer can focus on speed optimizations for BuddyPress). It’s also easier to find BuddyPress developers because there is so much interest.
Let’s now get started.
Install BuddyPress Plugin
Navigate to Plugins > Add New in the WordPress Dashboard. Next, search for BuddyPress. Next, click Install and then click Activate.
After activating the plugin you will be redirected to the BuddyPress welcome screen and given the next steps.
Before you start setting up various components and features, now is a good time for you to take a moment and visualize the functionality of your site.
What do you want your members to be able to do? While it’s easy to say “be like Facebook” and “belike Twitter”, their core features are still relevant. They include peer-to-peer communication as well as organization into groups, links, profiles, and so on.
Configure Your Social Network Features
Once you know what you want, let’s get started configuring BuddyPress functionality to accomplish your goals.
Go to Settings -> BuddyPress, and then check out the default components tab.
It’s up to you to decide:
Extended Profils
WordPress allows users to register even if BuddyPress is not installed. BuddyPress lets you enable this option to expand the user profiles, so they can make it into a true Facebook/Twitter/Google+ style profile page.
Member account settings
Users can modify their settings without having to contact the owner of the social networking (ie you).
Friends Connections
This function is identical to the Facebook friending and Google+ Circling functionality. Users can choose who they follow in their feeds.
Internal Messaging
You can think of direct messages and/or Facebook/Twitter mentions. This allows users to communicate with each other within their network.
Notifications
Notification functionality is available on the site via a toolbar or by email. You can personalize your alert options.
Activity Streams
This component creates custom streams (aka the Facebook Newsfeed and Twitter feed). It can be customized and includes RSS/Email support, if desired.
User groups
This component is similar to Facebook Groups. This allows users to create private, hidden or public activity groups that allow them to discuss whatever topic they choose.
Tracking
BuddyPress can organize statistics about site usage.
These are all the built-in functions of BuddyPress. BuddyPress’ great advantage is its open-source nature. Anyone can create a plugin to make it even more useful (and yes, there are plugins for plug-ins!). In a separate section, we’ll discuss additional ways to extend functionality.
Let’s first finish setting up the internal settings and fields.
Configure your settings & fields
Next tab in BuddyPress settings is the Pages tab.
BuddyPress requires several pages, such as the member page or activity page. They will be automatically generated by BuddyPress.
You will need to create a Page to allow users to sign up and activate their membership.
Next is Actual Settings. These tabs are quite self-explanatory, with defaults being the norm.
The WordPress Dashboard gives a quick overview of BuddyPress’s various areas.
You now have a fully functioning social network site, just like Facebook or Twitter. As you can see, functionality is only one part of the battle. Design is where the real winners will be. Let’s get to it.
BuddyPress compatible themes for design
WordPress plugins manage functionality, themes handle design and layout.
BuddyPress, a WordPress subproject, integrates well with all default WordPress themes. It shares the same classes and templates as BuddyPress, so your design will be consistent across all pages.
The default WordPress themes are, well, default. These themes aren’t original (with minimal customization) and lack the beauty and attention to detail of premium themes created by third-party professional designers. BuddyPress’ default Twenty Twelve theme is here:
You have two options when searching for a premium theme or theme framework that you love: either you can look at the BuddyBoss template, OR you can look for themes with the ability to add BuddyPress support (ie. adding additional classes, templates, etc.).
Genesis by StudioPress is my favorite template framework. You can use it to add BuddyPress support for all themes .
You can also find many amazing themes that were created specifically for BuddyPress. You can find premium themes on ThemeForest here and free themes for BuddyPress here. There are also more premium themes available at MOJO Themes hier.
No matter what, remember that BuddyPress has additional classes and templates that your theme must account for.
Additional resources include my WordPress theme frameworks breakdown and how you can install a WordPress theme here.
You now have a functional, beautiful website that looks exactly like Facebook!
BuddyPress, however, allows you to continue adding features and personalizing the experience for your users, much like Facebook and Twitter.
You can customize and extend your social network experience
BuddyPress plugin adds social networking functionality to WordPress. BuddyPress can also accept plugins to provide additional functionality.
BuddyPress offers free plugins. You can find them here. Many are useful, especially for small functionality. The BuddyPress market is small so some BuddyPress plugins that are free may not be up-to-date. To get started, I recommend premium BuddyPress plug-ins by WPMU. These plugins are highly maintained and have a wide selection.
BuddyPress can also be used with other WordPress plugins for many fun combinations.
bbPress WordPress’ sub-project that creates forums. This sub-project deserves its own setup guide. However, it is worth noting that BuddyPress can be combined with forums to create a unique combination.
BuddyPress is open-source, so developers are easy to find. Only your imagination is the limit.
Next Steps and Resources
You’ll need a domain for your website. I recommend Namecheap (register here and read my comparison with GoDaddy).
You’ll first need to sign up for web hosting. You can start small with Bluehost, InMotion or HostGator.
If your site will have more than 100 users, I recommend WPEngine (view their plans) which is a managed WordPress hosting service. Although they may seem expensive, they offer great customer service and will allocate the resources you need. They are worth every penny for a resource-intensive site. They even invest in it to make BuddyPress even more.
The third step is to install WordPress. For step-by-step website setup instructions, see my WordPress website setup tutorial. WP Engine is already installed.
Fourth. Install BuddyPress plugin and define your components.
Fifth. Get a compatible theme. You should check out Themeforest, Genesis template framework with BuddyPress Connect, and customizing a WordPress default theme. BuddyPress has a free theme directory.
Sixth. Learn WordPress and BuddyPress, and Explore the Options. Get started with my intro video guides.
7th, sign up, add content, and grow your website! Good luck!