Blog

Official release announcements and other updates from the Waterhole team.

Waterhole 0.4

Waterhole 0.4 is here with new integrations: single sign-on with external authentication providers,...

Create a Post You don't have permission to do this.
Toby Toby Waterhole Founder Dec 23, 2023

Waterhole 0.4

Actions

Waterhole 0.4 is here with new integrations: single sign-on with external authentication providers, and integration into existing Laravel apps.

Highlights

The focus of the 0.4 release is authentication and Laravel integration, making it possible to use Waterhole with your existing user base. There are also a number of other changes and bug fixes which are detailed in the Release Notes.

πŸ”‘ Single Sign-On

If you have an external site with an existing user base and authentication system that you would like to use, Waterhole now includes a special authentication provider to support this flow.

The updated Authentication docs describe how to set this up, including making the necessary configuration changes to Waterhole and configuring your external site to respond.

If your website uses PHP, you can use the new waterhole/sso package to handle SSO requests for you, making it as easy as this:

use Waterhole\Sso\PendingUser;
use Waterhole\Sso\WaterholeSso;

Route::middleware('auth', 'verified')->get('sso', function () {
    $sso = new WaterholeSso('sso_secret');

    $user = Auth::user();

    $sso->authenticate(
        new PendingUser(
            identifier: $user->id,
            email: $user->email,
            name: $user->name,
            avatar: $user->avatar_url,
        )
    );
});

🐘 Laravel Integration

If you have an existing Laravel application and user base, you can now install Waterhole into your project as a package, and automatically authenticate your users. Currently only Laravel 10 is supported.

Check out the new Laravel Integration docs to learn how to set this up. After installing and configuring Waterhole, setting up the authentication integration is as easy as adding an interface and a trait to your application's User model:

namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Waterhole\Auth\AuthenticatesWaterhole;
use Waterhole\Auth\HasWaterholeUser;

class User extends Authenticable implements AuthenticatesWaterhole
{
    use HasWaterholeUser;
}

Upgrading From 0.3

⚠️ This release contains breaking changes listed in the Release Notes. Before upgrading, you should review this list and make appropriate updates to your customizations.

πŸ“ There are also changes to the Waterhole configuration files. While many of these changes are not required, you may wish to review them and keep your project's configuration files in sync.

One configuration change is required. In the config/waterhole/auth.php file, rename the oauth_providers key to providers:

