PHPackages                             texnixe/similar - 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. texnixe/similar

ActiveKirby-plugin[Utility &amp; Helpers](/categories/utility)

texnixe/similar
===============

Find similar pages or files based on similarities between fields

3.0.1(2y ago)303932[1 issues](https://github.com/texnixe/kirby3-similar/issues)MITPHPPHP &gt;=8.0.0

Since Mar 2Pushed 2y ago2 watchersCompare

[ Source](https://github.com/texnixe/kirby3-similar)[ Packagist](https://packagist.org/packages/texnixe/similar)[ RSS](/packages/texnixe-similar/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (8)Dependencies (2)Versions (10)Used By (0)

[![GitHub release](https://camo.githubusercontent.com/65dd6703f382ccb86cd4a73fc0cc97d95ff9d19bfbf37a62715a862d1f67b0af/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f7465786e6978652f6b69726279332d73696d696c61722e7376673f6d61784167653d31383030)](https://camo.githubusercontent.com/65dd6703f382ccb86cd4a73fc0cc97d95ff9d19bfbf37a62715a862d1f67b0af/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f7465786e6978652f6b69726279332d73696d696c61722e7376673f6d61784167653d31383030) [![License](https://camo.githubusercontent.com/850eae1099d2b05f53383473d7cd51f9bc1ab09b7d0d9e5122f1dd930efdcc6d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d6173686170652f6170697374617475732e737667)](https://camo.githubusercontent.com/850eae1099d2b05f53383473d7cd51f9bc1ab09b7d0d9e5122f1dd930efdcc6d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d6173686170652f6170697374617475732e737667) [![Kirby 3 Pluginkit](https://camo.githubusercontent.com/949db12e110145dfb4609964e360fbfbf0415d11bedf77540b6bb8bebf16a422/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c7567696e6b69742d5945532d6363613030302e737667)](https://camo.githubusercontent.com/949db12e110145dfb4609964e360fbfbf0415d11bedf77540b6bb8bebf16a422/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c7567696e6b69742d5945532d6363613030302e737667)

Kirby Similar
=============

[](#kirby-similar)

Find related pages or files. Kirby 3 Similar is a [Kirby CMS](https://getkirby.com) plugin that lets you find items related to the current item based on the similarity between fields. For each given field, the plugin calculates the Jaccard Index and then weighs all indices based on the factor for each field.

Example use case: The current page has a tags field with three values (red, green, blue). You want to find all sibling pages with a minimum Jaccard Index of 0.3 (which possible values between 0 and 1).

Commercial Usage
----------------

[](#commercial-usage)

This plugin is free but if you use it in a commercial project please consider

- [making a donation](https://www.paypal.me/texnixe/10) or
- [buying a Kirby license using this affiliate link](https://a.paddle.com/v2/click/1129/38380?link=1170)

How is it different from the Kirby 3 Related plugin
---------------------------------------------------

[](#how-is-it-different-from-the-kirby-3-related-plugin)

- It allows you to pass multiple fields as an array with a factor for each field, depending on the importance of this field for determining the similarity.
- The similarity is calculated according to the Jaccard Index, rather than by the number of matches as in the Kirby 3 Related plugin.

A quick example that describes the difference:

**Example 1:**

Page A: blue, green Page B: blue, green

Matches: 2 Jaccard Index: 2/2 = 1

**Example 2:**

Page A: blue, green, yellow Page B: blue, green

Matches: 2 Jaccard Index: 2/3 = 0.66666

While both pages have the same number of matches, the Jaccard Index is lower in the second example, because the number of unique tags is taken into account as well.

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

[](#installation)

### Download

[](#download)

[Download the files](https://github.com/texnixe/kirby3-similar/archive/master.zip) and place them inside `site/plugins/kirby-similar`.

### Git Submodule

[](#git-submodule)

You can add the plugin as a Git submodule.

```
$ cd your/project/root
$ git submodule add https://github.com/texnixe/kirby3-similar.git site/plugins/kirby-similar
$ git submodule update --init --recursive
$ git commit -am "Add Kirby Similar plugin"

```

Run these commands to update the plugin:

```
$ cd your/project/root
$ git submodule foreach git checkout master
$ git submodule foreach git pull
$ git commit -am "Update submodules"
$ git submodule update --init --recursive

```

Usage
-----

[](#usage)

### Similar pages

[](#similar-pages)

```

```

#### index

[](#index)

The collection to search in. Default: `$item->siblings(false)` (The `false` argument excludes the current page from the collection)

#### fields

[](#fields)

The name of the field to search in. Default: tags

**Single field**You can pass a single field as string:

```
'fields' => 'tags'
```

**Multiple fields**

You can also pass multiple fields as array:

```
'fields' => ['tags', 'size', 'category']
```

In this case, all fields get the same factor 1.

You can also pass an associative array with a factor for each field:

```
'fields' => ['tags' => 1, 'size' => 1.5, 'category' => 3]
```

You might want to change the factor of individual fields when filtering collections to get better result. For example, assign a higher factor dynamically if the filter parameter is set to `size`:

```
'fields' => ['tags' => 0.5, 'size' => 2, 'category' => 1]
```

#### delimiter

[](#delimiter)

The delimiter that you use to separate values in a field Default: `,`

#### threshold

[](#threshold)

The minimum Jaccard Index, i.e. a value between 0 (no similarity) and 1 (full similarity) Default: `0.1`

#### languageFilter

[](#languagefilter)

Filter similar items by language in a multi-language installation. Default: `false`

License
-------

[](#license)

Kirby 3 Similar is open-sourced software licensed under the MIT license.

Copyright © 2019 Sonja Broda

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 90.9% 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 ~235 days

Recently: every ~374 days

Total

8

Last Release

989d ago

Major Versions

0.9.0 → 1.0.02019-04-13

1.0.3 → 2.0.02021-08-29

2.0.0 → 3.0.02023-05-30

PHP version history (2 changes)3.0.0PHP &gt;=8.0.0 &lt;8.2.0

3.0.1PHP &gt;=8.0.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/e89dc1e09ef4dbe7986140a861a0a2630011c6b8ad62f26e67e0ef10eb2f501c?d=identicon)[texnixe](/maintainers/texnixe)

---

Top Contributors

[![texnixe](https://avatars.githubusercontent.com/u/5312492?v=4)](https://github.com/texnixe "texnixe (10 commits)")[![yatil](https://avatars.githubusercontent.com/u/58862?v=4)](https://github.com/yatil "yatil (1 commits)")

---

Tags

kirby-cmskirby3kirby3-pluginkirby3kirby3-pluginkirby3-cms

### Embed Badge

![Health badge](/badges/texnixe-similar/health.svg)

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

###  Alternatives

[fabianmichael/kirby-meta

Your all-in-one powerhouse for any SEO and metadata needs imaginable.

6910.7k1](/packages/fabianmichael-kirby-meta)[arnoson/kirby-vite

Vite helper for Kirby CMS

9759.2k3](/packages/arnoson-kirby-vite)[bvdputte/kirby-fingerprint

Cache-busting utility to fingerprint assets (JS/CSS) in Kirby 3

1610.0k](/packages/bvdputte-kirby-fingerprint)[schnti/cachebuster

A plugin for Kirby 3 CMS to add modification timestamps to css and js files

108.3k1](/packages/schnti-cachebuster)[bnomei/kirby3-php-cachedriver

PHP based Cache-Driver

112.6k](/packages/bnomei-kirby3-php-cachedriver)

PHPackages © 2026

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