diff --git a/.travis.yml b/.travis.yml
index 2db6fff2..628c5e86 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,6 +7,7 @@ php:
 - "7.1"
 - "7.2"
 - "7.3"
+- "7.4"
 
 cache:
   directories:
@@ -23,7 +24,14 @@ before_install:
 
 install:
 - >
-  export IGNORE_PLATFORM_REQS="$(composer php:version |grep -q '^7.3' && printf -- --ignore-platform-reqs)";
+  function version_gte() { test "$(printf '%s\n' "$@" | sort -n -t. -r | head -n 1)" = "$1"; };
+  if version_gte $(composer php:version) 7.1; then
+    echo;
+    echo "Requiring newer versions of Psalm and PHPUnit";
+    composer require --dev vimeo/psalm:^3.7.2 phpunit/phpunit:^7.5.17;
+  fi;
+- >
+  export IGNORE_PLATFORM_REQS="$(composer php:version |grep -q '^7\.[34]' && printf -- --ignore-platform-reqs)";
   echo;
   echo "Updating the dependencies";
   composer update $IGNORE_PLATFORM_REQS --with-dependencies $DEPENDENCIES;
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9f7a1503..c4b2a0df 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,8 @@ This project adheres to [Semantic Versioning](https://semver.org/).
 ## x.y.z
 
 ### Added
+- Add support for PHP 7.4
+  ([#821](https://github.com/MyIntervals/emogrifier/pull/821))
 - Disable php-cs-fixer Yoda conditions
   ([#791](https://github.com/MyIntervals/emogrifier/issues/791),
   [#794](https://github.com/MyIntervals/emogrifier/pull/794))
diff --git a/composer.json b/composer.json
index 813835b1..51efcf40 100644
--- a/composer.json
+++ b/composer.json
@@ -37,7 +37,7 @@
         "source": "https://github.com/MyIntervals/emogrifier"
     },
     "require": {
-        "php": "~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0",
+        "php": "~7.0 || ~7.1 || ~7.2 || ~7.3 || ~7.4",
         "ext-dom": "*",
         "ext-libxml": "*",
         "symfony/css-selector": "^2.8 || ^3.0 || ^4.0 || ^5.0"