diff --git a/README.md b/README.md
index e48f1604055f2748352c75908e5515695640ab3f..6348da70ab04e050808709e0be7ad66f058aa47f 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ Want to say thanks? Click the ⭐ at the top of the page.
 ## Key Links
 
 - Actual [discord](https://discord.gg/pRYNYr4W5A) community.
-- Actual [Community Documentation](https://actualbudget.github.io/docs)
+- Actual [Community Documentation](https://actualbudget.org/docs)
 
 ## Installation
 
@@ -23,11 +23,11 @@ If you are only interested in running the latest version and not contributing to
 
 The easiest way to get Actual running is to use the [actual-server](https://github.com/actualbudget/actual-server) project. That is the server for syncing changes across devices, and it comes with the latest version of Actual. The server will provide both the web project and a server for syncing.
 
-You can get up and running quickly and easily by following our [Running Actual Locally Guide](https://actualbudget.github.io/docs/Installing/Local/your-own-machine)
+You can get up and running quickly and easily by following our [Running Actual Locally Guide](https://actualbudget.org/docs/install/local)
 
 ## Documentation
 
-We have a wide range of documentation on how to use Actual, this is all available in our [Community Documentation](https://actualbudget.github.io/docs), this includes topics on Budgeting, Account Management, Tips & Tricks and some documentation for developers.
+We have a wide range of documentation on how to use Actual, this is all available in our [Community Documentation](https://actualbudget.org/docs), this includes topics on Budgeting, Account Management, Tips & Tricks and some documentation for developers.
 
 ## Code structure
 
@@ -37,9 +37,10 @@ The Actual app is split up into a few packages:
 - desktop-client - The desktop UI
 - desktop-electron - The desktop app
 
-More information on the project structure is available in our [community documentation](https://actualbudget.github.io/docs/Developers/project-layout).
+More information on the project structure is available in our [community documentation](https://actualbudget.org/docs/contributing/project-layout).
 
 ## Feature Requests
+
 Current feature requests can be seen [here](https://github.com/actualbudget/actual/issues?q=is%3Aissue+label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc).
 Vote for your favorite requests by reacting :+1: to the top comment of the request.
 
diff --git a/packages/api/README.md b/packages/api/README.md
index b4870ac5ec6a321a512f0c1c86869ee2e57251f2..fdd48bed9ad442f82516b48c789b679bf0824b7d 100644
--- a/packages/api/README.md
+++ b/packages/api/README.md
@@ -2,4 +2,4 @@
 npm install @actual-app/api
 ```
 
-View docs here: https://actualbudget.github.io/docs/Developers/using-the-API
+View docs here: https://actualbudget.org/docs/api/
diff --git a/packages/desktop-client/src/components/FatalError.js b/packages/desktop-client/src/components/FatalError.js
index 785ecf4838f41e40241741e7cb665718bd3e2da5..138bd12b6353eb04b90dd5f6d0d15eed6bed2a51 100644
--- a/packages/desktop-client/src/components/FatalError.js
+++ b/packages/desktop-client/src/components/FatalError.js
@@ -28,7 +28,7 @@ class FatalError extends Component {
           function properly. If you’re seeing this error, either your browser
           does not support <code>SharedArrayBuffer</code>, or your server is not
           sending the appropriate headers, or you are not using HTTPS. See{' '}
-          <a href="https://actualbudget.github.io/docs/Troubleshooting/SharedArrayBuffer">
+          <a href="https://actualbudget.org/docs/troubleshooting/shared-array-buffer">
             our troubleshooting documentation
           </a>{' '}
           to learn more. <SharedArrayBufferOverride />
@@ -70,8 +70,7 @@ class FatalError extends Component {
         >
           <Text>{msg}</Text>
           <Text>
-            Please get{' '}
-            <a href="https://actualbudget.github.io/docs/Contact">in touch</a>{' '}
+            Please get <a href="https://actualbudget.org/contact">in touch</a>{' '}
             for support
           </Text>
         </Stack>
@@ -95,7 +94,7 @@ class FatalError extends Component {
             <P>
               If this error persists, please get{' '}
               <a
-                href="https://actualbudget.github.io/docs/Contact"
+                href="https://actualbudget.org/contact"
                 style={{ color: colors.p4 }}
               >
                 in touch
diff --git a/packages/desktop-client/src/components/ManageRules.js b/packages/desktop-client/src/components/ManageRules.js
index dc4fdf4068f91639af3796cd1e6be26318babf69..13d817aa9e52142f2c0c5c935fe719dc3947e169 100644
--- a/packages/desktop-client/src/components/ManageRules.js
+++ b/packages/desktop-client/src/components/ManageRules.js
@@ -759,7 +759,7 @@ function ManageRulesContent({ isModal, payeeId, setLoading }) {
               Rules are always run in the order that you see them.{' '}
               <ExternalLink
                 asAnchor={true}
-                href="https://actualbudget.github.io/docs/Budgeting/rules/"
+                href="https://actualbudget.org/docs/budgeting/rules/"
                 style={{ color: colors.n4 }}
               >
                 Learn more
diff --git a/packages/desktop-client/src/components/SidebarWithData.js b/packages/desktop-client/src/components/SidebarWithData.js
index e24943c9bb1742286015792dff576be467e831a3..909c12677cb86663df70490e8718f8ad45abff84 100644
--- a/packages/desktop-client/src/components/SidebarWithData.js
+++ b/packages/desktop-client/src/components/SidebarWithData.js
@@ -34,7 +34,7 @@ function EditableBudgetName({ prefs, savePrefs }) {
         history.push('/settings');
         break;
       case 'help':
-        window.open('https://actualbudget.github.io/docs', '_blank');
+        window.open('https://actualbudget.org/docs/', '_blank');
         break;
       case 'close':
         dispatch(closeBudget());
diff --git a/packages/desktop-client/src/components/UpdateNotification.js b/packages/desktop-client/src/components/UpdateNotification.js
index 4d0c3360d2506a549e076a48cff566a960f21f1e..ad775e33dedc6fcbb320f5110077e599b766d16a 100644
--- a/packages/desktop-client/src/components/UpdateNotification.js
+++ b/packages/desktop-client/src/components/UpdateNotification.js
@@ -60,7 +60,7 @@ function UpdateNotification({
                 style={{ color: 'white', textDecoration: 'underline' }}
                 onClick={() =>
                   window.Actual.openURLInBrowser(
-                    'https://actualbudget.github.io/docs/Release-Notes/',
+                    'https://actualbudget.org/docs/releases',
                   )
                 }
               >
diff --git a/packages/desktop-client/src/components/accounts/AccountSyncCheck.js b/packages/desktop-client/src/components/accounts/AccountSyncCheck.js
index 74a54bb65689738d51d86937b6ec3a99c5c9d975..ca3f97ede67457c59d16a3e37409b2199f229b02 100644
--- a/packages/desktop-client/src/components/accounts/AccountSyncCheck.js
+++ b/packages/desktop-client/src/components/accounts/AccountSyncCheck.js
@@ -39,7 +39,7 @@ function getErrorMessage(type, code) {
     <>
       An internal error occurred. Try to login again, or get{' '}
       <a
-        href="https://actualbudget.github.io/docs/Contact/"
+        href="https://actualbudget.org/contact/"
         target="_blank"
         rel="noopener noreferrer"
       >
diff --git a/packages/desktop-client/src/components/manager/ImportYNAB5.js b/packages/desktop-client/src/components/manager/ImportYNAB5.js
index 26e8a29b977b8d853882d654abe40e3605367b7a..015109ab8b5f6350ce6b682f2186e2a4a5cfc4aa 100644
--- a/packages/desktop-client/src/components/manager/ImportYNAB5.js
+++ b/packages/desktop-client/src/components/manager/ImportYNAB5.js
@@ -63,7 +63,7 @@ function Import({ modalProps, availableImports }) {
             <P>
               <ExternalLink
                 asAnchor={true}
-                href="https://actualbudget.github.io/docs/Getting-Started/migration/nynab"
+                href="https://actualbudget.org/docs/migration/nynab"
                 target="_blank"
               >
                 Read here
diff --git a/packages/desktop-client/src/components/manager/ManagementApp.js b/packages/desktop-client/src/components/manager/ManagementApp.js
index 7c90c251424f3890a12fe57e17e963c258c95c48..5702ad46f3e926dac60b13cb016ed53453199aa2 100644
--- a/packages/desktop-client/src/components/manager/ManagementApp.js
+++ b/packages/desktop-client/src/components/manager/ManagementApp.js
@@ -42,7 +42,7 @@ function Version() {
           zIndex: 5001,
         },
       }}
-      href={'https://actualbudget.github.io/docs/Release-Notes/'}
+      href="https://actualbudget.org/docs/releases"
     >
       {`App: v${window.Actual.ACTUAL_VERSION} | Server: ${version}`}
     </Text>
diff --git a/packages/desktop-client/src/components/manager/WelcomeScreen.js b/packages/desktop-client/src/components/manager/WelcomeScreen.js
index ffb74f2fdf7cab33feaae8cdab2d2d3bdda95f8d..9273f431301a628cee8dbe5c09976d290b7ae8b8 100644
--- a/packages/desktop-client/src/components/manager/WelcomeScreen.js
+++ b/packages/desktop-client/src/components/manager/WelcomeScreen.js
@@ -31,15 +31,12 @@ function WelcomeScreen({ createBudget, pushModal }) {
           <ExternalLink
             asAnchor
             style={{ color: colors.p5 }}
-            href="https://actualbudget.github.io/docs/Budgeting/howitworks"
+            href="https://actualbudget.org/docs/budgeting/"
           >
             monthly envelope system
           </ExternalLink>
           . Consider taking our{' '}
-          <ExternalLink
-            asAnchor
-            href="https://actualbudget.github.io/docs/Getting-Started/using-actual/"
-          >
+          <ExternalLink asAnchor href="https://actualbudget.org/docs/tour/">
             guided tour
           </ExternalLink>{' '}
           to help you get your bearings, and check out the rest of the
diff --git a/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx b/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx
index 1bb9c6d69ce6a17cfc884be2dfd891f300aea23e..7a8468a09996bf3ff22423779bb8ffcb3ff28d63 100644
--- a/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx
+++ b/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx
@@ -60,7 +60,7 @@ export default function Bootstrap() {
       <P isLast style={{ fontSize: 16, color: colors.n2 }}>
         Consider opening{' '}
         <a
-          href="https://actualbudget.github.io/docs/Getting-Started/using-actual/"
+          href="https://actualbudget.org/docs/tour/"
           target="_blank"
           rel="noopener noreferrer"
           style={{ color: colors.b4 }}
diff --git a/packages/desktop-client/src/components/modals/CreateAccount.js b/packages/desktop-client/src/components/modals/CreateAccount.js
index a6e616427333dd284e566a01a36f21d83a696bdb..a2cade1a87db9dc187ada18926e028540d54d13a 100644
--- a/packages/desktop-client/src/components/modals/CreateAccount.js
+++ b/packages/desktop-client/src/components/modals/CreateAccount.js
@@ -74,7 +74,7 @@ export default function CreateAccount({ modalProps, syncServerStatus }) {
               Nordigen integration is only available for budgets using
               actual-server.{' '}
               <a
-                href="https://actualbudget.github.io/docs/Installing/overview"
+                href="https://actualbudget.org/docs/install/"
                 target="_blank"
                 rel="noopener noreferrer"
               >
diff --git a/packages/desktop-client/src/components/modals/CreateEncryptionKey.js b/packages/desktop-client/src/components/modals/CreateEncryptionKey.js
index 2ca47eb6cebfbe835362cc1f68015f7fbf412ab3..82a666228249ad0390317e8e3001e9a7674e8b40 100644
--- a/packages/desktop-client/src/components/modals/CreateEncryptionKey.js
+++ b/packages/desktop-client/src/components/modals/CreateEncryptionKey.js
@@ -69,7 +69,7 @@ export default function CreateEncryptionKey({
                 other devices will have to revert to this version of your data.{' '}
                 <ExternalLink
                   asAnchor
-                  href="https://actualbudget.github.io/docs/Getting-Started/sync#end-to-end-encryption"
+                  href="https://actualbudget.org/docs/getting-started/sync/#end-to-end-encryption"
                 >
                   Learn more
                 </ExternalLink>
@@ -108,7 +108,7 @@ export default function CreateEncryptionKey({
                 will take you through that process on those devices.{' '}
                 <ExternalLink
                   asAnchor
-                  href="https://actualbudget.github.io/docs/Getting-Started/sync#end-to-end-encryption"
+                  href="https://actualbudget.org/docs/getting-started/sync/#end-to-end-encryption"
                 >
                   Learn more
                 </ExternalLink>
diff --git a/packages/desktop-client/src/components/modals/CreateLocalAccount.js b/packages/desktop-client/src/components/modals/CreateLocalAccount.js
index 38d729b0a7be65bb70a96b01d0631677cd6a3c23..2e4ec4a25efc09906d16bcdd88e67619b2ba4ee8 100644
--- a/packages/desktop-client/src/components/modals/CreateLocalAccount.js
+++ b/packages/desktop-client/src/components/modals/CreateLocalAccount.js
@@ -115,7 +115,7 @@ function CreateLocalAccount({ modalProps, actions, history }) {
                         This cannot be changed later. <br /> {'\n'}
                         See{' '}
                         <a
-                          href="https://actualbudget.github.io/docs/Accounts/overview/#off-budget-accounts"
+                          href="https://actualbudget.org/docs/accounts/#off-budget-accounts"
                           target="_blank"
                           rel="noopener noreferrer"
                           style={{
diff --git a/packages/desktop-client/src/components/modals/FixEncryptionKey.js b/packages/desktop-client/src/components/modals/FixEncryptionKey.js
index 9be801f51c12cf099c7dd360caaffddbbe252188..ca8697ae15cfd4c6d7c64dde4d10ebb47e9205b5 100644
--- a/packages/desktop-client/src/components/modals/FixEncryptionKey.js
+++ b/packages/desktop-client/src/components/modals/FixEncryptionKey.js
@@ -72,7 +72,7 @@ export default function FixEncryptionKey({
               Enter your current password to update your key.{' '}
               <ExternalLink
                 asAnchor
-                href="https://actualbudget.github.io/docs/Getting-Started/sync#end-to-end-encryption"
+                href="https://actualbudget.org/docs/getting-started/sync/#end-to-end-encryption"
               >
                 Learn more
               </ExternalLink>
@@ -83,7 +83,7 @@ export default function FixEncryptionKey({
               password for this file to create the key for encryption.{' '}
               <ExternalLink
                 asAnchor
-                href="https://actualbudget.github.io/docs/Getting-Started/sync#end-to-end-encryption"
+                href="https://actualbudget.org/docs/getting-started/sync/#end-to-end-encryption"
               >
                 Learn more
               </ExternalLink>
diff --git a/packages/desktop-client/src/components/schedules/EditSchedule.js b/packages/desktop-client/src/components/schedules/EditSchedule.js
index 28104322433e6261793b89ac984c3c42531986e3..23c6c4b8909d7c363473aaeab57046dea6b9c8df 100644
--- a/packages/desktop-client/src/components/schedules/EditSchedule.js
+++ b/packages/desktop-client/src/components/schedules/EditSchedule.js
@@ -373,7 +373,7 @@ export default function ScheduleDetails() {
       dispatch({
         type: 'form-error',
         error:
-          'An error occurred while saving. Please contact help@actualbudget.com for support.',
+          'An error occurred while saving. Please visit https://actualbudget.org/contact/ for support.',
       });
     } else {
       if (adding) {
diff --git a/packages/desktop-client/src/components/settings/Encryption.js b/packages/desktop-client/src/components/settings/Encryption.js
index 185a04da79110954bb51dc099a801ad0630de193..8d59384b0d01d739a1ce982feaee2e688215990a 100644
--- a/packages/desktop-client/src/components/settings/Encryption.js
+++ b/packages/desktop-client/src/components/settings/Encryption.js
@@ -26,7 +26,7 @@ export default function EncryptionSettings({ prefs, pushModal }) {
         it out to the cloud. Local data remains unencrypted so if you forget
         your password you can re-encrypt it.{' '}
         <a
-          href="https://actualbudget.github.io/docs/Getting-Started/sync/#encryption"
+          href="https://actualbudget.org/docs/getting-started/sync/#end-to-end-encryption"
           target="_blank"
           rel="noopener noreferrer"
         >
@@ -42,7 +42,7 @@ export default function EncryptionSettings({ prefs, pushModal }) {
         on your server to use end-to-end encryption. This problem may also occur
         if your browser is too old to work with Actual.{' '}
         <a
-          href="https://actualbudget.github.io/docs/Installing/HTTPS"
+          href="https://actualbudget.org/docs/config/https"
           target="_blank"
           rel="noopener noreferrer"
         >
@@ -65,7 +65,7 @@ export default function EncryptionSettings({ prefs, pushModal }) {
         read it. If you want, you can use an additional password to encrypt your
         data on the server.{' '}
         <a
-          href="https://actualbudget.github.io/docs/Getting-Started/sync/#encryption"
+          href="https://actualbudget.org/docs/getting-started/sync/#end-to-end-encryption"
           target="_blank"
           rel="noopener noreferrer"
         >
@@ -80,7 +80,7 @@ export default function EncryptionSettings({ prefs, pushModal }) {
         without a server. Budget files are always kept unencrypted locally, and
         encryption is only applied when sending data to a server.{' '}
         <a
-          href="https://actualbudget.github.io/docs/Getting-Started/sync/#encryption"
+          href="https://actualbudget.org/docs/getting-started/sync/#end-to-end-encryption"
           target="_blank"
           rel="noopener noreferrer"
         >
diff --git a/packages/desktop-client/src/components/settings/index.js b/packages/desktop-client/src/components/settings/index.js
index 85b9fbf8c34be25098e0e003dc0fde8aeaeda3b6..79f7039e5ed4aba66e1d7d4a52ecc0c064619a45 100644
--- a/packages/desktop-client/src/components/settings/index.js
+++ b/packages/desktop-client/src/components/settings/index.js
@@ -54,7 +54,7 @@ function About() {
         {isOutdated ? (
           <a
             style={{ color: colors.p4 }}
-            href="https://actualbudget.github.io/docs/Release-Notes"
+            href="https://actualbudget.org/docs/releases"
           >
             New version available: {latestVersion}
           </a>
@@ -64,9 +64,7 @@ function About() {
           </Text>
         )}
         <Text>
-          <a href="https://actualbudget.github.io/docs/Release-Notes">
-            Release Notes
-          </a>
+          <a href="https://actualbudget.org/docs/releases">Release Notes</a>
         </Text>
       </View>
     </Setting>
diff --git a/packages/desktop-client/src/components/tutorial/Final.js b/packages/desktop-client/src/components/tutorial/Final.js
index 5b43f6bed94bce0fa332f20c5228a7b8f91671da..3070d812d9d445728eb95b9e65f9f44a9c83a138 100644
--- a/packages/desktop-client/src/components/tutorial/Final.js
+++ b/packages/desktop-client/src/components/tutorial/Final.js
@@ -22,7 +22,7 @@ function Final({ targetRect, navigationProps }) {
         You probably want to delete the transactions you added and clean up your
         budget. If you have any questions or feedback, please get{' '}
         <a
-          href="https://actualbudget.github.io/docs/Contact/"
+          href="https://actualbudget.org/contact/"
           target="_blank"
           rel="noopener noreferrer"
         >
@@ -33,10 +33,7 @@ function Final({ targetRect, navigationProps }) {
 
       <P isLast={true}>
         Read{' '}
-        <ExternalLink
-          asAnchor
-          href="https://actualbudget.github.io/docs/Budgeting/howitworks"
-        >
+        <ExternalLink asAnchor href="https://actualbudget.org/docs/budgeting/">
           How it Works
         </ExternalLink>{' '}
         for an in-depth explanation of the budgeting workflow.
diff --git a/packages/desktop-client/src/components/tutorial/Intro.js b/packages/desktop-client/src/components/tutorial/Intro.js
index ca3bc1023dd902210b0b628576f75780c47ddcc1..e51db49b1cfdfe08f89188d86a768a4afd7a0dd0 100644
--- a/packages/desktop-client/src/components/tutorial/Intro.js
+++ b/packages/desktop-client/src/components/tutorial/Intro.js
@@ -21,18 +21,15 @@ function Intro({ fromYNAB, nextTutorialStage, closeTutorial }) {
 
       <View style={{ lineHeight: '1.5em' }}>
         <Text>
-          <ExternalLink
-            asAnchor
-            href="https://actualbudget.github.io/docs/category/getting-started"
-          >
-            Getting Started
+          <ExternalLink asAnchor href="https://actualbudget.org/docs/tour/">
+            Tour
           </ExternalLink>
           : A guide on what to do first
         </Text>
         <Text>
           <ExternalLink
             asAnchor
-            href="https://actualbudget.github.io/docs/Budgeting/howitworks"
+            href="https://actualbudget.org/docs/budgeting/"
           >
             How it Works
           </ExternalLink>
diff --git a/packages/desktop-electron/menu.js b/packages/desktop-electron/menu.js
index 9c8e371e76273cf8151781f0bd6472675dc09a0f..ff463b5db0663ac2dab1f93456f45af59715f146 100644
--- a/packages/desktop-electron/menu.js
+++ b/packages/desktop-electron/menu.js
@@ -165,7 +165,7 @@ function getMenu(isDev, createWindow) {
         {
           label: 'Learn More',
           click() {
-            shell.openExternal('https://actualbudget.github.io/docs/');
+            shell.openExternal('https://actualbudget.org/docs/');
           },
         },
       ],
diff --git a/packages/loot-core/src/client/shared-listeners.ts b/packages/loot-core/src/client/shared-listeners.ts
index ddcb06154600795d15aa6d4b25075939fd0a27ad..2bb088ab2495a63e3df6f58dfe6b967d373440c7 100644
--- a/packages/loot-core/src/client/shared-listeners.ts
+++ b/packages/loot-core/src/client/shared-listeners.ts
@@ -45,7 +45,7 @@ export function listenForSyncEvent(actions, store) {
     } else if (type === 'error') {
       let notif = null;
       let learnMore =
-        '[Learn more](https://actualbudget.github.io/docs/Getting-Started/sync#debugging-sync-issues)';
+        '[Learn more](https://actualbudget.org/docs/getting-started/sync/#debugging-sync-issues)';
       const githubIssueLink =
         'https://github.com/actualbudget/actual/issues/new?assignees=&labels=bug%2Cneeds+triage&template=bug-report.yml&title=%5BBug%5D%3A+';
 
@@ -97,7 +97,7 @@ export function listenForSyncEvent(actions, store) {
               'This happens rarely (if ever again). The internal syncing format ' +
               'has changed and you need to reset sync. This will upload data from ' +
               'this device and revert all other devices. ' +
-              '[Learn more about what this means](https://actualbudget.github.io/docs/Getting-Started/sync#what-does-resetting-sync-mean).' +
+              '[Learn more about what this means](https://actualbudget.org/docs/getting-started/sync/#what-does-resetting-sync-mean).' +
               '\n\nOld encryption keys are not migrated. If using ' +
               'encryption, [reset encryption here](#makeKey).',
             messageActions: {
diff --git a/packages/loot-core/src/client/update-notification.ts b/packages/loot-core/src/client/update-notification.ts
index 55d9b77c2c5f12b71d3c2d076ed87e296301e613..3057a1c6fb169aded10eb0a7a82fd3a05de13bd6 100644
--- a/packages/loot-core/src/client/update-notification.ts
+++ b/packages/loot-core/src/client/update-notification.ts
@@ -24,7 +24,7 @@ export default async function checkForUpdateNotification(
     button: {
       title: 'Open changelog',
       action: () => {
-        window.open('https://actualbudget.github.io/docs/Release-Notes');
+        window.open('https://actualbudget.org/docs/releases');
       },
     },
     onClose: async () => {
diff --git a/packages/loot-core/src/platform/client/fetch/index.browser.ts b/packages/loot-core/src/platform/client/fetch/index.browser.ts
index ee81c1c4cad801fc2bc447d4932ebb4ed6806681..98122be9f4fc796f99e48a17d76f2fd2f4f602be 100644
--- a/packages/loot-core/src/platform/client/fetch/index.browser.ts
+++ b/packages/loot-core/src/platform/client/fetch/index.browser.ts
@@ -116,7 +116,7 @@ function connectWorker(worker, onOpen, onError) {
 
       if (msg.message && msg.message.includes('indexeddb-quota-error')) {
         alert(
-          'We hit a limit on the local storage available. Edits may not be saved. Please get in touch https://actualbudget.github.io/docs/Contact/ so we can help debug this.',
+          'We hit a limit on the local storage available. Edits may not be saved. Please get in touch https://actualbudget.org/contact/ so we can help debug this.',
         );
       }
     } else if (msg.type === 'capture-breadcrumb') {
diff --git a/packages/loot-core/src/server/main.ts b/packages/loot-core/src/server/main.ts
index f6a1e998c2f79409aa09017e0705b1d9df5bd882..c10fbb8c8ccbda165571597e4ce57964fa325aec 100644
--- a/packages/loot-core/src/server/main.ts
+++ b/packages/loot-core/src/server/main.ts
@@ -1106,7 +1106,7 @@ handlers['accounts-sync'] = async function ({ id }) {
           errors.push({
             accountId: acct.id,
             message:
-              'There was an internal error. Please get in touch https://actualbudget.github.io/docs/Contact for support.',
+              'There was an internal error. Please get in touch https://actualbudget.org/contact for support.',
             internal: err.stack,
           });
 
@@ -1347,7 +1347,7 @@ handlers['nordigen-accounts-sync'] = async function ({ id }) {
           errors.push({
             accountId: acct.id,
             message:
-              'There was an internal error. Please get in touch https://actualbudget.github.io/docs/Contact for support.',
+              'There was an internal error. Please get in touch https://actualbudget.org/contact for support.',
             internal: err.stack,
           });
 
diff --git a/packages/loot-core/src/shared/errors.ts b/packages/loot-core/src/shared/errors.ts
index 8b7f64826f552039b51c18baa9682920f15f1aff..56ee3fcb6a074920f5af6c6e5d36203ed9edc2ea 100644
--- a/packages/loot-core/src/shared/errors.ts
+++ b/packages/loot-core/src/shared/errors.ts
@@ -19,7 +19,7 @@ export function getUploadError({ reason, meta }) {
     case 'beta-version':
       return 'You cannot perform this action in the beta version (resetting sync, deleting a file, etc).';
     default:
-      return `An internal error occurred, sorry! Contact help@actualbudget.com for support. (ref: ${reason})`;
+      return `An internal error occurred, sorry! Visit https://actualbudget.org/contact/ for support. (ref: ${reason})`;
   }
 }
 
@@ -31,7 +31,7 @@ export function getDownloadError({ reason, meta, fileName }) {
     case 'not-zip-file':
     case 'invalid-zip-file':
     case 'invalid-meta-file':
-      return 'Downloaded file is invalid, sorry! Contact help@actualbudget.com for support.';
+      return 'Downloaded file is invalid, sorry! Visit https://actualbudget.org/contact/ for support.';
     case 'decrypt-failure':
       return (
         'Unable to decrypt file ' +
@@ -49,7 +49,7 @@ export function getDownloadError({ reason, meta, fileName }) {
     default:
       let info = meta && meta.fileId ? `(fileId: ${meta.fileId})` : '';
       return (
-        'Something went wrong trying to download that file, sorry! Contact help@actualbudget.com for support. ' +
+        'Something went wrong trying to download that file, sorry! Visit https://actualbudget.org/contact/ for support. ' +
         info
       );
   }
@@ -72,7 +72,7 @@ export function getTestKeyError({ reason }) {
     case 'decrypt-failure':
       return 'Unable to decrypt file with this password. Please try again.';
     default:
-      return 'Something went wrong trying to create a key, sorry! Contact help@actualbudget.com for support.';
+      return 'Something went wrong trying to create a key, sorry! Visit https://actualbudget.org/contact/ for support.';
   }
 }
 
diff --git a/packages/loot-core/src/shared/rules.ts b/packages/loot-core/src/shared/rules.ts
index 3a58c973f788a9d5d5982a9fa050f9175c61f805..2764becb9c5b9740409aec9ee18679c558552bba 100644
--- a/packages/loot-core/src/shared/rules.ts
+++ b/packages/loot-core/src/shared/rules.ts
@@ -147,7 +147,7 @@ export function getFieldError(type) {
     case 'invalid-field':
       return 'Please choose a valid field for this type of rule';
     default:
-      return 'Internal error, sorry! Please get in touch https://actualbudget.github.io/docs/Contact/ for support';
+      return 'Internal error, sorry! Please get in touch https://actualbudget.org/contact/ for support';
   }
 }
 
diff --git a/upcoming-release-notes/1129.md b/upcoming-release-notes/1129.md
new file mode 100644
index 0000000000000000000000000000000000000000..54f032de3af7477167cd05b9b7f363f084e56e8e
--- /dev/null
+++ b/upcoming-release-notes/1129.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [j-f1]
+---
+
+Update all links in the codebase to point to the new documentation site