When the clocks strike midnight on New Year's Eve, we will enter the third decade of producing Invision Community.
A lot has changed since we set up in 2002. Our team has grown and our product matured. In a world where online startups explode and die within a few years, we're something of an anomaly.
We still have the same love and passion for creating the very best tools to build a community, and we have always ensured that Invision Community is in touch with modern demands.
This decade has seen Invision Community go from strength to strength. In 2010 we were one of many forum systems catering to smaller niche audiences. In 2019 we're powering discussion for many international and well-known brands.
Online habits may have changed in this time, and social media may have swallowed up smaller informal communities, but the need for independent community platforms remains strong.
2020 will see us release 4.5 which will bring another round of essential updates to existing features and a fresh batch of new features.
But first, let us climb inside our Delorean, rewind the clock to 2010 and start from the beginning.
As the sun rose on 2010, Bruno Mars was singing about parts of the human face in "Just the way you are", Katy Perry irritated Microsoft Word's spellchecker with "California Gurls", and CeeLo Green was trying to "Forget you" (at least in the radio edit).
Christopher Nolan's boggled all our minds with Inception, James Franco lost the ability to clap in 127 Hours, and Colin Firth stammered his way through The Kings Speech.
Steve Jobs unveiled the iPad to a collective snort, moderate derision and questions over just how useful a giant iPhone will be.
President Obama, just a year into office warns of "Snowmageddon" that eventually dumps up to 40 inches of snow on the east coast of the United States.
We lost comedy legend Leslie Nielsen (we'd never dream of calling him Shirley), and we gained a small child named Ryan who in just nine years would be earning $29,000,000 by opening boxes of toys on YouTube.
62% of us were using Internet Explorer to the chagrin of most web developers who wished that Chrome's 5% market share was more significant.
Facebook celebrated its sixth year by reaching 400 million users (a far cry from the 2.5 billion it currently has). Twitter, just four years old hits 30 million monthly active users (and none of them talked about fake news).
And how about Invision Community?
We hit 2010 running by releasing numerous updates on IP.Board v3.1, including finally using long-established web standards, and share features now that "social networking is all the craze these days" noting that "friends and colleagues often share similar interests, after all."
How innocent we all were in 2010.
Back then, each product had its own name and release cycle. IP.Gallery's new features included being able to rotate images by 90 degrees. Honestly, people used to go crazy for this stuff.
In May, we released a brand new application called "IP.Commerce". A few months later we renamed it "IP.Nexus" and years later, it was changed back to "Commerce". Naming things is hard.
The announcement contained exquisite details such as "It's hard to say when it'll be available" and "we don't know how much it will cost". We were so sure that it would be accepted positively, we removed the ability to post comments to the blog entry.
As summer turned to autumn and the end of the year loomed large, we released news about a significant update to Gallery called "IP.Gallery 4.0" which pre-dates Invision Community 4 and confused customers for years (so IP.Board 3 works with IP.Gallery 4, but IP.Board 4 works with Gallery 4?). Numbering things is hard too.
The last blog entry was about an app called 'IP.SEO' that I had utterly forgotten existed. It was written by Dan who once locked Lindy out of his own datacenter, but we don't talk about that.
I don't even remember this website
Charles opens the year by managing expectations for IP.Board 3.2 by outlining our three key goals (promotion, usability and modernization). The last one was us removing the "back to top" button and then spending the next eight years explaining why we removed it.
Our spam monitoring service processed 300,000 requests in the first two weeks of 2011. 30% of these requests were deemed to be spam and blocked (0.1% was probably an administrator registering 50 fake accounts before being banned from their own site).
I posted about "exciting new technology" in our new "WYSIWYG" editor (although what you see is sometimes close to what you get) would be more appropriate but slightly less catchy. We spent the next eight years explaining why no one uses BBCode anymore to almost everybody.
Brandon closed out the year with a blog promising "new toys" for IP.Content 2.3 (now called Pages, keep up!) which promises a "who's online" widget and a "shared media field" that was not only complicated to explain, but also use.
IP.Board 3.2 in all its glory
We start the year with news on IP.Board 3.3. This release was to feature essential updates such as the "Remember me?" checkbox on the login form and emoticons in signatures.
Despite being constantly told that we don't take SEO seriously, we round up the latest serious SEO changes including tags, soft 404s and micro schema.
We also celebrated our tenth year in business.
Something terrible must have happened to one of our competitors because we asked if you'd like to switch to IPS.
The year ends with IP.Board 3.4 being released for beta testing. This being a rare year where we release two major versions in less than 12 months.
Brandon has eight coffees and tries to explain what it's like to be a developer: "us developers are a strange bunch. We have a lot of crazy thoughts that just don't make sense to anyone else. Our brains are wired differently. We get from point A to point B by going around point Z and bouncing off point M first.", he closes the blog entry by urging you to ignore us.
The big news is that work on 4.0 is officially underway! Don't get too excited, releasing two major versions in 2012 clearly fatigued us as "IPS Community Suite 4.0" is not released until June 2015, over two years later.
4.0 was our first complete rewrite in years. We threw out all our stable and tested code and started over with an empty editor. It was a vast undertaking that consumed us completely. The result was worth it as we had a new modern framework that still serves us today. But we're getting ahead of ourselves a little.
Back in 2013, Mark talks about trees. Not the kind you find laying around in forests, but rather the programmatic type. It's just a way for Mark to show off how beautiful his code is.
IP.Board 3.4 still gets many updates (along with IP.Gallery, IP.Blog, IP.Content, IP.Downloads and IP.Address (ok that last one was made up)).
We spend the year talking about various new things in 4.0, including a new-new editor and various special features (and no one noticed we started calling it "IPS Social Suite 4.0" - it just rolls off the tongue!)
I introduce the new theme engine for 4.0, and this time, my code is not deleted by Mark (true story).
We didn't know it at the time, but 2014 was not the year that IPS Social Community Suite 4.0 (naming things is hard) will be released. Still, Rikki talks enthusiastically about "extending JS controllers and mixins" a way of coding so complex, to this day you can count the number of people who truly understand it on one of Rikki's fingers because it's only Rikki that understands it.
Determined not to be outdone in the confusing customers' stakes, I go on about how important it is to convert your database to UTF-8 when upgrading from 3.0.
As 2014 neared its inevitable end, we did manage to put up a pre-release testing site and release Beta 1 a release so unstable; it makes the current political climate look absolutely peachy.
IPS Community Suite 4.0 (Preview)
Finally, the year that 4.0 is to be released! We released six betas and a few release candidates before nervously hovering over the 'release' button (actually it's a collection of git commands and 'to the letter' instructions I ignore).
After a year of training customers to call our forthcoming release "IPS Social Suite 4.0," we release it as "IPS Community Suite 4.0". Lindy writes a lengthy blog article that sounds like a cross between a technical discussion of the Brother 8987-A printer and an award acceptance speech.
Quite frankly, after nearly two years of development, we're just relieved to have finally released it.
The year is spent refining and fixing 4.0 and culminates in the news of 4.1, where we add activity streams and a menu manager. We also talk about the new-new-new editor.
December 16th marks the time that IP.Board 3.4 officially dies as we declare it "end of life" and no longer support it. That shiny new release we were excited to talk about in 2012 is finally put out to pasture. The last we heard, IP.Board 3.4 moved to a farm and is doing well.
Now that IP.Board 3.4 is end of life; we do the sensible thing and make a few minor IP.Board 3.4 releases to improve security.
IPS Social.. sorry, Community Suite hits version 4.1.17 (confusing Lindy) before the year is done with many new improvements, including embeds, warning notes and the new leaderboard.
We're still mostly undecided what to call the product, so we avoid trying in all our blog entries.
In fact, looking back, it's quite remarkable how often we changed the name of our product. You'd be forgiven for thinking that it was a robust and well-considered attempt to prevent Google from serving up relevant search results and to confuse potential customers.
We find time to update our own website and introduce a new developer's area.
Barely 16 days into the new year, and we release news of the two-factor authentication feature added to IPS Community Social Invision IP.Board Suite 4.1.18.
When spring has sprung, Charles drops the news that we're working on 4.2, the main feature being a screenshot of the Admin CP log in. We promise that you will love it and that it will be released mid-2017.
Updates come thick and fast. Calendar event reminders, content messages, recommended replies, letter profile photos device management and delayed deletes all make the blog.
Still not convinced that people take us seriously when we say we're committed to SEO, we post about more SEO improvements.
This time, we talk about implementing JSON-LD, rich snippets, pagination tags and more.
We also squeeze another one in about the new-new-new-new editor.
We overhaul our own blog (using Pages because that's how we roll) and I start a hilarious series of blog entries where I troll our own team. Everyone including me loses interest early on in 2019.
During April, we do the sensible thing and change the name of our product once more. IPS Community/Social Suite 4.1 is out, and Invision Community 4.2 is in.
Just to recap: IBForums > IPB > IP.Board > IPS Social Suite > IPS Community Suite > Invision Community.
You're welcome search engines!
As promised, we release Invision Community 4.2 around the middle of the year. Well done, everyone! We finally hit a release date!
As is now tradition, we end the year with news of our next big release Invision Community 4.3 (and tease the new emoji feature). We also calm nerves about Europe's endless fascination with regulation (it's this kind of joke that caused Brexit you know) and wrote up a guide on GDPR.
Phew. We're almost there, dear reader. If you skimmed through most of the blog to this point and expected me to finish with a bang, you'll be disappointed.
We start 2018 at full speed releasing feature news on Invision Community 4.3 including emoji, OAuth, community moderation, REST API, subscription manager, announcements and more.
Oh and we hit our sweet sixteenth birthday in February!
We release Invision Community 4.3 in April to rapturous applause after a short beta testing period. We all agree that 4.3 was a great stable release which instantly makes the developers nervous.
Towards the end of the year, we announce that work has begun on Invision Community 4.4. We talk about new features such as GIPHY integration, AdminCP notifications, Post Before Registering, Commerce Updates and more.
Still not sure if we care about SEO? Well, how about another blog entry on SEO?
The only thing missing this year is a new update on our editor.
And we arrive back home in 2019. A week into January and I pull the massive twist that we're using Invision Community 4.4 on our own community. It's not quite up there with "Bruce Willis is a ghost" though.
In March we write up a case study on The Trevor Space, an LGBTQ charity set up to prevent suicide and to provide crisis intervention. TrevorSpace commends Invision Community for allowing anonymity online which isn't possible with social media.
Rikki drops a bombshell in September when he announces that we're actively working on native iOS and Android apps for Invision Community. Apparently mobile is a thing now.
November starts a series of blog entries talking about our new upcoming release, Invision Community 4.5. We talk about the Admin CP overhaul, Club Pages, RSS Feed Improvements and Club improvements.
And here we are. Right up to date. This decade may have only taken us from IP.Board 3.1 to Invision Community 4.5, but it really has seen a massive change in the company we are, and the industry we are in.
We have seen the inception, rise and stumble of social media. While it's true that forums are no longer the preserve of Star Trek fans obsessing over continuity errors and informal communities have been absorbed by Facebook and friends, spaces that you completely own to host discussions are still very much in demand.
Invision "Chameleon" Community in 2019
Over the past year or so we've seen a sustained rise in the demand for independent communities. Brands especially like that you own your data and can use it to gain insights into customer habits. Just this year, we've launched communities for LEGO, HTC, Sage, Mattel, Gibson Guitars, Squarespace, and many more.
We are constantly evolving Invision Community (assuming we stick with that name) to be at the very centre of your online presence. We have tools to add discussion comments to any page of your site, to embed widgets with a few lines of code. We want to showcase your community throughout your site by adding multiple touchpoints to take your customers on a journey with you. Our native apps will offer new and exciting ways to interact with a community via new interfaces.
As we move into our third decade, I can only see a resurgence for independent communities as we tire of the crushing intrusion of social media. We give away so much of our attention, time and information for very little reward.
We have never been more divisive and fiercely tribal.
It's time to come back together to discuss a topic with care and thoughtfulness. It's time to allow our personalities to take a back seat and let considered discussion live again.
And we'll be here doing what we have always done; creating the very best community platform possible.
I'd love to know when you joined us on this crazy ride. Was it before or after 2010?
It might seem a little odd starting a blog on increasing Invision Community's speed with the word "lazy", but I'll explain why this is a good word for performance shortly.
Earlier this year, Google announced that page speed is a ranking factor.
Simply put, if your site is slow, it will be ranked lower in Google's search results.
It is always a challenge making a large application like Invision Community as efficient as possible per page load. A single Invision Community page can pull in widgets from multiple applications as well as a lot of user-generated content with attachments, movies and images used heavily.
This is where being lazy helps.
Lazy loading is a method by which attachments, embeds and images are not loaded by default. They are only loaded when the viewer scrolls down enough to make them visible.
This allows the page to load a good deal faster now it doesn't have to load megabytes of images before the page is shown as completely rendered.
I was going to take a fancy video showing it in action, but it's hard to capture as the system loads the media just before you get to it, so it looks fairly seamless, even with sluggish connections.
Not the most dynamic image, but this shows the placeholder retains the size of the image
In addition to image attachments, we have also added this lazy loading to maps and Twitter emoji images.
Improving non-image attachments
Once we had implemented the lazy loading framework, an area we wanted to improve was non-image attachments.
We have listened to a lot of the feedback we had on this area, and have now made it very clear when you add an attachment into a post. We've even returned the download count now it's being loaded on demand.
Using attachments when posting
All the letters
When we first implemented the letter avatars in 4.3, we discussed whether to use CSS styling or use an image.
We decided to go with an image as it was more stable over lots of different devices, including email.
We've revisited this in 4.4, and switched the letter avatars to SVG, which are much faster to render now that the browser doesn't have to load the image files.
Other performance improvements
We've taken a pass at most areas with an eye for performance, here is a list of the most significant items we've improved.
Several converter background tasks have been improved, so they work on less data
Duplicate query for fetching clubs was removed in streams
Notifications / follower management has been improved
Member searches have been sped up (API, ACP live search, member list in ACP, mentions, etc.).
Stream performance has been improved
UTF8 conversions have been sped up
Elasticsearch has been sped up by using pre-compiled queries and parameterisation, as well as the removal of view filtering (and tracking)
HTTP/2 support with prefetch/preload has been added
Several PHP-level performance improvements have been made
Implemented rel=noopener when links open a new window (which improves browser memory management)
Several other performance improvements for conversions were implemented that drastically reduce conversion time
IP address lookups now fetch IP address details from us en-masse instead of one request per address
Cache/data store management has been streamlined and centralised for efficiency
Many background tasks and the profile sync functionality have all been improved for performance
Brotli compression is now supported automatically if the server supports it
Redis encryption can now be disabled if desired, which improves performance
Phew, as you can see, we've spent a while tinkering under the hood too.
We'd love to hear your thoughts. Let us know below!
This blog is part of our series introducing new features for Invision Community 4.4.
We're thrilled to announce that Invision Community 4.3 Beta is available to download now.
After months of development, over 2500 separate code commits and quite a few mugs of coffee you can now get your hands on the beta release.
You can download the beta from your client area.
Be sure to read the full information on support and service limits that go along with beta releases. You will see this in client area prior to downloading.
If you need a recap of what was added, take a look at our product updates blog which takes you through the highlights.
If you you find a bug, we'd love for you to report it with as much detail as you can muster in the bug report area.
We'd love to know what you think, let us know below.
"The world’s most valuable resource is no longer oil, but data", the Economist wrote recently.
Invision Community software stores a lot of important data that can be leveraged to analyze and improve upon the traffic and interactions with your site.
While there are some various statistics tools in the AdminCP already, we spent some time with 4.3 enhancing and improving upon our existing reporting tools, as well as adding some new analytics tools you may find useful.
Beginning with 4.3, any dynamically-generated charts in the AdminCP that support filtering will allow you to save those filter combinations for easier access in the future. When you open the Filters menu and toggle any individual filters, the chart will no longer immediately reload until you click out of the menu, and 'All' and 'None' quick links have been added to the filters menu to allow you to quickly toggle all filters on or off.
Here is the 'Sales' chart for Commerce, for example. You will see that the interface is now tabbed.
Commerce's Sales chart
After opening the 'Filters' menu, selecting all of my products named 'test', and saving this filter combination as a new chart, I can quickly come back to this chart in the future.
Specific filter configurations allow you to run reports easily
Note that each user can save their own chart filter configurations independent of other users.
Top income by customer
Speaking of Commerce, we have also added a new chart to the 'Income' page, allowing you to view reports of your top customers. As with other dynamic charts, you can save filter configurations here for easy future access, and you can view the results as a table to get a raw list of your top customers' purchases. Further, we have tidied up the table views for the other existing tabs on this page.
Looks like brandon is my top customer
We have introduced several statistic pages to expose information about the Reactions/Reputation system and how your users are interacting with it. For instance, you can now view information about usage of each of the reactions set up on your site.
Yes, I'm definitely confused a lot
You can also see which users give and receive the most reputation (which is the sum of their reaction points, keeping in mind that negative reactions can reduce a user's total reputation score), you can see which content on your community has the most reputation (which might prompt you to promote it to the 'Our Picks' page, promote it to social media, or otherwise continue to encourage interaction with the content), and you can see which applications reactions are given in the most. This could allow you, for instance, to focus more efforts in areas of your site to drive more activity, or to foster activity in areas you did not realize were as active as they are.
Some areas of the community aren't as active as they could be
Additionally, when viewing user profiles on the front end you can now see a breakdown of which reactions each user has given and received when you click the "See reputation activity" link in the left hand column.
Apparently I'm not so much confused, as I am confusing
Another useful statistic introduced with 4.3 is the ability to review tag usage on your community. As with other dynamic charts, you can filter however you like and save those filter configurations for easy future access.
Not all tags are equal
Trend charts for topics and posts
When viewing the New Topics and New Posts charts, there are now tabs for "New Topics by Forum" and "New Posts by Forum", allowing you to see which of your forums are the most active. Additionally, you will see a trend line drawn on the chart to show you the trend (e.g. whether activity is increasing or decreasing). You can also filter which forums you wish to review, so you can compare your most active forums, the forums that are most important to your site, or the forums that need the most attention/may not be relevant, for instance.
Viewing new topics by forum
New posts by forum, but viewing only a subset of my most important forums
Some other miscellaneous improvements have been introduced as well, which you may be interested in:
When viewing Member Activity reports, you can now filter by group. We have also added the content count column to the table so you can quickly sort by top posters if this is relevant to the report you are running.
Device usage is now also tracked (mobile, desktop, etc.) and can be viewed on a new Device Usage page.
Developers: Dynamic charts now support database joins
This entry is about our IPS Community Suite 4.2 release.
We are happy to introduce the next major feature that will be available in IPS Community Suite 4.2 - Clubs.
Clubs are a brand new way of supporting sub-communities within your site. Many people have requested social group functionality in the past and Clubs are our implementation of this concept. Let's take a look at a few screenshots, and then go over what they are capable of doing.
The Club directory
A Club homepage
Club member listing
Example of content within a club (topics, in this case)
There's a lot to digest there! Let's go over the basic functionality.
Four types of club are available:
Clubs that anyone can see and participate in without joining.
Clubs that anyone can see and join.
Clubs that anyone can see in the directory, but joining must be approved by a Club Leader or Club Moderator. Non-club-members who view the club will only see the member list - not the recent activity or content areas.
Clubs that do not show in public, and users must be invited by a Club Leader or Club Moderator
As the site admin, you can of course configure which club types can be created and by whom. You could, for example, allow members to create public and open clubs, but allow a "VIP" group to also create Closed and Private clubs.
Admin configuration option for Club creations
Each club has three levels of user:
A leader has all of the permissions of a moderator, and can add other moderators. They can also add content areas (see below). The club owner is automatically a leader.
Moderators, as the name implies, have the ability to moderate content posted within the club. As the site administrator, you can define which moderator tools can be used. You could, for example, prevent any content being deleted from clubs, but allow it to be hidden. Moderators can also remove members from a club.
Anyone else that joins the club.
Defining the moderator permissions available to club moderators
Your site administrator and moderators, with the appropriate permissions, are able to moderator content in any Club regardless of whether they are a member of it.
Clubs can be created by any user who has permission. As you would expect, this is controlled by our regular permission settings.
For closed clubs, there's an approval process. Users can request to join and the request must be approved by a leader. Leaders get a notification when a user requests to join; the user gets a notification when their request is approved or denied.
Approving and declining join requests
Club Leaders can add a variety of content areas to their club - forums, calendars, blogs and so on. It's important to note that these content areas are fully functional just as if they existed as a top-level admin created area. They will appear in search results, activity streams, users can follow them, embed links to them, and so on. If a user has permission to see a forum (for example) within a club it will behave exactly like other forums they see - and the same for all other kinds of content.
Each content area a leader adds can have a custom title, and will appear in the club navigation. This means, for example, that you can have multiple forums within a club, and give each a different name.
Adding content areas to a club
Club Custom Fields
Clubs also support custom fields. Custom fields are defined by the site administrator and can be filled in by Club Owners. The values they enter are shown (along with the club description) on the club homepage.
Custom fields in a club
On the Club Directory page, users can filter by the custom club fields.
Clubs have built-in support for Google Maps, allowing users to specify a physical location for their club. Let's say you run a community for car enthusiasts; each club might be tied to a particular region's meetup. The Club Owner specifies the location when setting up the club, and clubs are then shown on map on the directory page:
And within a club, the location is shown too:
We offer two ways to display club headers within the club - the standard way, shown in the screenshots you've seen up to this point, but we also have a sidebar option. This is something the admin sets globally for the site, rather than per-club. This is useful where your site design doesn't facilitate another horizontal banner taking up valuable screen real-estate; moving the club banner to the sidebar alleviates this pressure on vertical space.
Sidebar club style
Using Clubs in Other Ways
There's a lot of scope for using clubs beyond allowing users to create their own groups. You do not even have to call them "clubs" if that does not suit your use case. For example, on a company intranet you could rename Clubs to "Departments", and create a private group for each of your main roles. This would allow each department to have its own community, with its own forums, gallery, file sharing and so on, private and separate from other departments.
Similarly, they'd also work well in situations where you as the site admin want to create entire micro-communities. Take for example a video game publisher. Using Clubs, they could create a micro-community for each of their games, complete with forums, galleries and so forth, and then set the Clubs directory as their overall community homepage. Immediately, they have a setup that hasn't until now been possible out-of-the-box with IPS Community Suite.
We expect our clients will come up with some really innovative uses for the new Club functionality, and we can't wait to see what you do. We'd love to hear your feedback - let us know what you think in the comments.