diff --git a/packages/desktop-client/config-overrides.js b/packages/desktop-client/config-overrides.js
index 080e83bb1f5b0b85e1254fe5fbd351a1a7ee5b61..1a0f2c0e7a9c6ba0b76cb469742467d26b03664a 100644
--- a/packages/desktop-client/config-overrides.js
+++ b/packages/desktop-client/config-overrides.js
@@ -14,6 +14,11 @@ if (process.env.CI) {
   process.env.DISABLE_ESLINT_PLUGIN = 'true';
 }
 
+// Forward Netlify env variables
+if (process.env.REVIEW_ID) {
+  process.env.REACT_APP_REVIEW_ID = process.env.REVIEW_ID;
+}
+
 module.exports = {
   webpack: override(
     babelInclude([path.resolve('src'), path.resolve('../loot-core')]),
diff --git a/packages/desktop-client/src/components/App.js b/packages/desktop-client/src/components/App.js
index 4a314e4f970eb3f84eef91baf7a77c51997494aa..e4e96346392d40bd5768413d4b456acfa692c044 100644
--- a/packages/desktop-client/src/components/App.js
+++ b/packages/desktop-client/src/components/App.js
@@ -14,6 +14,7 @@ import { ResponsiveProvider } from '../ResponsiveProvider';
 import { styles, hasHiddenScrollbars } from '../style';
 
 import AppBackground from './AppBackground';
+import DevelopmentTopBar from './DevelopmentTopBar';
 import FatalError from './FatalError';
 import FinancesApp from './FinancesApp';
 import ManagementApp from './manager/ManagementApp';
@@ -103,6 +104,8 @@ class App extends Component {
             styles.lightScrollbar,
           ])}
         >
+          {process.env.REACT_APP_REVIEW_ID && <DevelopmentTopBar />}
+
           {fatalError ? (
             <>
               <AppBackground />
diff --git a/packages/desktop-client/src/components/DevelopmentTopBar.tsx b/packages/desktop-client/src/components/DevelopmentTopBar.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..4d6e27b2dfb6e24a2efc5ba2987957c7023ebfd8
--- /dev/null
+++ b/packages/desktop-client/src/components/DevelopmentTopBar.tsx
@@ -0,0 +1,32 @@
+import { colors } from '../style';
+
+import { ExternalLink } from './common';
+import View from './common/View';
+
+export default function DevelopmentTopBar() {
+  return (
+    <View
+      style={[
+        {
+          padding: '6px 20px',
+          display: 'flex',
+          flexDirection: 'row',
+          justifyContent: 'space-between',
+          color: colors.y2,
+          backgroundColor: colors.y8,
+          borderBottom: `1px solid ${colors.y6}`,
+          zIndex: 1,
+        },
+      ]}
+    >
+      <View>This is a demo build of Actual.</View>
+      <View>
+        <ExternalLink
+          to={`https://github.com/actualbudget/actual/pull/${process.env.REACT_APP_REVIEW_ID}`}
+        >
+          Open the PR: #{process.env.REACT_APP_REVIEW_ID}
+        </ExternalLink>
+      </View>
+    </View>
+  );
+}
diff --git a/packages/desktop-client/src/components/FatalError.js b/packages/desktop-client/src/components/FatalError.js
index c51be1e0bd9e6408f870ca87837203908e9d5c38..87c6a2592f0096566091ec32de44768330961f92 100644
--- a/packages/desktop-client/src/components/FatalError.js
+++ b/packages/desktop-client/src/components/FatalError.js
@@ -39,7 +39,7 @@ class FatalError extends Component {
           does not support <code>SharedArrayBuffer</code>, or your server is not
           sending the appropriate headers, or you are not using HTTPS. See{' '}
           <ExternalLink
-            muted
+            linkColor="muted"
             to="https://actualbudget.org/docs/troubleshooting/shared-array-buffer"
           >
             our troubleshooting documentation
@@ -55,7 +55,10 @@ class FatalError extends Component {
         <Text>
           There was a problem loading the app in this browser version. If this
           continues to be a problem, you can{' '}
-          <ExternalLink muted to="https://github.com/actualbudget/releases">
+          <ExternalLink
+            linkColor="muted"
+            to="https://github.com/actualbudget/releases"
+          >
             download the desktop app
           </ExternalLink>
           .
@@ -83,7 +86,10 @@ class FatalError extends Component {
           <Text>{msg}</Text>
           <Text>
             Please get{' '}
-            <ExternalLink muted to="https://actualbudget.org/contact">
+            <ExternalLink
+              linkColor="muted"
+              to="https://actualbudget.org/contact"
+            >
               in touch
             </ExternalLink>{' '}
             for support
diff --git a/upcoming-release-notes/1229.md b/upcoming-release-notes/1229.md
new file mode 100644
index 0000000000000000000000000000000000000000..cf537af7cae5448896f57e8bef8b7643825967f0
--- /dev/null
+++ b/upcoming-release-notes/1229.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [MatissJanis]
+---
+
+Added a Netlify banner for easy jumping back to the PR