Giving Tuesday: Mautic 'backs their stack' to support the open source projects they depend on

By Ruth Cheesley · PUBLISHED November 30, 2021 · UPDATED November 30, 2021

Giving Tuesday is a call to action for all of us to stop, and think about how and what we can give to make the world a better place.

For some that might mean helping a neighbour in need, or supporting a charity that matters to you. For others it might mean giving something back to the open source projects that you use on a daily basis, whether that’s by financially supporting the projects, or by giving your time and expertise to contribute in more practical ways.

Today the Mautic project is announcing our intention to financially support the top 10 projects - prioritised by the community - which we depend on to keep our community and product running. We have allocated $2,000 in our budget this year as a starting point for the ‘Back your Stack’ project.

As an open source project, we depend on many other open source projects, some large and some small. We want to play a small part in helping those projects to continue being sustainable. Together we all grow stronger.

For the next two weeks, we have a form which community members can use to prioritise the projects that they would like us to start funding. The top 10 voted projects will receive $200 over the next year from Mautic through GitHub Sponsors or Open Collective.

Share your priorities  

We appreciate that $200 per project is not much in the grand scheme of things, but it is a start. Our budget allocation this year represents 4% of our annual budget, and we would love to raise this to closer to 10% in the future as we become more financially stable ourselves. We hope that as our project continues to grow and thrive, the amount we can make available - and therefore the number of projects we can support - will increase. 

If you would like to support some or all of these projects on a personal basis or from your company (and we really encourage you to do this, if you are able!), please find the full list of projects we know to be seeking funding below:

Name of project

How it is used in Mautic

Packages used

Donation channels

Mautic

Our core product

mautic/core

https://github.com/sponsors/mautic

https://opencollective.com/mautic

Babel

Used in the GrapesJS plugin to make sure our JavaScript is compatible with a wide range of browsers

Cli, core, plugin-proposal-class-properties, plugin-transform-runtime, preset-flow, babel-eslint

https://opencollective.com/babel

https://github.com/sponsors/babel 

https://gitcoin.co/grants/2906/babel-compiler-for-next-generation-javascript

Clue

Used by the Sparkpost SDK.

stream-filter

https://clue.engineering/support

 https://github.com/sponsors/clue

Composer

Used in the installation process and in the Mautic Marketplace

ca-bundle, installers, package-versions-deprecated, semver, xdebug-handler

https://packagist.com

https://github.com/sponsors/composer

https://tidelift.com/funding/github/packagist/composer/composer

Doctrine

ORM (object relational mapper) is used to define and manage the “data layer” in Mautic. Integrated into the API and Symfony Forms. 

 

DBAL (database abstraction layer) provides drivers to interact with SQL servers although Mautic only supports MySQL/MariaDB. 

 

Migrations used to manage changes to the database schema.

ache, common, data-fixtures, dbal, doctrine-bundle, doctrine-fixtures-bundle, doctrine-migrations-bundle, event-manager, inflector, instantiator, lexer, migrations, persistence

https://www.doctrine-project.org/sponsorship.html

https://www.patreon.com/phpdoctrine

https://tidelift.com

Egulias

Used to validate emails in campaign builder

email-validator

https://github.com/sponsors/egulias

ESLint

Used in the GrapesJS plugin to improve the code quality

eslint

https://github.com/sponsors/eslint

https://opencollective.com/eslint

https://tidelift.com/funding/github/npm/eslint

FriendsofPHP

Used by developers to ensure that their code meets our code standards

Php-cs-fixer


 

https://github.com/sponsors/keradus

FriendsofPHP

Used in Doctrine Migrations.

Proxy-manager-lts

https://github.com/sponsors/Ocramius

https://tidelift.com/funding/github/packagist/ocramius/proxy-manager

Guzzlehttp

Used in plugins, the integration framework, and core to make HTTP requests to third party servers. 

guzzle, promises, psr7

https://github.com/sponsors/GrahamCampbell

https://github.com/sponsors/Nyholm

Intervention

Used in El Finder.

image

https://www.paypal.me/interventionphp

https://github.com/sponsors/Intervention


 

JMS

Used to define fields of Doctrine entities that are exposed through the API

serializer, serializer-bundle

https://github.com/sponsors/goetas

Joomla

Used by the InputHelper to sanitize user input. 

Filter, string

https://community.joomla.org/sponsorship-campaigns.html

https://github.com/sponsors/joomla

Laminas

Used by Friends of Symfony components.

laminas-code

https://funding.communitybridge.org/projects/laminas-project

League

Used by El Finder to manage images on the filesystem.

Flysystem, mime-type-detection

https://offset.earth/frankdejonge

https://github.com/sponsors/frankdejonge

https://tidelift.com/funding/github/packagist/league/flysystem

Maennchen

Used by components to export reports as XLS.

zipstream-php

https://opencollective.com/zipstream

Matomo

Used to parse and identify devices from browsers’ user agents. 

device-detector

https://opencollective.com/matomo-analytics

https://patreon.com/matomo

https://ko-fi.com/matomo

https://liberapay.com/Matomo

https://www.paypal.com/donate/?hosted_button_id=RPL23NJURMTFA

Mocha

Used in the Zapier integration