- 'oauth_providers' => [
+ 'providers' => [

Also, if you are using any auth providers, you will need to change the redirect URLs in config/services.php from oauth/{provider}/callback to auth/{provider}/callback:

-    'redirect' => 'oauth/github/callback',
+    'redirect' => 'auth/github/callback',

Now in your composer.json file, change the waterhole/core requirement:

- "waterhole/core": "^0.3"
+ "waterhole/core": "^0.4"

Then run:

composer update waterhole/core --with-dependencies
php artisan migrate
php artisan waterhole:cache:clear

What's Next

The next release, 0.5, will introduce a comprehensive JSON API so you can read and write forum data outside of Waterhole. It will also bring some changes to the extension API to improve performance and stability.

πŸ‘οΈ 4 Like Loading... ❀️ 3 Love Loading...
3 ⁨3⁩ ⁨comments⁩
Toby Toby Waterhole Founder Jul 31, 2023

Waterhole 0.3

Actions

Waterhole 0.3 is here with pinned posts, comment hiding, smart mention suggestions, performance improvements, and a ton of other improvements and fixes.

Highlights

0.3 contains some essential features to help manage posts and comments in your community, improve the user experience when posting, and more. To explore all the smaller details, check out the Release Notes.

πŸ“Œ Pinned Posts

Moderators can now pin important posts to the top of the feed to give them increased visibility and make sure they can't be missed. You can have as many posts pinned as you like, although it's recommended to only pin one or two at a time so they don't take up too much space.

image.png

πŸ«₯ Comment Hiding

As an alternative to being deleted permanently, comments can now be hidden to clean up a discussion. Anyone can expand a hidden comment to read it in full. Moderators can also specify a reason for hiding a comment – such as off-topic, inappropriate, or spam – which will be displayed on the collapsed comment.

image.png

πŸ—‘οΈ Post Trash

Instead of deleting posts and all of their comments permanently, posts can now be moved to the trash, allowing them to be recovered if needed. Only admins and moderators can view trashed posts.

πŸ’¬ Smart Mention Suggestions

When you type the @ character while writing a comment, Waterhole will now suggest recent commenters as well as the original poster. Additionally, your comment will be marked as a reply to the selected user's most recent comment in the thread.

mentions.gif

🏎️ Performance Improvements

Waterhole is now even faster thanks to a few optimisations. In particular, reaction users and action menus now load lazily, speeding up page loads. The default number of posts and comments per page has also been slightly reduced, though this is configurable.

✨ Other Improvements

There are a whole range of minor enhancements and bug fixes, including:

  • Add a Comment button in the post sidebar
  • Use a more compact layout for comments on small screens
  • Use color to make search result keyword highlights more prominent
  • Get a "mention" notification when someone replies to your comment
  • Make "follow posts I comment on" preference also automatically follow posts you create
  • Limit one notification per user per new comment
  • Show links in channel picker when creating new posts

Upgrading From 0.2

In your composer.json file, change the waterhole/core requirement:

- "waterhole/core": "^0.2"
+ "waterhole/core": "^0.3"

Then run:

composer update waterhole/core --with-dependencies
php artisan migrate
php artisan waterhole:cache:clear

What's Next

The next release, 0.4, will focus on integrations: single sign-on with external authentication providers, integration into existing Laravel apps, and a JSON API so you can read and write forum data outside of Waterhole.

πŸŽ‰ 7 Hooray Loading... ❀️ 4 Love Loading... πŸ‘οΈ 1 Like Loading...
21 ⁨21⁩ ⁨comments⁩
Toby Toby Waterhole Founder May 30, 2023

Waterhole 0.2

Actions

Waterhole 0.2 is here with a security fix, better emoji support, new translations, and a whole range of other improvements and fixes.

Highlights

0.2 is mostly about smaller enhancements and bug fixes, but there are a few notable changes. To explore all the smaller details, check out the Release Notes.

🀩 Improved Emoji Support

Emojis are now rendered using TextFormatter, the formatting library used by Waterhole. This is more performant and fixes a security vulnerability with the old emoji rendering method. It also means you can configure Waterhole to use an alternative emoji set instead of Twemoji.

πŸ—£οΈ New Translations

Waterhole has been translated into πŸ‡«πŸ‡· French (thanks to @Qiaeru) and πŸ‡·πŸ‡Ί Russian (thanks to @Awilum). You can enable these locales on your installation by adding the following to your WaterholeServiceProvider:

Extend\Locales::add('French', 'fr');
Extend\Locales::add('Russian', 'ru');

✨ Other Improvements

There are a whole range of minor enhancements and bug fixes, including:

  • Internal links no longer open in a new window
  • The post last activity time now links to the last comment
  • Slightly decreased the container width and typographic measure to improve readability
  • Added the ability to look up users by ID in the CP
  • Fix the text editor emoji popup not displaying
  • Fix an error when running the waterhole:make:extension command
  • Fix the bottom of composer textarea going off-screen

Upgrading From 0.1

Upgrade Using Composer

In your composer.json file, change the waterhole/core requirement:

- "waterhole/core": "^0.1"
+ "waterhole/core": "^0.2"

Then run:

composer update waterhole/core --with-dependencies

Update Emoji Configuration

The emoji configuration in config/waterhole/design.php has changed. To continue using Twemoji in your project, you'll need to make the following change:

- 'twemoji_base' => 'https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.1/',
+ 'emoji_url' => 'https://cdn.jsdelivr.net/gh/twitter/twemoji@latest/assets/svg/{@tseq}.svg',

Reformat Content

Emojis in content are now formatted at parse-time rather than at render-time. Run the following command to reparse emojis in all existing content:

php artisan waterhole:reformat
πŸ‘οΈ 7 Like Loading... πŸŽ‰ 4 Hooray Loading...
3 ⁨3⁩ ⁨comments⁩
Toby Toby Waterhole Founder May 23, 2023

Introducing Waterhole

Actions

I’m incredibly excited to introduce Waterhole – a modern, Laravel-powered discussion platform.

Waterhole has a simple, extensible architecture; an inclusive, customisable design; and thoughtfully crafted features that streamline building healthy communities. It's made for brands, creators, and teams who want to build bespoke and tightly-integrated communities.

Waterhole is open source and free to try locally, but you must pay for a license to run it in production. This business model allows me to focus on developing and supporting a great product, and creates an opportunity for the wider Laravel ecosystem to provide hosting, customization, and consulting services.

🌏 Visit the website to learn more
πŸ“– Read the docs to get started

The Philosophy Behind Waterhole

Waterhole is the product of years of experience building forum software and custom communities. It doesn't try to reimagine what online communities are supposed to be, but it puts the focus back on the things that matter: healthy discussion, tight integration, sustainable ownership, and inclusiveness.

For community managers, Waterhole integrates best practices for growing healthy communities directly into the core product. You can easily set up your community Structure with channels tailored for discussion, ideation, support, and more.

For developers, Waterhole is refreshingly easy to work with, from setup to deploy. It has a powerful, well-documented extension API, a modern design system with CSS variables, and it's built on familiar open-source technology including Laravel and Hotwire, without any of the complexity of a JavaScript framework.

For end users, Waterhole has a lightning fast, inclusive, and resilient user experience, optimized for slow connections and older hardware (unlike many modern competitors). The design is clean and content-focused, and it's easy to navigate around the community and within discussions.

For business owners, Waterhole is a much safer bet than many other alternatives. Waterhole licenses are perpetual, meaning that you can keep using the version of Waterhole you paid for, forever. You are always in full control over your server, your code, and your data; the fate of your community is not tied to the whims of a large corporation, or the fortune of an unprofitable SaaS company.

Read more about the Waterhole philosophy

About Me

I'm Toby, the original developer of Flarum. Years ago I departed the project to take a different approach to building forum software.

It's been quite a journey since then, involving a lot of iteration to work out exactly what I wanted to build. I'm very proud of the product that I'm releasing today and I can't wait to keep making it better. Let me know your ideas!

πŸŽ‰ 18 Hooray Loading... ❀️ 8 Love Loading... πŸ‘οΈ 5 Like Loading...
17 ⁨17⁩ ⁨comments⁩