PHPackages                             syntaxoutlaw/threadify - 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. syntaxoutlaw/threadify

ActiveFlarum-extension

syntaxoutlaw/threadify
======================

A Flarum extension that adds threaded discussions with visual indentation to your forum, making complex conversations easier to follow.

1.2.0(3mo ago)21.7k↓33.3%1[3 issues](https://github.com/SyntaxOutlaw/threadify/issues)MITJavaScript

Since Jul 28Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/SyntaxOutlaw/threadify)[ Packagist](https://packagist.org/packages/syntaxoutlaw/threadify)[ Fund](https://coff.ee/syntaxoutlaw)[ RSS](/packages/syntaxoutlaw-threadify/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)Dependencies (3)Versions (11)Used By (0)

Threadify for Flarum
====================

[](#threadify-for-flarum)

[![License](https://camo.githubusercontent.com/57428f83c1de25d1c187c897f7ea97a326bf13ea49b8eb72b532e4b24b145b49/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f73796e7461786f75746c61772f746872656164696679)](https://github.com/SyntaxOutlaw/threadify/blob/main/LICENSE)[![Packagist Version](https://camo.githubusercontent.com/ffbaa74c9a56228112967233c49ab9aeb076218b14f74f333069bed590fac7d2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73796e7461786f75746c61772f746872656164696679)](https://packagist.org/packages/syntaxoutlaw/threadify)[![Packagist Downloads](https://camo.githubusercontent.com/7de26f295f654032a37b68f96c6ccc27707081371cf833d839b9ad8677365eef/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73796e7461786f75746c61772f746872656164696679)](https://packagist.org/packages/syntaxoutlaw/threadify)[![Buy Me a Coffee](https://camo.githubusercontent.com/92122b9ef3afa16d696bf6d48a24cc7816a4e9162f479128be71597f9c509531/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4275795f4d655f415f436f666665652d677265656e)](https://coff.ee/syntaxoutlaw)

A Flarum extension that adds **threaded discussions** with visual indentation to your forum, making complex conversations easier to follow.

🚀 Features
----------

[](#-features)

- **Multi-level nested threading** with distinct colors and indentation for each depth
- **Pre-computed thread structure** - efficient backend thread calculation and storage
- **Real-time updates** - new replies appear in correct threaded positions instantly
- **Seamless integration** - uses existing Flarum mentions
- **Works on existing discussions** - will also create threads for past discussions
- **Optional tag-based threading** - thread all discussions, or only those with a chosen tag (e.g. for Q&amp;A-style tags)

📋 Requirements
--------------

[](#-requirements)

- **Flarum** v1.8.10+ (tested on 1.8.10)
- **Flarum Mentions Extension** - Required for threading to work
- **PHP** 7.4+

👀 Preview:
----------

[](#-preview)

[![Threadify Preview](threadify.png)](threadify.png)

🔧 Installation
--------------

[](#-installation)

### Via Composer (when published)

[](#via-composer-when-published)

```
composer require syntaxoutlaw/threadify
```

### Manual Installation

[](#manual-installation)

1. Clone/download this repository into your `extensions/threadify/` directory
2. Run `composer install` in the extension directory
3. Run `cd js && npm install && npm run build` to compile JavaScript
4. Enable the extension in your Flarum admin panel

🎯 How to Use
------------

[](#-how-to-use)

Threading works automatically using Flarum's mentions extension:

1. **Click Reply** on any post
2. **Keep the @ mention** that's automatically inserted (e.g., `@"Username"#p123`)
3. **Write your reply** and submit
4. Your reply will appear **indented** under the parent post

⚙️ How It Works
---------------

[](#️-how-it-works)

### Backend (PHP)

[](#backend-php)

- **Database Structure**:
    - Adds `parent_id` column to posts table for basic parent-child relationships
    - Creates `threadify_threads` table for advanced thread metadata (depth, path, counts)
- **Thread Processing**:
    - Listens for new posts and extracts parent relationships from mention format `@"Name"#p123`
    - Pre-computes thread depth, path, and descendant counts for efficient frontend rendering
    - Maintains thread hierarchy with proper indexing for fast queries
- **API Endpoints**:
    - `/discussions/{id}/threads` - Returns complete thread structure with metadata
    - `/threadify/admin/rebuild-parent-ids` - Admin tool for rebuilding thread relationships

### Frontend (JavaScript)

[](#frontend-javascript)

- **Thread Tree Building**:
    - Uses pre-computed thread metadata from backend API
    - Builds parent-child tree structures and flattens them to linear threaded order
- **Visual Styling**:
    - Applies CSS classes for visual depth styling (`thread-depth-1`, `thread-depth-2`, etc.)
    - Progressive indentation with color-coded depth indicators

🔍 Troubleshooting
-----------------

[](#-troubleshooting)

- **Threading not working?** Ensure `flarum/mentions` extension is enabled
- **Posts not loading?** Check browser console for errors and run `php flarum cache:clear`
- **Visual issues?** Run `php flarum assets:publish` and clear browser cache
- **Database issues?** Run `php flarum migrate` to ensure all migrations are applied

📝 License
---------

[](#-license)

MIT License - see [LICENSE](LICENSE) file for details.

**Made with ❤️ for the Flarum community**

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance62

Regular maintenance activity

Popularity24

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 98.3% 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 ~25 days

Recently: every ~50 days

Total

9

Last Release

94d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/837e9bb94526ce135c7e521f6add304ed3a83b084bf3bca4619db7f571fa7454?d=identicon)[syntaxoutlaw](/maintainers/syntaxoutlaw)

---

Top Contributors

[![SyntaxOutlaw](https://avatars.githubusercontent.com/u/15971045?v=4)](https://github.com/SyntaxOutlaw "SyntaxOutlaw (58 commits)")[![Lowouis](https://avatars.githubusercontent.com/u/83007122?v=4)](https://github.com/Lowouis "Lowouis (1 commits)")

---

Tags

flarumflarum-discussionsflarum-extensionthreaded-conversationsthreaded-discussionsthreadsnestedextensionforumflarumthreadingdiscussionsreplies

### Embed Badge

![Health badge](/badges/syntaxoutlaw-threadify/health.svg)

```
[![Health](https://phpackages.com/badges/syntaxoutlaw-threadify/health.svg)](https://phpackages.com/packages/syntaxoutlaw-threadify)
```

###  Alternatives

[flarum-lang/russian

Russian language pack for Flarum.

13126.1k](/packages/flarum-lang-russian)[flarum-lang/french

French language pack to localize the Flarum forum software plus its official and third-party extensions.

2033.8k](/packages/flarum-lang-french)[flarum/gdpr

Features for GDPR, PII management

1425.2k15](/packages/flarum-gdpr)[fof/subscribed

Additional user subscriptions for your forum

1327.5k2](/packages/fof-subscribed)

PHPackages © 2026

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