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

Originally published at: https://mautic.org/blog/giving-tuesday-mautic-backs-their-stack-support-open-source-projects-they-depend

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.