mochajs

https://opencollective.com/mochajs

Monolog

Used for application logging.

monolog

https://github.com/sponsors/Seldaek

 https://tidelift.com/funding/github/packagist/monolog/monolog

Myclabs

Used by Zipstream for exporting reports to XLS files.

Deep-copy, php-enum

https://tidelift.com/funding/github/packagist/myclabs/deep-copy

https://github.com/sponsors/mnapoli

https://tidelift.com/funding/github/packagist/myclabs/php-enum

Parcel

Used in the GrapesJS plugin to compile and test the source code

parcel

https://opencollective.com/parcel

PHPseclib

Used by RabbitMQ components which is an option for processing some requests via the RabbitMQ messenger service. 

phpseclib

https://github.com/sponsors/terrafrost

https://www.patreon.com/phpseclib

https://tidelift.com/funding/github/packagist/phpseclib/phpseclib

PHPSTAN

Used by developers for static analysis of their code to find common coding errors. 

phpstan

https://github.com/sponsors/ondrejmirtes

https://github.com/sponsors/phpstan

https://www.patreon.com/phpstan

https://tidelift.com/funding/github/packagist/phpstan/phpstan

PHPUnit

Used by developers to write automated tests. 

php-code-coverage, php-file-iterator, php-invoker, php-text-template, php-timer, phpunit

https://github.com/sponsors/sebastianbergmann

https://phpunit.de/sponsors.html

Predis

Used in the CacheBundle to support Redis as a caching adaptor. 

predis

https://github.com/sponsors/tillkruss

Prettier

Used in the GrapesJS builder to format the source code

prettier

https://opencollective.com/prettier 

https://tidelift.com/funding/github/npm/prettier 

Ramsey

Used to generate UUID strings currently leveraged through monitoring inboxes for email replies.

uuid

https://github.com/sponsors/ramsey

https://tidelift.com/funding/github/packagist/ramsey/uuid

Rector

Used by developers to help automatically upgrade code between Symfony versions.

rector

https://github.com/sponsors/tomasvotruba

Sebastian Bergmann

Packages that support other developer tools such as PHP-CS-Fixer and Flysystem. 

cli-parser, code-unit, code-unit-reverse-lookup, comparator, complexity, diff, environment, exporter, global-state, lines-of-code, object-enumerator, object-reflector, recursion-context, resource-operations, type, version

https://github.com/sponsors/sebastianbergmann

Studio-42

Used as the file manager for images in the Email and Landing Page builders.

elfinder

https://github.com/sponsors/nao-pon

Symfony

The core framework Mautic is built on. 

asset, browser-kit, cache, cache-contracts, config, console, css-selector, debug, dependency-injection, deprecation-contracts, doctrine-bridge, dom-crawler, dotenv, error-handler, event-dispatcher, event-dispatcher-contracts, expression-language, filesystem, finder, flex, form, framework-bundle, http-client, http-client-contracts, http-foundation, http-kernel, inflector, intl, lock, mime, monolog-bridge, monolog-bundle, options-resolver, phpunit-bridge, polyfill-ctype, polyfill-iconv, polyfill-intl-grapheme, polyfill-intl-icu, polyfill-intl-idn, polyfill-intl-normalizer, polyfill-mbstring, polyfill-php70, polyfill-php72, polyfill-php73, polyfill-php74, polyfill-php80, polyfill-php81, process, property-access, routing, security, security-acl, security-bundle, service-contracts, stopwatch, string, swiftmailer-bundle, templating, translation, translation-contracts, twig-bridge, twig-bundle, validator, var-dumper, var-exporter, web-profiler-bundle, yaml

https://symfony.com/sponsor

https://github.com/sponsors/fabpot

https://tidelift.com/funding/github/packagist/symfony/symfony

Theofidry

Developer tool to allow running Mautic code from the command line. 

psysh-bundle

https://github.com/sponsors/theofidry

Theseer

Used by PhpUnit.

tokenizer

https://github.com/sponsors/theseer

Twig

Templating engine used in the application for the UI and Mautic Themes for the templated content for builders.

twig

https://github.com/sponsors/fabpot

https://tidelift.com/funding/github/packagist/twig/twig

Voku

Used in transliteration of languages with special characters into English letters.

portable-ascii

https://www.paypal.me/moelleken

https://github.com/sponsors/voku

https://opencollective.com/portable-ascii

https://www.patreon.com/voku

https://tidelift.com/funding/github/packagist/voku/portable-ascii

Xdebug

Used by developers to debug code. 

xdebug

https://github.com/sponsors/derickr 

Useful resources

How to find dependencies seeking funding

If you use Composer, you can use the command

composer fund

to get a list of your dependencies which are looking for funding.

 

If you have a public repository on GitHub or a dependency file (e.g. package.json, composer.json, *.csproj, packages.config, Gopkg.lock, Gemfile.lock or requirements.txt), you can use backyourstack.com to pull out a list of dependencies - this only shows links to Open Collective projects but the dependencies are all listed, so you can search for alternative ways to fund the projects (e.g. GitHub Sponsors). 

How to add your funding links in your Composer files

You can use the funding markup in your composer.json file to provide links to places where you accept funding.