diff --git a/packages/desktop-client/src/components/manager/ConfigServer.js b/packages/desktop-client/src/components/manager/ConfigServer.js
index d00f0e5636c2bf6c2afb554439856a97639032d7..30afb69c229128d615bd8dcbc1c50bf381245be6 100644
--- a/packages/desktop-client/src/components/manager/ConfigServer.js
+++ b/packages/desktop-client/src/components/manager/ConfigServer.js
@@ -12,10 +12,7 @@ import {
 } from 'loot-design/src/components/common';
 import { useSetThemeColor } from 'loot-design/src/components/hooks';
 import { colors } from 'loot-design/src/style';
-import {
-  isDevelopmentEnvironment,
-  isPreviewEnvironment,
-} from 'loot-design/src/util/environment';
+import { isNonProductionEnvironment } from 'loot-design/src/util/environment';
 
 import { useServerURL, useSetServerURL } from '../ServerContext';
 
@@ -193,7 +190,7 @@ export default function ConfigServer() {
                 Don't use a server
               </Button>
 
-              {(isDevelopmentEnvironment() || isPreviewEnvironment()) && (
+              {isNonProductionEnvironment() && (
                 <Button
                   primary
                   style={{ marginLeft: 15 }}
diff --git a/packages/desktop-client/src/components/modals/ManageRulesModal.js b/packages/desktop-client/src/components/modals/ManageRulesModal.js
index 30d544f21780287db122ab7f6402d05ec6b475a8..5d10c35570ae0ad43cb1494bbfb0b725d194de51 100644
--- a/packages/desktop-client/src/components/modals/ManageRulesModal.js
+++ b/packages/desktop-client/src/components/modals/ManageRulesModal.js
@@ -2,17 +2,14 @@ import React, { useState } from 'react';
 import { useLocation } from 'react-router-dom-v5-compat';
 
 import { Modal } from 'loot-design/src/components/common';
-import {
-  isDevelopmentEnvironment,
-  isPreviewEnvironment,
-} from 'loot-design/src/util/environment';
+import { isNonProductionEnvironment } from 'loot-design/src/util/environment';
 
 import ManageRules from '../ManageRules';
 
 export default function ManageRulesModal({ modalProps, payeeId }) {
   let [loading, setLoading] = useState(true);
   let location = useLocation();
-  if (isDevelopmentEnvironment() || isPreviewEnvironment()) {
+  if (isNonProductionEnvironment()) {
     if (location.pathname !== '/payees') {
       throw new Error(
         `Possibly invalid use of ManageRulesModal, add the current url '${location.pathname}' to the allowlist if you're confident the modal can never appear on top of the '/rules' page.`,
diff --git a/packages/desktop-client/src/hooks/useFeatureFlag.js b/packages/desktop-client/src/hooks/useFeatureFlag.js
index 27920fe18970b430a7c639838066068425233387..702de577ccfad7f9796ca9f6befedabb6c0a6e88 100644
--- a/packages/desktop-client/src/hooks/useFeatureFlag.js
+++ b/packages/desktop-client/src/hooks/useFeatureFlag.js
@@ -1,12 +1,9 @@
 import { useSelector } from 'react-redux';
 
-import {
-  isDevelopmentEnvironment,
-  isPreviewEnvironment,
-} from 'loot-design/src/util/environment';
+import { isNonProductionEnvironment } from 'loot-design/src/util/environment';
 
 const DEFAULT_FEATURE_FLAG_STATE = {
-  newAutocomplete: isDevelopmentEnvironment() || isPreviewEnvironment(),
+  newAutocomplete: isNonProductionEnvironment(),
   syncAccount: false,
   goalTemplatesEnabled: false,
 };
diff --git a/packages/loot-core/src/server/main.js b/packages/loot-core/src/server/main.js
index 38f87ab22db54d730b240fb02ff9cbb2342c34f1..d81348c105ba442101a19a84b17ba8cd7518bbfd 100644
--- a/packages/loot-core/src/server/main.js
+++ b/packages/loot-core/src/server/main.js
@@ -1,6 +1,8 @@
 import './polyfills';
 import injectAPI from '@actual-app/api/injected';
 
+import { isNonProductionEnvironment } from 'loot-design/src/util/environment';
+
 import { createTestBudget } from '../mocks/budget';
 import { captureException, captureBreadcrumb } from '../platform/exceptions';
 import asyncStorage from '../platform/server/asyncStorage';
@@ -1265,7 +1267,7 @@ handlers['nordigen-get-banks'] = async function (country) {
 
   return post(
     getServer().NORDIGEN_SERVER + '/get-banks',
-    { country },
+    { country, showDemo: isNonProductionEnvironment() },
     {
       'X-ACTUAL-TOKEN': userToken,
     },
diff --git a/packages/loot-design/src/components/manager/BudgetList.js b/packages/loot-design/src/components/manager/BudgetList.js
index 5688dd5aac6e7cd6122c0bc3330cbd25d567c734..bf9b6bd5268bd7161bd4a6e5ff9f235e13cc9206 100644
--- a/packages/loot-design/src/components/manager/BudgetList.js
+++ b/packages/loot-design/src/components/manager/BudgetList.js
@@ -13,10 +13,7 @@ import DotsHorizontalTriple from '../../svg/v1/DotsHorizontalTriple';
 import FileDouble from '../../svg/v1/FileDouble';
 import CloudUnknown from '../../svg/v2/CloudUnknown';
 import tokens from '../../tokens';
-import {
-  isDevelopmentEnvironment,
-  isPreviewEnvironment,
-} from '../../util/environment';
+import { isNonProductionEnvironment } from '../../util/environment';
 import { View, Text, Button, Tooltip, Menu } from '../common';
 
 function getFileDescription(file) {
@@ -331,7 +328,7 @@ function BudgetList({
           Create new file
         </Button>
 
-        {(isDevelopmentEnvironment() || isPreviewEnvironment()) && (
+        {isNonProductionEnvironment() && (
           <Button
             primary
             onClick={() => onCreate({ testMode: true })}
diff --git a/packages/loot-design/src/util/environment.js b/packages/loot-design/src/util/environment.js
index 151942d90a4b1c5d67149b22bef85d55e5a07c73..42fa7be752d4ec598a51d110654ac7a0c8e89d2f 100644
--- a/packages/loot-design/src/util/environment.js
+++ b/packages/loot-design/src/util/environment.js
@@ -5,3 +5,7 @@ export function isPreviewEnvironment() {
 export function isDevelopmentEnvironment() {
   return process.env.NODE_ENV === 'development';
 }
+
+export function isNonProductionEnvironment() {
+  return isPreviewEnvironment() || isDevelopmentEnvironment();
+}
diff --git a/upcoming-release-notes/790.md b/upcoming-release-notes/790.md
new file mode 100644
index 0000000000000000000000000000000000000000..8e12cdbd9a6b210c9c1c34003eb9145f9b237fa8
--- /dev/null
+++ b/upcoming-release-notes/790.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [MatissJanis]
+---
+
+Expose demo bank for easy bank-sync testing in dev and preview builds