PHPackages                             tapao/custom-landing-page - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. tapao/custom-landing-page

ActiveFlarum-extension[Utility &amp; Helpers](/categories/utility)

tapao/custom-landing-page
=========================

Full-page HTML landing page for Flarum — no header or footer

1.0.2(today)03↑2900%PHP

Since Jun 27Pushed todayCompare

[ Source](https://github.com/Tapao-NonSen/Custom-Landing-Page)[ Packagist](https://packagist.org/packages/tapao/custom-landing-page)[ RSS](/packages/tapao-custom-landing-page/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

tapao/custom-landing-page
=========================

[](#tapaocustom-landing-page)

A Flarum extension that serves a **fully custom HTML page** at the root path `/` with zero Flarum chrome — no header, footer, or SPA shell.

> Unlike `datlechin/flarum-landing-page` which injects content inside Flarum's layout, this extension intercepts the request at the PHP middleware layer and returns raw HTML before the Flarum SPA ever loads.

Features
--------

[](#features)

- Full `` document freedom — your HTML is the whole page
- No Flarum JS, CSS, or layout loaded at all
- Guest-only mode — bypass the landing page for logged-in users
- Template variables for dynamic values (title, URL, login/register links, year)
- Auto-detects `fof/direct-links` for clean `/login` and `/register` URLs
- Compatible with Flarum **1.8.x** and **2.x**

Installation
------------

[](#installation)

```
composer require tapao/custom-landing-page
php flarum migrate
php flarum cache:clear
```

Then enable the extension in your Flarum admin panel.

Configuration
-------------

[](#configuration)

Go to **Admin → Extensions → Custom Landing Page** and configure:

SettingDescription**Enable**Master on/off toggle**Show to guests only**When on, logged-in users see the normal forum instead**Landing Page HTML**Paste your full HTML document hereTemplate Variables
------------------

[](#template-variables)

These placeholders are replaced server-side before the page is sent:

VariableResolves to`{{ forum_title }}`Your forum's title`{{ forum_url }}`Forum base URL`{{ login_url }}``/login` (with fof/direct-links) or `/?modal=login``{{ register_url }}``/register` (with fof/direct-links) or `/?modal=register``{{ year }}`Current year (e.g. `2026`)### Example HTML

[](#example-html)

```
>

    {{ forum_title }}

    Welcome to {{ forum_title }}

        Login
        Register
        Browse Forum

    &copy; {{ year }} {{ forum_title }}

```

Login / Register Links
----------------------

[](#login--register-links)

### With `fof/direct-links` (recommended)

[](#with-fofdirect-links-recommended)

Install `fof/direct-links` for clean `/login` and `/register` routes. This extension auto-detects it and resolves `{{ login_url }}` to `/login` and `{{ register_url }}` to `/register`.

```
composer require fof/direct-links
```

### Without `fof/direct-links`

[](#without-fofdirect-links)

The `{{ login_url }}` and `{{ register_url }}` variables fall back to `/?modal=login` and `/?modal=register`. Flarum's frontend listens for these query params on boot and auto-opens the login/register modal.

> **Note:** The middleware only intercepts bare `GET /` — the `?modal=login` query param does not affect the path, so the fallback URLs correctly bypass the landing page and load the Flarum SPA.

How It Works
------------

[](#how-it-works)

A PSR-15 middleware is registered in Flarum's `web` middleware stack. On every request it checks:

1. Is the extension enabled?
2. Is this a `GET /` request?
3. Is the visitor a guest? (when guest-only mode is on)

If all conditions pass, it returns an `HtmlResponse` with your stored HTML — the rest of Flarum's request pipeline never runs.

Building JS (for developers)
----------------------------

[](#building-js-for-developers)

The admin settings panel requires the compiled JS asset:

```
cd js
npm install
npm run build
```

For development with watch mode:

```
npm run dev
```

Compatibility
-------------

[](#compatibility)

FlarumPHPStatus1.8.x8.1+Supported2.x8.1+SupportedLicense
-------

[](#license)

MIT

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance100

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

0d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/478b1e3108f03ecd77dfab7f49c97765d5e6bcd15e73d602844b3ea0e1281407?d=identicon)[tapao](/maintainers/tapao)

---

Top Contributors

[![Tapao-NonSen](https://avatars.githubusercontent.com/u/40026698?v=4)](https://github.com/Tapao-NonSen "Tapao-NonSen (9 commits)")

### Embed Badge

![Health badge](/badges/tapao-custom-landing-page/health.svg)

```
[![Health](https://phpackages.com/badges/tapao-custom-landing-page/health.svg)](https://phpackages.com/packages/tapao-custom-landing-page)
```

###  Alternatives

[flarum-lang/russian

Russian language pack for Flarum.

12127.5k](/packages/flarum-lang-russian)[fof/byobu

Well integrated, advanced private discussions.

59112.4k11](/packages/fof-byobu)[flarum/tags

Organize discussions into a hierarchy of tags and categories.

38744.9k137](/packages/flarum-tags)[fof/gamification

Upvotes and downvotes for your Flarum community

4062.0k7](/packages/fof-gamification)[fof/polls

 A Flarum extension that adds polls to your discussions

25130.2k9](/packages/fof-polls)[michaelbelgium/flarum-discussion-views

Add views to flarum discussions

3055.4k6](/packages/michaelbelgium-flarum-discussion-views)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
