PHPackages                             linc/nitro-porter - 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. [Database &amp; ORM](/categories/database)
4. /
5. linc/nitro-porter

ActiveProject[Database &amp; ORM](/categories/database)

linc/nitro-porter
=================

The only multi-platform community migration tool. Free your community!

v4.1(5mo ago)824779[3 PRs](https://github.com/prosembler/nitro-porter/pulls)AGPL-3.0-onlyPHPPHP &gt;=8.3CI passing

Since Nov 22Pushed 1mo ago5 watchersCompare

[ Source](https://github.com/prosembler/nitro-porter)[ Packagist](https://packagist.org/packages/linc/nitro-porter)[ RSS](/packages/linc-nitro-porter/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (13)Versions (36)Used By (0)

Nitro Porter — free your community! 🚀
=====================================

[](#nitro-porter--free-your-community-)

Nitro Porter is the *only* multi-platform community migration tool.

🚀 Mission
---------

[](#-mission)

Every community deserves the best software for its mission while preserving its unique history. Nitro Porter's goal is 1-hour no-code data migrations for any community with accessible data.

### 🔍 Why do this?

[](#-why-do-this)

Community history is vitally important. Platform lock-in stifles competition in the software ecosystem. When everyone owns their own data and can freely choose their platform, everyone wins.

### 🤔 How is this possible?

[](#-how-is-this-possible)

Data is first converted to an intermediary "porter format," reducing the number of code paths from `#sources x #targets` to `#sources + #targets`. The result is repeatable results in a single multi-tool rather than myriad low-quality, single-purpose tools.

### 🪴 How is it extended?

[](#-how-is-it-extended)

Nitro Porter packages allow anyone with *basic* programming skills to add any community software (commercial or free) as source or target. Nitro Porter uses the [GNU AGPL 3.0 license](COPYING) to ensure it remains freely available to all.

🚥 Get started
-------------

[](#-get-started)

- [**User Guide**](https://nitroporter.org/guide) — requirements &amp; install steps.
- [**Migration Guide**](https://nitroporter.org/migrations) — plan a community migration.
- [**Sources**](https://nitroporter.org/sources) &amp; [**Targets**](https://nitroporter.org/targets) — support details.
- [**Start a Discussion**](https://github.com/prosembler/nitro-porter/discussions) — share how it went!

🎟️ Get involved
---------------

[](#️-get-involved)

- [**Contribute**](docs/contribute.md) — data, requests, &amp; fixes.
- [**Changelog**](CHANGELOG.md) — latest fixes &amp; updates.
- [**Roadmap**](https://github.com/orgs/prosembler/projects/1) — informal goals.
- [**History**](docs/history.md) — how we got here.

What's Supported?
-----------------

[](#whats-supported)

### 📥 Targets ([3](https://nitroporter.org/targets))

[](#-targets-3)

[![Flarum](docs/assets/logos/flarum-300x100.png)](docs/assets/logos/flarum-300x100.png)[![Vanilla](docs/assets/logos/vanilla-300x100.png)](docs/assets/logos/vanilla-300x100.png)[![Waterhole](docs/assets/logos/waterhole-300x100.png)](docs/assets/logos/waterhole-300x100.png)

### 📤 Sources ([37](https://nitroporter.org/sources))

[](#-sources-37)

[![AnswerHub](docs/assets/logos/answerhub-150x50.jpg)](docs/assets/logos/answerhub-150x50.jpg)[![ASPPlayground.NET](docs/assets/logos/aspplayground-150x50.png)](docs/assets/logos/aspplayground-150x50.png)[![bbPress](docs/assets/logos/bbpress-150x50.png)](docs/assets/logos/bbpress-150x50.png)[![Discord](docs/assets/logos/discord-150x50.png)](docs/assets/logos/discord-150x50.png)[![Drupal](docs/assets/logos/drupal-150x50.jpeg)](docs/assets/logos/drupal-150x50.jpeg)[![esoTalk](docs/assets/logos/esotalk-150x50.png)](docs/assets/logos/esotalk-150x50.png)[![Flarum](docs/assets/logos/flarum-150x50.png)](docs/assets/logos/flarum-150x50.png)[![FluxBB](docs/assets/logos/fluxbb-150x50.png)](docs/assets/logos/fluxbb-150x50.png)[![IPBoard](docs/assets/logos/ipboard-150x50.png)](docs/assets/logos/ipboard-150x50.png)[![Kunena](docs/assets/logos/kunena-150x50.jpg)](docs/assets/logos/kunena-150x50.jpg)[![MyBB](docs/assets/logos/mybb-150x50.png)](docs/assets/logos/mybb-150x50.png)[![NodeBB](docs/assets/logos/nodebb-150x50.png)](docs/assets/logos/nodebb-150x50.png)[![phpBB](docs/assets/logos/phpbb-150x50.png)](docs/assets/logos/phpbb-150x50.png)[![Simple Machines (SMF)](docs/assets/logos/smf-150x50.jpeg)](docs/assets/logos/smf-150x50.jpeg)[![SimplePress](docs/assets/logos/simplepress-150x50.png)](docs/assets/logos/simplepress-150x50.png)[![Uservoice](docs/assets/logos/uservoice-150x50.jpeg)](docs/assets/logos/uservoice-150x50.jpeg)[![Vanilla](docs/assets/logos/vanilla-150x50.png)](docs/assets/logos/vanilla-150x50.png)[![vBulletin](docs/assets/logos/vbulletin-150x50.jpeg)](docs/assets/logos/vbulletin-150x50.jpeg)[![XenForo](docs/assets/logos/xenforo-150x50.jpeg)](docs/assets/logos/xenforo-150x50.jpeg)

*...[and MORE](https://nitroporter.org/sources)!*

### ✔ What data gets migrated?

[](#-what-data-gets-migrated)

All sources &amp; targets support migrating:

- users &amp; roles
- discussions (or *threads*)
- posts (or *comments*)
- categories (or *subforums*, *channels*, etc.)

Beyond that, each supports **different types of data** depending on feature availability, extension choice, and maturity of the source/target package. These include things like badges, reactions, bookmarks, and polls.

***Both the source and target must support a data type for it to transfer!***

Nitro Porter **never** transfers permissions. It's not safe to do so automatically due to variations in how platforms implement them. You will **always** need to reassign permissions after a migration.

**Passwords** are generally *hashed*, which means no system can "decrypt" or "convert" them. However, if both the source and target platform support the same hashing algorithm, they should transfer seamlessly. Alternatively, the target system could add support for the source hashing algorithm and convert password hashes as users login next (see [Garden/Password](https://github.com/prosembler/garden-password)). This is beyond the scope of what any migration tool can do in isolation, but we're happy to [answer questions](https://github.com/prosembler/nitro-porter/discussions/new) about the process should you wish to build that functionality.

### 🔭 Future support

[](#-future-support)

Don't see your software? [Start a discussion](https://github.com/prosembler/nitro-porter/discussions/new) to request it and keep an eye on our [informal roadmap](https://github.com/orgs/prosembler/projects/1). We're happy to add a new **Source** for any software, provided it is not bespoke. For a new **Target**, we typically require support from the vendor.

Currently, nearly all data sources and targets are based on MySQL-compatible databases. Other storage formats (e.g. mbox, MSSQL, API) require pre-conversion to a MySQL database. The 3.0 rewrite of Nitro Porter[1](#user-content-fn-1-f40e13d2e11959f176863f0ea2721ce5) was built with native support for those alternate formats in mind and it will continue to expand.

Footnotes
---------

1. 🚀 Forked 27 Sep 2021 in memory of Kyle [↩](#user-content-fnref-1-f40e13d2e11959f176863f0ea2721ce5)

###  Health Score

60

—

FairBetter than 99% of packages

Maintenance83

Actively maintained with recent releases

Popularity28

Limited adoption so far

Community26

Small or concentrated contributor base

Maturity90

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 70.1% 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 ~149 days

Recently: every ~22 days

Total

28

Last Release

169d ago

Major Versions

v2.5 → v3.02022-09-27

v3.7.3 → v4.02025-09-30

PHP version history (5 changes)v2.1PHP &gt;=5.3.0

v2.5PHP &gt;=5.6.0

v3.0PHP &gt;=8.0

v3.7.0PHP &gt;=8.2

v4.0PHP &gt;=8.3

### Community

Maintainers

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

---

Top Contributors

[![linc](https://avatars.githubusercontent.com/u/117672?v=4)](https://github.com/linc "linc (1224 commits)")[![tburry](https://avatars.githubusercontent.com/u/97432?v=4)](https://github.com/tburry "tburry (150 commits)")[![DaazKu](https://avatars.githubusercontent.com/u/2412909?v=4)](https://github.com/DaazKu "DaazKu (138 commits)")[![initvector](https://avatars.githubusercontent.com/u/1390241?v=4)](https://github.com/initvector "initvector (84 commits)")[![JReko](https://avatars.githubusercontent.com/u/15312192?v=4)](https://github.com/JReko "JReko (34 commits)")[![OlivierLamyCanuel](https://avatars.githubusercontent.com/u/39598345?v=4)](https://github.com/OlivierLamyCanuel "OlivierLamyCanuel (29 commits)")[![JohnIncog](https://avatars.githubusercontent.com/u/6825291?v=4)](https://github.com/JohnIncog "JohnIncog (16 commits)")[![fbjerggaard](https://avatars.githubusercontent.com/u/1044024?v=4)](https://github.com/fbjerggaard "fbjerggaard (9 commits)")[![R-J](https://avatars.githubusercontent.com/u/3996187?v=4)](https://github.com/R-J "R-J (8 commits)")[![kaecyra](https://avatars.githubusercontent.com/u/248212?v=4)](https://github.com/kaecyra "kaecyra (7 commits)")[![vjt](https://avatars.githubusercontent.com/u/14077?v=4)](https://github.com/vjt "vjt (7 commits)")[![Grendel7](https://avatars.githubusercontent.com/u/1823324?v=4)](https://github.com/Grendel7 "Grendel7 (6 commits)")[![tobyzerner](https://avatars.githubusercontent.com/u/128862?v=4)](https://github.com/tobyzerner "tobyzerner (5 commits)")[![vincentlam92](https://avatars.githubusercontent.com/u/43498469?v=4)](https://github.com/vincentlam92 "vincentlam92 (5 commits)")[![beckyvb](https://avatars.githubusercontent.com/u/3805381?v=4)](https://github.com/beckyvb "beckyvb (5 commits)")[![achton](https://avatars.githubusercontent.com/u/109079?v=4)](https://github.com/achton "achton (2 commits)")[![conejoninja](https://avatars.githubusercontent.com/u/475423?v=4)](https://github.com/conejoninja "conejoninja (2 commits)")[![markosullivan](https://avatars.githubusercontent.com/u/739922?v=4)](https://github.com/markosullivan "markosullivan (2 commits)")[![laktak](https://avatars.githubusercontent.com/u/959858?v=4)](https://github.com/laktak "laktak (1 commits)")[![luceos](https://avatars.githubusercontent.com/u/504687?v=4)](https://github.com/luceos "luceos (1 commits)")

---

Tags

communitydata-portabilitydatabaseforumsmigrationphputility-application

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/linc-nitro-porter/health.svg)

```
[![Health](https://phpackages.com/badges/linc-nitro-porter/health.svg)](https://phpackages.com/packages/linc-nitro-porter)
```

###  Alternatives

[staudenmeir/laravel-adjacency-list

Recursive Laravel Eloquent relationships with CTEs

1.5k4.7M27](/packages/staudenmeir-laravel-adjacency-list)[owen-it/laravel-auditing

Audit changes of your Eloquent models in Laravel

3.4k33.0M95](/packages/owen-it-laravel-auditing)[staudenmeir/eloquent-json-relations

Laravel Eloquent relationships with JSON keys

1.1k5.8M24](/packages/staudenmeir-eloquent-json-relations)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[cybercog/laravel-ownership

Laravel Ownership simplify management of Eloquent model's owner.

9126.6k3](/packages/cybercog-laravel-ownership)[io238/laravel-iso-countries

Ready-to-use Laravel models and relations for country (ISO 3166), language (ISO 639-1), and currency (ISO 4217) information with multi-language support.

5462.3k](/packages/io238-laravel-iso-countries)

PHPackages © 2026

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