BuddyPress 3.1.0 is now available. This is a maintenance release that fixes 23 bugs and is a recommended upgrade for all BuddyPress installations.
Update to BuddyPress 3.1.0 today in your WordPress Dashboard, or by downloading from the wordpress.org plugin repository.
BuddyPress 3.1.0 is now available. This is a maintenance release that fixes 23 bugs and is a recommended upgrade for all BuddyPress installations. For more information, see the 3.1.0 milestone on BuddyPress Trac. Update to BuddyPress 3.1.0 today in your WordPress Dashboard, or by downloading from the wordpress.org plugin repository. Questions or comments? Check out the 3.1.0 changelog, or stop by our support forums or Trac.
What would you like BuddyPress to focus on in 2018? The core team has ideas of where BuddyPress can expand on and your input is important to harness the time and resources of an all-volunteer crew.
The survey will take 10-15 minutes to complete. Be assured that we will not publish your name, email address, nor IP address when we post the results of this survey at BuddyPress.org.
Thank you for your time and cooperation. Your feedback will help us improve BuddyPress for you.
Peer reviewed by @boonebgorges
StudentsNepal.com is the first and largest community website for students of Nepal with 9,700 registered members and 50,000 subscribers. The site helps students find answers to popular courses and colleges by acting as a bridge between the students and educators/educational organizations.
I started working on this side project in December 2014. I remembered I had very little information about courses and colleges I could choose from after finishing Higher Secondary level back in 2011. There were no websites that could readily help students to explore the various opportunities available in Nepal. There are still a lot of students in Nepal who have been brain-fed that studying abroad is the one and only option to be successful. My vision was to change this mindset among the young students of Nepal by informing them about the abundant opportunities and options available within the country.
The goal for creating StudentsNepal is to increase communication among different students with different educational backgrounds while helping them to learn all sorts of information and get hold of educational resources. Communication and interaction are the core values of StudentsNepal and these are the features that help the platform stand out from rest of the educational websites. BuddyPress and bbPress have helped us to achieve these values in a cost effective and efficient way. The beauty of these plugins is that our members can create content and help to rank us higher with search engines.
The investment to create StudentsNepal.com was very low, a fraction of my pocket money during my final years in college. It is now one of the top educational portals of Nepal. Since WordPress was so easy to master, my dev team and I were able to use most of our free time to create initial content and other valuable resources for our visitors – students, parents, and educators – rather than spending time/money coding from scratch or buying a proprietary platform.
Before choosing BuddyPress, I researched open-source social network scripts and platforms. My shortlist included WordPress (BuddyPress), Joomla (JomSocial), and Drupal (social modules). It was clear to me, after reading a lot of support forum posts and articles, that the BuddyPress/WordPress combo was the way to move forward with my dream. I am really happy about this choice today. The other heavyweight plugins that I added were GravityForms, Sucuri, bbPress, and MyCred plus other smaller plugins for specific tasks.
Customizations & Improvements
1. Login and Registration Pages
We found out that the default login and registration pages made it difficult for members to log in and have kept site visitors from registering. We resolved the issues by installing the Gravity Forms plugin and adding log in integration via Facebook, Twitter, or Google+ as well as making the registration page more user-friendly.
I thought about adding a newsletter because I loved the way some of the blogs I subscribed to sent organized information and recent activities of the blog in a beautiful email format. I decided to add an optin form to start collecting names and emails 2 to 3 months after launching the site. During the first 6 months, only first names and emails were collected with the popup optin form. Later, I changed the optin forms to collect email addresses and phone numbers. I have been using the free package of mailmunch for optin forms (popups) and Amazon AWS for sending newsletters. The newsletter contains scholarship notices for different universities/colleges, student stories, youth events, and other useful academic information.
The newsletters have become one of the most popular features for the community. We did a lot of testing for the positioning and timing of the popup to get the most sign ups. StudentsNepal had around 20,000 subscribers by the end of 2015. The number of subscribers started growing after I inserted the forms in all the subdomains. (news.studentsnepal.com, jobs.studentsnepal.com, quiz.studentsnepal.com, blog.studentsnepal.com). After 3 years, the site has 50,000+ subscribers.
Currently, StudentsNepal sends 1 newsletter per week, and my dev team and I are planning to make it 2 newsletters per week. We had invited students and educators/institutions to contribute content for the newsletters and the response has been just great! Students, particularly, submit generously and regularly to benefit other members, subscribers, and online visitors.
In addition, this project has also helped me connect with lots of awesome individuals and similar-minded startup owners.
3. Design and CSS tweaks
Out of the box, BuddyPress has a plain and simple design and interfaces which can be customized easily. At the end of the day, the features and performance are what matters most to my users whether on mobile, tablet, or desktop. For me, due to extensibility and ease of customization, BuddyPress reigns as king when it comes to a free open source script for a social network.
4. Upgrading Servers
StudentsNepal.com was on a shared hosting plan when I launched it in 2014. It took around 3 to 4 months to cross the benchmark of 500 visitors/day. After getting articles indexed in search engines and started getting higher ranks, StudentsNepal started getting a lot of visitors (especially from Google). Mid-2015 we upgraded to VPS hosting when the website’s articles and contents started getting listed on the 1st page of search engines and it started getting a couple of thousand visitors daily. Based on my experience, it’s a good decision to get a shared hosting plan while the site was starting out and then upgrade to more powerful hosting plan when data showed the increases in user engagement and participation.
With a community of 9,700 registered members, 50k subscribers, and around 150k visitors/month, I am happy to say that our site runs smoothly with nary a downtime on all devices. If you install BuddyPress, you will need a bit more power on your server.
Future plans for StudentsNepal.com include moving the Shopping and Jobs sections to separate domains and setting up a new site for online classes. I am testing Woocommerce, WP Job Manager, and Moodle for the other projects to expand our services to the community.
If you are creating a site for any niche community and are not sure on which platform to choose, I definitely suggest using WordPress with BuddyPress. These have a lot of stable and robust add-on plugins to help you create awesome and feature-rich communities.
StudentsNepal.com is the first website of its nature in Nepal and it has garnered a lot of media attention and praise. I received a lot of positive and encouraging messages from educators and students in Nepal for creating this platform. I’m just glad that the services provided by the site have been very helpful to so many Nepalese students as well to those who would like to study in Nepal.
Thanks to WordPress and BuddyPress for making this site possible. If you want to learn more about the site or the other customizations implemented, please feel free to contact me. Also, I can help you promote your social network or other related websites with a guest post in the blog section of StudentsNepal.com
Links: Facebook, Linkedin
Peer reviewed by @boonebgorges
Naturkontakt (Nature contact) is the home for members of the Swedish Society for Nature Conservation (SSNC), Sweden’s largest environmental NGO with over 200,000 members. This is a private site where SSNC members can read and publish internal news about the organisation, take part in forum discussions, and join or create groups to help them organise their work. Members of SSNC can create WordPress user accounts using their membership numbers from the organization’s CRM (Customer Relationship Management) software.
Naturkontakt has been around since the 90’s, powered by FirstClass. By 2010, that platform had become outdated and its market share was declining. This led some members to write proposals to find a new platform. Their goal was to select a platform which would serve as a hub for all the different aspects of SSNC’s mission and vision. These include “spreading knowledge, charting environmental threats, proposing solutions, and influencing politicians and authorities, both nationally and internationally. Under democratic forms, we work regionally in 24 county branches and locally in 270 community branches.”
Moving to WordPress
In 2011, SSNC acted on their decision to set up a new web-based platform for internal communications and contacted us at Klandestino to work on this project. After evaluating different platforms, we chose WordPress. Some deciding factors include WordPress’ open source licensing, our experience working with the platform, and the plethora of different plugins that extended WordPress to make it suitable for online communities.
The first iteration of the new Naturkontakt site was launched in 2011, powered by WordPress and WP Symposium. This was quite a while ago but as I recall (plus email logs), the choice stood between BuddyPress and WP Symposium. At that time, WP Symposium already had a forums component while BuddyPress lacked a solid forum integration. Remember that this was the time of the stand-alone bbPress forums which took a tortuous and unstable route to integrate to both WordPress and BuddyPress.
bbPress 2.0 to the Rescue
A year after we launched the new site, we undertook an evaluation which revealed some pain points. To name a few, WP Symposium had limited extensibility, some security issues, and major problems with performance. With those challenges in mind, we researched again into other community solutions for WordPress. By that time, the new bbPress 2.0 plugin was available and it worked very well with BuddyPress.
It was an easy decision to switch from WP Symposium to BuddyPress and bbPress. The major tasks were the arduous migration of data and continuous testing. This new set up has stood the test of time, we’re really pleased with it. The BuddyPress-bbPress combination gave us a running start with forums, groups, profiles, and messages, which are some of the required pieces of functionality needed on Naturkontakt.
Further development of Naturkontakt 2.0 led to the introduction of multisite features to the community. Fortunately, BuddyPress works very well in a multisite environment. Each local organisation (group) of SSNC could have their own subsite to publish news.
To make this work as smoothly as possible, we wrote custom plugins for the following functionalities:
- Many-to-many relationships between groups and subsites. For example, the group coordinating work on forest issues could be connected to the subsite publishing news about forest issues.
- File archives for groups so that members can upload and version docs, PDFs, images, etc.
- Sitewide search, a plugin that indexes all content from the entire multisite network into a “ghost” site to make it possible to have a centralised search throughout the entire network and blog/archive pages that lists posts from all sites.
- A drag and drop front page workflow where the editors of the site can search for and list articles from all sites on the network on the main site front page.
This second version of Naturkontakt was released in late 2012. Since then, the basic functionalities have remained more or less the same. The site did get a facelift a few years ago when we focused on making the site work better on phones and tablets.
Going forward with PHP 7
Last year, after a month of capacity/speed problems, a new evaluation showed that some long-delayed upgrades had to be made. We started a new project to focus mainly on stability and speed improvements. We finished the project just right before this article was written.
We implemented the following improvements:
- Combed through the codebases. We searched for deprecated functions and places where custom functionality could be replaced with newly added functionality from BuddyPress, WordPress, and bbPress. We decreased the number of active plugins by a third because of the new features that had been rolled into the above-mentioned projects.
- Switched over to Elasticsearch/ElasticPress. Our custom sitewide search has served its purpose well. However, since it’s only been used on this platform its development has fallen behind. And compared to new technologies such as Elasticsearch it didn’t cut the mustard. By switching to Elasticsearch we have offloaded a lot of the most expensive queries currently done by WordPress to a server/platform that’s fine-tuned for that kind of work.
- Upgraded to PHP 7. This was the last part of the project. We’ve seen major improvements in the response time from the server, on average about 50%-70% decrease in response times! That is, of course, very important on a dynamic site such as for any community where static page caching often isn’t an option.
Our stats show the continued growth of the SSNC community, even though the competition from Facebook can be really hard. One of the major advantages of using WordPress, BuddyPress, and bbPress is that SSNC owns its own data.
Of course, there are always things to improve on. When we completed the recent project to improve performance, despite limited budgets and time constraints, we were all satisfied and hopeful that the site will be around for many more years. We also expect that upcoming development work will be focused more on the user interaction elements of the site, hopefully by building upon and extending the great work that has gone into BP Nouveau. <3
To end on a personal note I’d like to thank all of the wonderful contributors to BuddyPress who have welcomed me into the community and helped me along with trac tickets and patches. Beyond my satisfaction with Naturkontakt and working with SSNC (whom I share a lot of political views with), and the functionality that BuddyPress has provided for the project, the best part of having worked on this site is that I also feel that I’ve become part of a community that tries to do something constructive about the unpleasant grip that Facebook has over our personal and professional lives.
Peer reviewed by @boonebgorges
NefisYemekTarifleri.com is the largest Turkish recipe sharing platform in the world. It has more than 290,000 recipes that reach millions of users every single day. NefisYemekTarifleri is a unique platform that uses WordPress and BuddyPress for all its applications — desktop, mobile web, Android, iOS, and AndroidTV.
- 290k+ recipes,
~500new recipes from different authors per day
~2.2M+registered users with
~2.6Mxprofile_data, 24M+ usermeta
~4Mnative apps download,
~100TBCDN BW usage per month
- 3M+ BuddyPress activities and
- 300k+ search requests per day
BuddyPress for a Growing User Base
NefisYemekTarifleri.com is turning 10 years old this August and has been using BuddyPress for the last 5 years. According to my boss, “BuddyPress has helped a lot to increase our user base.”
Our platform is community-driven, i.e., all the recipes come from our users. The membership and number of recipes submitted have increased dramatically since we started using BuddyPress. The users feel more welcome because they have their “own space” where they can easily add their avatars, cover images, post their recipes, and share other social media links. BuddyPress has enabled users to engage more with other registered members as well as invite new users to the site. Our editorial team spends a majority of their time editing user recipe submissions.
Customized BuddyPress Features
Our notification system is quite different from the standard BuddyPress notifications. It supports push and web push notifications and works async over the message queue.
There are a lot of activities which can trigger notifications. There were and are many instances when we send notifications to tens of thousands users every day. For example, when one author with thousands of “followers” publishes a new recipe, it took a long time to send a simple notification like, “Hi there! Jane Doe published a new recipe, take a look!” Consider when we have 10 authors with many followers publishing new recipes at the same time.
In the early days, we created a custom `nyt_bp_add_notification` script which called BuddyPress’ own notification that added a function for bulk messaging. We found out that it was causing lags on our slave MySQL servers because the impact on the disk IO was dramatic. Our solution was a new custom script, `nyt_bp_add_bulk_notification`, which inserts data directly to database (as a bulk SQL query). By the way, we highly recommend Percona’s PMM for catching performance hogs.
We decided to replace the built-in cover image feature and create our own Facebook-inspired UI which was more user-friendly. The feedback has been quite positive from our members.
Features of our new cover image UI:
- A user can directly upload a cover image by clicking on an icon on top of the cover image area.
- The full-size image is saved behind the scenes.
- Quick image resizing after the image upload has completed.
- A user can change image position via drag-drop.
- The full path and image coordinates are recorded as meta.
The Messaging component is active but not fully open for the end users. We will make this available for everyone when we’ve completed our mobile app integration. This is how we are setting this up for our site:
- All messages have to be between two people, we canceled group messaging.
- When someone you are not following sends a message, that message is marked as “pending”. You also “block” that person.
- Fluent messaging: all conversations between two people use the same thread.
Messaging, reimagined: We made some necessary changes a bit in a hacky way on the messaging component. Changing messaging behavior was not easy and there are some edge cases we have to monitor and address.
Limit notifications: Only allow 200 notifications per user, WordPress’ cron cleans up on a daily basis.
API Endpoints: We had to be careful on managing API endpoints, addressing the mobile apps a bit differently than web, especially when you do caching inside the device.
Long-running process: MQ workers are long-running PHP scripts and they caused memory problems on production after a while. We fixed this issue with stop_the_insanity.
In the Works
Following are some of the features we have in queue:
- Upgrading BuddyPress, of course
- Elasticsearch integration over ElasticPress. (We haven’t tried it yet but Pascal already wrote some code we can start playing with.)
- User suggestion to follow a member.
- Activity improvements (currently, just acting like feed).
- PHP 7.1 upgrade with dockerizing all the things. (Still using different versions of PHP)
BuddyPress allows us to build one of the largest niche communities in the world. Fortunately for everyone, BuddyPress is being maintained by developers who are active contributors to WordPress core. Our thanks to all BuddyPress contributors, especially the BP core team.
Links: Twitter, Github, WordPress.org, Linkedin, Instagram, My Blog, and nefisyemektarifleri
Peer reviewed by @boonebgorges.
Ginny Wright started an outdoor boot camp fitness business, Body By Ginny, in Arlington, Virginia in 2003. The business grew and Ginny expanded into nutrition and wellness coaching. As a result, she began offering “Challenges” on printed sheets to her clients a few years later. They could track their daily wellness activities (nutrition, fitness, and mental health) on the sheet, giving themselves points for good behaviors and subtracting points for negative activities. This “game” became popular among her clients, just as online wellness communities started offering similar experiences on websites and apps.
Tara Claeys, a fitness client and friend, offered to help Ginny expand her existing WordPress site by adding a membership component, allow commenting to create interaction between members, and also include the ability for people to track their “Challenge Points” online using a Google Spreadsheet. This was the rudimentary beginning of the online program for her Challenges.
In 2015, Ginny decided to brand her Challenges and decided to launch a separate website for this program, The Total Wellness Challenge (TWC). Her goal was to expand the program beyond her fitness clients and to offer branded Challenges for corporate wellness programs. Tara worked with her to create a multisite installation with BuddyPress and MemberPress that would have:
- Subsites for individual, private Challenges in corporate and other groups
- Restricted access to Challenges for members only
- Allow a “Reflections” commenting page for Challengers to interact with each other
- Point Logging for 3 components of the Challenge
- Limit submission to same day after 8pm until next day until 5pm.
- Allow users to select one day to be a “Free” day where they would receive the maximum nutrition score, no matter what they ate
- Add a “bonus” point automatically if a user logs 5 consecutive 12-point days
- Show points for all Challengers on a Totals Page
- Limits to only one entry per user per day
- Each category (nutrition, fitness, lifestyle) has limit on max points per day
- Ability for admin to edit user points on the back end
Tara hired Tom Ransom of One Big Idea to help develop a custom plugin that would connect MemberPress with BuddyPress. They chose BuddyPress because is primed for multisite configuration, it worked well with MemberPress, and is very customizable. Plus, the BuddyPress Groups functionality was a good fit for the separate Challenges. For TWC, each Challenge is a unique BuddyPress Group, set up on the front end by the admin.
The TWC is a point-logging game at its core. Participants keep track of their activity throughout each day for about 4 weeks and must log in to the website each day to record their points. There are 3 components of the Challenge:
1. Nutrition: Players can earn up to 12 points per day. Everyone starts the day with 5 points, and can gain points for positive food choices, such as avoiding white flour, eating 3 cups of greens and drinking a specified amount of water based on their weight. Players lose points for unhealthy choices, such as eating too much sugar, eating processed foods, and consuming more than one serving of beer or wine.
2. Fitness: Players can earn up to 2 points per day. They earn one point for doing 30 minutes or more of exercise per day and another point for stretching for at least 10 minutes.
3. Lifestyle: Players earn one point for posting a daily Reflection on the twcfit.com website, and a second point for participating in the lifestyle challenge of the week. Each week, a different lifestyle activity is listed, including behaviors such as noting 3 things you are grateful for each day, getting 7 hours of sleep, or doing an act of kindness for someone. A maximum of 2 lifestyle points can be earned each day.
The participant can go to the Totals page to check their score against other players.
Tom’s plugin includes code that directs the PayPal IPN to the respective subsite for MemberPress (MP) purchases. In addition, this plugin adds the new MP user into the corresponding BuddyPress group once the MP transaction was returned compete. (twc-fit-challenges-member-management.php)
Other components of the custom plugin include:
- buddypress.php: sets up BuddyPress (message for logged out users, custom date picker)
- Challenges-bp-points.php: Extends BP Group functionality: add_points => adds to database
- admin-menu-points — UI for front end
- admin-points — Doing work
- admin-menus — puts nav in Dashboard
- twcfit-challenges.php — timezones – offset GMT, returns city timezone (php only reads city)
In addition, a separate twc-utility plugin hides some BuddyPress content that is not needed and redirects login to BuddyPress.
Tara customized the style sheets and some BuddyPress theme files to add a custom button to the BuddyPress Group page, and edited the BuddyPress navigation and styles. For example:
- activity > post-form.php customized “What is your reflection for the xx Challenge today, name?”
- groups > single > group-header.php — Adds RESOURCES button to header
The site also uses the BuddyPress Custom Profile Menu and Custom User Profile Photo plugins.
Over the past 13+ years, Ginny has hired 4 instructors, expanded her business to McLean, Virginia, and wrote the “Good Food Recipe Book” which is available for sale on her website. At this time, Ginny is still deciding whether she wants to invest in marketing Total Wellness Challenge or keep it small, mostly based on word of mouth. The increased competition in this space has made it harder to gain exposure without a large marketing budget.
The Total Wellness Challenge website has been running well for a little over a year. Six Challenges have been conducted so far, and participants have loved interacting with each other. Tara and Tom are happy with the positive feedback on their customized “gamification” of BuddyPress and how it has helped provide additional clients and exposure for Ginny’s outdoor boot camps.
Links: Twitter, Linkedin