Waterhole is where communities thrive.
The Laravel-powered discussion platform giving life to vibrant online communities for brands, creators, and teams.
A gathering place for your audience
Waterhole is an all-in-one audience engagement platform. Create spaces where your community can have discussions, suggest and vote on ideas, ask questions, and publish long-form content – all in the same place, under your own brand and domain.
Powerful community building blocks
Everything you need to build and sustain a healthy community is included out of the box, thoughtfully designed to be simple and flexible. Mix and match settings in each channel to optimize incentives and get the best out of your community.
Answers
Mark the best answer for each question in support channels, and filter posts by answered or unanswered.
Reactions
Customize reactions for each channel – keep it simple with "likes", get fancy with some emoji, or use reactions to count votes.
Taxonomies
Define filterable taxonomies for each channel to sub-categorize discussion without overwhelming hierarchies.
User Groups
Reward trusted contributors with flair, and give them access to private channels.
Filters
Customize the filters available for each channel to help users find the most relevant content.
Prompts
Set up just-in-time prompts to guide and nudge users as they submit new content, improving discussion quality.
Moderation Tools
Keep things civil by suspending disruptive users and locking unproductive discussions.
Layouts
Choose how to display posts in each channel – as a list or as expanded cards.
Single Sign-on
Allow users to sign in with any OAuth2 provider like Google, Facebook, Twitter, or your own site.
Search
Fast and precise search out of the box to help users find what they're looking for.
Analytics
Visualize recent activity and trends in your community with customizable dashboard widgets.
Notifications
Follow channels and posts to get notified about new activity, and @mention other users to notify them.
Built for Laravel developers
Waterhole is a highly extensible Laravel package, installable via Composer. Laravel developers will feel right at home creating bespoke designs using Blade components, and adding custom features with Models, Service Providers, and Middleware.
Take full control of your community
Your community is too important to depend on the whims of a large corporation, or the fortune of a SaaS company. Waterhole is source-available and self-hosted, so you're forever in full control of your server, code, and data.
<?php
use Waterhole\Extend;
class WaterholeServiceProvider extends Extend\ServiceProvider
{
public function extend(): void
{
Extend\Stylesheet::add(
file: resource_path('css/header.css')
);
Extend\LayoutBefore::add(
content: 'partials.header',
position: -10
);
}
}
<?php
use Illuminate\Support\Facades\Route;
use Waterhole\Extend;
use Waterhole\View\Components\NavLink;
class WaterholeServiceProvider extends Extend\ServiceProvider
{
public function extend(): void
{
Extend\Stylesheet::add(
file: resource_path('css/products.css'),
bundle: 'cp'
);
Extend\CpRoutes::add(function () {
Route::resource('products', ProductController::class);
});
Extend\CpNav::add(
new NavLink(
label: 'Products',
icon: 'tabler-shopping-bag',
route: 'waterhole.cp.products.index',
)
);
}
}
<?php
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
use Waterhole\Extend;
use Waterhole\Forms\Field;
use Waterhole\Models\User;
class WaterholeServiceProvider extends Extend\ServiceProvider
{
public function extend(): void
{
Extend\RegistrationForm::add(NewsletterSignup::class);
}
}
class NewsletterSignup extends Field
{
public function __construct(public User $model)
{
}
public function render()
{
return view('fields.newsletter-signup');
}
public function validating(Validator $validator): void
{
$validator->addRules(['newsletter' => 'boolean']);
}
public function saved(FormRequest $request): void
{
if ($request->validated('newsletter')) {
subscribe_to_newsletter($this->model);
}
}
}
A lightning fast experience for your users
Waterhole is built for everyone – including users with slow connections, older hardware, and even JavaScript disabled. It loads in a heartbeat which is great for your users and SEO.
Waterhole
Measuring time to Largest Contentful Paint on Google Chrome 112, M1 MacBook Air, cache disabled, Fast 3G throttling (560ms of latency, 1.44 Mbps bandwidth). Recorded on 20/4/23.