diff --git a/api-server/server/utils/index.js b/api-server/server/utils/index.js
index 7647af24772..49594643131 100644
--- a/api-server/server/utils/index.js
+++ b/api-server/server/utils/index.js
@@ -22,5 +22,5 @@ exports.unDasherize = function unDasherize(name) {
};
exports.addPlaceholderImage = function addPlaceholderImage(name) {
- return `https://identicon.org?t=${name}&s=256`;
+ return `https://example.com/${name}.png`;
};
diff --git a/client/package-lock.json b/client/package-lock.json
index 37c8611ab4e..937bfe2bc0d 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -16300,6 +16300,11 @@
}
}
},
+ "react-identicons": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/react-identicons/-/react-identicons-1.1.7.tgz",
+ "integrity": "sha512-r+nCigLoQMffpf8gZo6l0we8RaRkgEIeRY6xS1vjp5ANxdTd3QwA2tjBTfmgf+4kFqYnaL2XvJH+iZ4mKqnb8Q=="
+ },
"react-instantsearch-core": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-5.7.0.tgz",
diff --git a/client/package.json b/client/package.json
index 502e1b79e29..2c8d4e557bf 100644
--- a/client/package.json
+++ b/client/package.json
@@ -49,6 +49,7 @@
"react-dom": "^16.9.0",
"react-ga": "^2.6.0",
"react-helmet": "^5.2.1",
+ "react-identicons": "^1.1.7",
"react-instantsearch-dom": "^5.7.0",
"react-monaco-editor": "^0.25.1",
"react-redux": "^5.0.7",
diff --git a/client/src/components/profile/components/Camper.js b/client/src/components/profile/components/Camper.js
index 3ba9e8df4e9..b67e954669b 100644
--- a/client/src/components/profile/components/Camper.js
+++ b/client/src/components/profile/components/Camper.js
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
import { Col, Row, Image } from '@freecodecamp/react-bootstrap';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faAward } from '@fortawesome/free-solid-svg-icons';
+import Identicon from 'react-identicons';
import SocialIcons from './SocialIcons';
@@ -61,16 +62,29 @@ function Camper({
twitter,
website
}) {
+ // A lot of the user-profiles are still using the defunct service.
+ const avatar = /example.com/.test(picture) ? (
+