diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php
new file mode 100644
index 0000000..98b1237
--- /dev/null
+++ b/.php-cs-fixer.php
@@ -0,0 +1,59 @@
+<?php
+
+$finder = (new PhpCsFixer\Finder())
+    ->ignoreDotFiles(false)
+    ->ignoreVCSIgnored(true)
+    ->in([
+        'inc',
+        'src',
+        'dist',
+    ])
+    ->exclude([
+        'vendor',
+    ])
+    ->append([
+        __DIR__ . '/config.php',
+        __DIR__ . '/.php-cs-fixer',
+    ])
+;
+
+return (new PhpCsFixer\Config())
+    ->setRiskyAllowed(true)
+    ->setRules([
+        '@PhpCsFixer' => true,
+        '@Symfony' => true,
+        '@PER-CS' => true,
+        '@PHP71Migration' => true,
+        '@PHP73Migration' => true,
+        '@PHP74Migration' => true,
+        '@PHP80Migration' => true,
+        '@PHP81Migration' => true,
+        '@PHP82Migration' => true,
+        '@PHP83Migration' => true,
+        '@PHP84Migration' => true,
+
+        '@PhpCsFixer:risky' => true,
+        '@Symfony:risky' => true,
+        '@PER-CS:risky' => true,
+        '@PHP74Migration:risky' => true,
+        '@PHP80Migration:risky' => true,
+        '@PHP82Migration:risky' => true,
+
+        'strict_param' => true,
+        'array_syntax' => ['syntax' => 'short'],
+        'braces_position' => [
+            'functions_opening_brace' => 'same_line',
+            'classes_opening_brace' => 'same_line',
+        ],
+        'simplified_if_return' => true,
+        'simplified_null_return' => true,
+        'yoda_style' => false,
+
+        // TODO: fix these
+        'psr_autoloading' => false,
+        'strict_comparison' => false,
+    ])
+    ->setFinder($finder)
+    ->setIndent("  ")
+    ->setLineEnding("\n")
+;