diff --git a/packages/desktop-client/package.json b/packages/desktop-client/package.json
index 4aced71c86cee73f8e8e4cc5eed4c40d95e0ae12..f23d58eb8b23bbcacbad43a4bcbc70928502d497 100644
--- a/packages/desktop-client/package.json
+++ b/packages/desktop-client/package.json
@@ -50,7 +50,6 @@
     "react-router-dom": "5.2.0",
     "react-router-dom-v5-compat": "^6.4.1",
     "react-scripts": "^5.0.1",
-    "react-select": "^5.7.0",
     "react-spring": "^8.0.27",
     "react-virtualized-auto-sizer": "^1.0.2",
     "redux": "^4.0.5",
diff --git a/packages/desktop-client/src/components/Modals.js b/packages/desktop-client/src/components/Modals.js
index 311e88be68fc9f7cd37ace8ca6ad92b6c560814d..8b8d1686035b38917328c5e1979109d9a7426255 100644
--- a/packages/desktop-client/src/components/Modals.js
+++ b/packages/desktop-client/src/components/Modals.js
@@ -41,7 +41,6 @@ function Modals({
   budgetId,
   actions,
 }) {
-  const isNewAutocompleteEnabled = useFeatureFlag('newAutocomplete');
   const isGoalTemplatesEnabled = useFeatureFlag('goalTemplatesEnabled');
 
   const syncServerStatus = useSyncServerStatus();
@@ -276,7 +275,6 @@ function Modals({
                 actions={actions}
                 name={options.name}
                 onSubmit={options.onSubmit}
-                isNewAutocompleteEnabled={isNewAutocompleteEnabled}
               />
             );
           }}
@@ -288,7 +286,6 @@ function Modals({
             modalProps={modalProps}
             month={options.month}
             actions={actions}
-            isNewAutocompleteEnabled={isNewAutocompleteEnabled}
             isGoalTemplatesEnabled={isGoalTemplatesEnabled}
           />
         </Route>
diff --git a/packages/desktop-client/src/components/accounts/TransactionsTable.js b/packages/desktop-client/src/components/accounts/TransactionsTable.js
index 81b92b7f086aefb9e4b0a64ab4b4b84c98c7c729..f91361480ddc978c398847caf947fc0c5942fdde 100644
--- a/packages/desktop-client/src/components/accounts/TransactionsTable.js
+++ b/packages/desktop-client/src/components/accounts/TransactionsTable.js
@@ -37,7 +37,6 @@ import {
   titleFirst,
 } from 'loot-core/src/shared/util';
 
-import useFeatureFlag from '../../hooks/useFeatureFlag';
 import { useMergedRefs } from '../../hooks/useMergedRefs';
 import usePrevious from '../../hooks/usePrevious';
 import { useSelectedDispatch, useSelectedItems } from '../../hooks/useSelected';
@@ -48,12 +47,9 @@ import ArrowsSynchronize from '../../icons/v2/ArrowsSynchronize';
 import CalendarIcon from '../../icons/v2/Calendar';
 import Hyperlink2 from '../../icons/v2/Hyperlink2';
 import { styles, colors } from '../../style';
-import LegacyAccountAutocomplete from '../autocomplete/AccountAutocomplete';
-import NewCategoryAutocomplete from '../autocomplete/CategoryAutocomplete';
-import LegacyCategoryAutocomplete from '../autocomplete/CategorySelect';
-import NewAccountAutocomplete from '../autocomplete/NewAccountAutocomplete';
-import NewPayeeAutocomplete from '../autocomplete/NewPayeeAutocomplete';
-import LegacyPayeeAutocomplete from '../autocomplete/PayeeAutocomplete';
+import AccountAutocomplete from '../autocomplete/AccountAutocomplete';
+import CategoryAutocomplete from '../autocomplete/CategorySelect';
+import PayeeAutocomplete from '../autocomplete/PayeeAutocomplete';
 import { View, Text, Tooltip, Button } from '../common';
 import { getStatusProps } from '../schedules/StatusBadge';
 import DateSelect from '../select/DateSelect';
@@ -394,7 +390,6 @@ function PayeeCell({
   onCreatePayee,
   onManagePayees,
 }) {
-  const isNewAutocompleteEnabled = useFeatureFlag('newAutocomplete');
   let isCreatingPayee = useRef(false);
 
   // Filter out the account we're currently in as it is not a valid transfer
@@ -428,9 +423,6 @@ function PayeeCell({
         shouldSaveFromKey,
         inputStyle,
       }) => {
-        const PayeeAutocomplete = isNewAutocompleteEnabled
-          ? NewPayeeAutocomplete
-          : LegacyPayeeAutocomplete;
         return (
           <>
             <PayeeAutocomplete
@@ -531,14 +523,6 @@ export const Transaction = React.memo(function Transaction(props) {
     onToggleSplit,
   } = props;
 
-  const isNewAutocompleteEnabled = useFeatureFlag('newAutocomplete');
-  const AccountAutocomplete = isNewAutocompleteEnabled
-    ? NewAccountAutocomplete
-    : LegacyAccountAutocomplete;
-  const CategoryAutocomplete = isNewAutocompleteEnabled
-    ? NewCategoryAutocomplete
-    : LegacyCategoryAutocomplete;
-
   let dispatchSelected = useSelectedDispatch();
 
   let [prevShowZero, setPrevShowZero] = useState(showZeroInDeposit);
diff --git a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.js b/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.js
deleted file mode 100644
index d53c45639d4a2062fceaaf7692ca4343f427b515..0000000000000000000000000000000000000000
--- a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.js
+++ /dev/null
@@ -1,91 +0,0 @@
-import React, { useMemo } from 'react';
-import { components as SelectComponents } from 'react-select';
-
-import Split from '../../icons/v0/Split';
-import { colors } from '../../style';
-import { View } from '../common';
-
-import Autocomplete from './NewAutocomplete';
-
-const SPLIT_TRANSACTION_KEY = 'split';
-
-export default function CategoryAutocomplete({
-  value,
-  categoryGroups,
-  showSplitOption = false,
-  multi = false,
-  onSplit,
-  ...props
-}) {
-  const options = useMemo(() => {
-    const suggestions = categoryGroups.map(group => ({
-      label: group.name,
-      options: group.categories.map(categ => ({
-        value: categ.id,
-        label: categ.name,
-      })),
-    }));
-
-    if (showSplitOption) {
-      suggestions.unshift({
-        value: SPLIT_TRANSACTION_KEY,
-        label: SPLIT_TRANSACTION_KEY,
-      });
-    }
-
-    return suggestions;
-  }, [categoryGroups, showSplitOption]);
-
-  const allOptions = useMemo(
-    () =>
-      options.reduce(
-        (carry, { options }) => [...carry, ...(options || [])],
-        [],
-      ),
-    [options],
-  );
-
-  return (
-    <Autocomplete
-      options={options}
-      value={
-        multi
-          ? allOptions.filter(item => value.includes(item.value))
-          : allOptions.find(item => item.value === value)
-      }
-      isMulti={multi}
-      components={{
-        Option,
-      }}
-      {...props}
-    />
-  );
-}
-
-function Option(props) {
-  if (props.value === SPLIT_TRANSACTION_KEY) {
-    return (
-      <SelectComponents.Option {...props}>
-        <View
-          style={{
-            flexDirection: 'row',
-            alignItems: 'center',
-            fontSize: 11,
-            color: colors.g8,
-            marginLeft: -12,
-            padding: '4px 0',
-          }}
-          data-testid="split-transaction-button"
-        >
-          <Split
-            width={10}
-            height={10}
-            style={{ marginRight: 5, color: 'inherit' }}
-          />
-          Split Transaction
-        </View>
-      </SelectComponents.Option>
-    );
-  }
-  return <SelectComponents.Option {...props} />;
-}
diff --git a/packages/desktop-client/src/components/autocomplete/NewAccountAutocomplete.js b/packages/desktop-client/src/components/autocomplete/NewAccountAutocomplete.js
deleted file mode 100644
index ef11d569ca8ce3a4148adbaf2abfb846e5c9ed4c..0000000000000000000000000000000000000000
--- a/packages/desktop-client/src/components/autocomplete/NewAccountAutocomplete.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import React, { useMemo } from 'react';
-
-import { useCachedAccounts } from 'loot-core/src/client/data-hooks/accounts';
-
-import Autocomplete from './NewAutocomplete';
-
-export default function AccountAutocomplete({
-  value,
-  includeClosedAccounts = true,
-  multi = false,
-  ...props
-}) {
-  const accounts = useCachedAccounts() || [];
-
-  const availableAccounts = useMemo(
-    () =>
-      includeClosedAccounts ? accounts : accounts.filter(item => !item.closed),
-    [accounts, includeClosedAccounts],
-  );
-
-  const options = useMemo(
-    () => [
-      {
-        label: 'For Budget',
-        options: availableAccounts
-          .filter(item => !item.offbudget)
-          .map(item => ({
-            label: item.name,
-            value: item.id,
-          })),
-      },
-      {
-        label: 'Off Budget',
-        options: availableAccounts
-          .filter(item => item.offbudget)
-          .map(item => ({
-            label: item.name,
-            value: item.id,
-          })),
-      },
-    ],
-    [availableAccounts],
-  );
-
-  const allOptions = useMemo(
-    () => options.reduce((carry, { options }) => [...carry, ...options], []),
-    [options],
-  );
-
-  return (
-    <Autocomplete
-      options={options}
-      value={
-        multi
-          ? allOptions.filter(item => value.includes(item.value))
-          : allOptions.find(item => item.value === value)
-      }
-      isMulti={multi}
-      {...props}
-    />
-  );
-}
diff --git a/packages/desktop-client/src/components/autocomplete/NewAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/NewAutocomplete.tsx
deleted file mode 100644
index 163817958e455c5224533c52fea830dae87edb17..0000000000000000000000000000000000000000
--- a/packages/desktop-client/src/components/autocomplete/NewAutocomplete.tsx
+++ /dev/null
@@ -1,166 +0,0 @@
-import React, { useState } from 'react';
-import Select from 'react-select';
-import type {
-  GroupBase,
-  Props as SelectProps,
-  PropsValue,
-  SingleValue,
-  SelectInstance,
-} from 'react-select';
-
-import type { CreatableProps } from 'react-select/creatable';
-import CreatableSelect from 'react-select/creatable';
-
-import { NullComponent } from '../common';
-
-import styles from './autocomplete-styles';
-
-type OptionValue = {
-  __isNew__?: boolean;
-  label: string;
-  value: string;
-};
-
-interface BaseAutocompleteProps {
-  focused?: boolean;
-  embedded?: boolean;
-  onSelect: (value: string | string[]) => void;
-  onCreateOption?: (value: string) => void;
-  isCreatable?: boolean;
-}
-
-type SimpleAutocompleteProps = BaseAutocompleteProps & SelectProps<OptionValue>;
-type CreatableAutocompleteProps = BaseAutocompleteProps &
-  CreatableProps<OptionValue, true, GroupBase<OptionValue>> & {
-    isCreatable: true;
-  };
-
-type AutocompleteProps = SimpleAutocompleteProps | CreatableAutocompleteProps;
-
-const isSingleValue = (
-  value: PropsValue<OptionValue>,
-): value is SingleValue<OptionValue> => {
-  return !Array.isArray(value);
-};
-
-const Autocomplete = React.forwardRef<SelectInstance, AutocompleteProps>(
-  (
-    {
-      value,
-      options = [],
-      focused = false,
-      embedded = false,
-      onSelect,
-      onCreateOption,
-      isCreatable = false,
-      components = {},
-      ...props
-    },
-    ref,
-  ) => {
-    const [initialValue] = useState(value);
-    const [isOpen, setIsOpen] = useState(focused || embedded);
-
-    const [inputValue, setInputValue] = useState<
-      AutocompleteProps['inputValue']
-    >(() => (isSingleValue(value) ? value?.label : undefined));
-    const [isInitialInputValue, setInitialInputValue] = useState(true);
-
-    const onInputChange: AutocompleteProps['onInputChange'] = value => {
-      setInputValue(value);
-      setInitialInputValue(false);
-    };
-
-    const filterOption: AutocompleteProps['filterOption'] = (option, input) => {
-      if (isInitialInputValue) {
-        return true;
-      }
-
-      return (
-        option.data?.__isNew__ ||
-        option.label.toLowerCase().includes(input?.toLowerCase())
-      );
-    };
-
-    const onChange: AutocompleteProps['onChange'] = (
-      selected: PropsValue<OptionValue>,
-    ) => {
-      // Clear button clicked
-      if (!selected) {
-        onSelect(null);
-        return;
-      }
-
-      // Create a new option
-      if (isSingleValue(selected) && selected.__isNew__) {
-        onCreateOption(selected.value);
-        return;
-      }
-
-      // Close the menu when making a successful selection
-      if (isSingleValue(selected)) {
-        setIsOpen(false);
-      }
-
-      // Multi-select has multiple selections
-      if (!isSingleValue(selected)) {
-        onSelect(selected.map(option => option.value));
-        return;
-      }
-
-      onSelect(selected.value);
-    };
-
-    const onKeyDown: AutocompleteProps['onKeyDown'] = event => {
-      if (event.key === 'Escape') {
-        onSelect(
-          isSingleValue(initialValue)
-            ? initialValue?.value
-            : initialValue.map(val => val.value),
-        );
-        setIsOpen(false);
-        return;
-      }
-
-      if (!isOpen) {
-        setIsOpen(true);
-      }
-    };
-
-    const Component = isCreatable ? CreatableSelect : Select;
-
-    return (
-      <Component
-        ref={ref}
-        value={value}
-        menuIsOpen={isOpen}
-        autoFocus={embedded}
-        options={options}
-        placeholder="(none)"
-        captureMenuScroll={false}
-        onChange={onChange}
-        onKeyDown={onKeyDown}
-        onCreateOption={onCreateOption}
-        onBlur={() => setIsOpen(false)}
-        onFocus={() => setIsOpen(true)}
-        isClearable
-        filterOption={filterOption}
-        components={{
-          IndicatorSeparator: NullComponent,
-          DropdownIndicator: NullComponent,
-          ...components,
-        }}
-        maxMenuHeight={200}
-        styles={styles}
-        data-embedded={embedded}
-        menuPlacement="auto"
-        menuPortalTarget={embedded ? undefined : document.body}
-        inputValue={inputValue}
-        onInputChange={onInputChange}
-        {...props}
-      />
-    );
-  },
-);
-
-export default Autocomplete;
diff --git a/packages/desktop-client/src/components/autocomplete/NewPayeeAutocomplete.js b/packages/desktop-client/src/components/autocomplete/NewPayeeAutocomplete.js
deleted file mode 100644
index 6c4f31c8cafbbf7c6b65c2c213685136f1ed8095..0000000000000000000000000000000000000000
--- a/packages/desktop-client/src/components/autocomplete/NewPayeeAutocomplete.js
+++ /dev/null
@@ -1,165 +0,0 @@
-import React, { useState, useMemo } from 'react';
-import { useDispatch } from 'react-redux';
-import { components as SelectComponents } from 'react-select';
-
-import { createPayee } from 'loot-core/src/client/actions/queries';
-import { getActivePayees } from 'loot-core/src/client/reducers/queries';
-
-import Add from '../../icons/v1/Add';
-import { colors } from '../../style';
-import { View } from '../common';
-
-import { AutocompleteFooter, AutocompleteFooterButton } from './Autocomplete';
-import Autocomplete from './NewAutocomplete';
-
-function getPayeeSuggestions(payees, focusTransferPayees, accounts) {
-  let activePayees =
-    (accounts ? getActivePayees(payees, accounts) : payees) || [];
-
-  function formatOptions(options) {
-    return options.map(row => ({
-      value: row.id,
-      label: row.name,
-    }));
-  }
-
-  return [
-    ...(focusTransferPayees
-      ? []
-      : [
-          {
-            label: 'Payees',
-            options: formatOptions(activePayees.filter(p => !p.transfer_acct)),
-          },
-        ]),
-    {
-      label: 'Transfer To/From',
-      options: formatOptions(activePayees.filter(p => p.transfer_acct)),
-    },
-  ];
-}
-
-function MenuListWithFooter(props) {
-  return (
-    <>
-      <SelectComponents.MenuList {...props} />
-      {props.selectProps.footer}
-    </>
-  );
-}
-
-export default function PayeeAutocomplete({
-  payees,
-  accounts,
-  value,
-  multi = false,
-  showMakeTransfer = true,
-  showManagePayees = false,
-  defaultFocusTransferPayees = false,
-  onSelect,
-  onManagePayees,
-  ...props
-}) {
-  const [focusTransferPayees, setFocusTransferPayees] = useState(
-    defaultFocusTransferPayees,
-  );
-  const options = useMemo(
-    () => getPayeeSuggestions(payees, focusTransferPayees, accounts),
-    [payees, focusTransferPayees, accounts],
-  );
-  const allOptions = useMemo(
-    () => options.reduce((carry, { options }) => [...carry, ...options], []),
-    [options],
-  );
-
-  const dispatch = useDispatch();
-
-  return (
-    <Autocomplete
-      options={options}
-      value={
-        multi
-          ? allOptions.filter(item => value.includes(item.value))
-          : allOptions.find(item => item.value === value)
-      }
-      isValidNewOption={input => {
-        if (focusTransferPayees || !input) {
-          return false;
-        }
-
-        const lowercaseInput = input.toLowerCase();
-        const hasExistingOption = allOptions.some(
-          option => option.label.toLowerCase() === lowercaseInput,
-        );
-
-        return !hasExistingOption;
-      }}
-      isMulti={multi}
-      onSelect={onSelect}
-      onCreateOption={async selectedValue => {
-        onSelect(await dispatch(createPayee(selectedValue)));
-      }}
-      createOptionPosition="first"
-      formatCreateLabel={inputValue => (
-        <View
-          style={{
-            display: 'block',
-            color: colors.g8,
-            fontSize: 11,
-            fontWeight: 500,
-            marginLeft: -10,
-            padding: '4px 0',
-          }}
-        >
-          <Add
-            width={8}
-            height={8}
-            style={{
-              color: colors.g8,
-              marginRight: 5,
-              display: 'inline-block',
-            }}
-          />
-          Create Payee “{inputValue}”
-        </View>
-      )}
-      components={{
-        MenuList: MenuListWithFooter,
-      }}
-      minMenuHeight={300}
-      footer={
-        <AutocompleteFooter show={showMakeTransfer || showManagePayees}>
-          {showMakeTransfer && (
-            <AutocompleteFooterButton
-              title="Make Transfer"
-              style={[
-                showManagePayees && { marginBottom: 5 },
-                focusTransferPayees && {
-                  backgroundColor: colors.y8,
-                  color: colors.g2,
-                  borderColor: colors.y8,
-                },
-              ]}
-              hoveredStyle={
-                focusTransferPayees && {
-                  backgroundColor: colors.y8,
-                  colors: colors.y2,
-                }
-              }
-              onClick={() => {
-                setFocusTransferPayees(!focusTransferPayees);
-              }}
-            />
-          )}
-          {showManagePayees && (
-            <AutocompleteFooterButton
-              title="Manage Payees"
-              onClick={onManagePayees}
-            />
-          )}
-        </AutocompleteFooter>
-      }
-      {...props}
-    />
-  );
-}
diff --git a/packages/desktop-client/src/components/budget/index.js b/packages/desktop-client/src/components/budget/index.js
index 6f7d896b5a5a2b7e41d9a0357c628cc078f20d69..ca479d03ceb12cb58e161dfe530a7c808503393e 100644
--- a/packages/desktop-client/src/components/budget/index.js
+++ b/packages/desktop-client/src/components/budget/index.js
@@ -499,12 +499,10 @@ class Budget extends React.PureComponent {
 
 const RolloverBudgetSummary = React.memo(props => {
   const isGoalTemplatesEnabled = useFeatureFlag('goalTemplatesEnabled');
-  const isNewAutocompleteEnabled = useFeatureFlag('newAutocomplete');
   return (
     <rollover.BudgetSummary
       {...props}
       isGoalTemplatesEnabled={isGoalTemplatesEnabled}
-      isNewAutocompleteEnabled={isNewAutocompleteEnabled}
     />
   );
 });
diff --git a/packages/desktop-client/src/components/budget/misc.js b/packages/desktop-client/src/components/budget/misc.js
index afaade835935828b1ee631fd03c07220588cfbfb..dba9a2418ac88ac86672ba3180cc72b826e3d504 100644
--- a/packages/desktop-client/src/components/budget/misc.js
+++ b/packages/desktop-client/src/components/budget/misc.js
@@ -1,5 +1,4 @@
 import React, { useContext, useState, useMemo } from 'react';
-import { connect } from 'react-redux';
 
 import * as monthUtils from 'loot-core/src/shared/months';
 
@@ -733,11 +732,7 @@ function ExpenseGroup({
   );
 }
 
-const ExpenseCategory = connect(state => ({
-  isNewAutocompleteEnabled: state.prefs.local['flags.newAutocomplete'],
-}))(ExpenseCategoryInternal);
-
-function ExpenseCategoryInternal({
+function ExpenseCategory({
   cat,
   budgetArray,
   editingCell,
@@ -751,7 +746,6 @@ function ExpenseCategoryInternal({
   onShowActivity,
   onDragChange,
   onReorder,
-  isNewAutocompleteEnabled,
 }) {
   let dragging = dragState && dragState.item === cat;
 
@@ -810,7 +804,6 @@ function ExpenseCategoryInternal({
             onEdit: onEditMonth,
             onBudgetAction,
             onShowActivity,
-            isNewAutocompleteEnabled,
           }}
         />
       </View>
diff --git a/packages/desktop-client/src/components/budget/rollover/BudgetSummary.js b/packages/desktop-client/src/components/budget/rollover/BudgetSummary.js
index 69c0e194189420aeba19be2b741602475dc1ae05..5edeb6f1fa3665a63664f1e016f552f3e3ae5160 100644
--- a/packages/desktop-client/src/components/budget/rollover/BudgetSummary.js
+++ b/packages/desktop-client/src/components/budget/rollover/BudgetSummary.js
@@ -134,13 +134,7 @@ function TotalsList({ prevMonthName, collapsed }) {
   );
 }
 
-function ToBudget({
-  month,
-  prevMonthName,
-  collapsed,
-  onBudgetAction,
-  isNewAutocompleteEnabled,
-}) {
+function ToBudget({ month, prevMonthName, collapsed, onBudgetAction }) {
   return (
     <SheetValue binding={rolloverBudget.toBudget} initialValue={0}>
       {node => {
@@ -237,7 +231,6 @@ function ToBudget({
                           category,
                         });
                       }}
-                      isNewAutocompleteEnabled={isNewAutocompleteEnabled}
                     />
                   )}
                 </View>
@@ -250,11 +243,7 @@ function ToBudget({
   );
 }
 
-export function BudgetSummary({
-  month,
-  isGoalTemplatesEnabled,
-  isNewAutocompleteEnabled,
-}) {
+export function BudgetSummary({ month, isGoalTemplatesEnabled }) {
   let {
     currentMonth,
     summaryCollapsed: collapsed,
@@ -417,18 +406,13 @@ export function BudgetSummary({
               prevMonthName={prevMonthName}
               month={month}
               onBudgetAction={onBudgetAction}
-              isNewAutocompleteEnabled={isNewAutocompleteEnabled}
             />
           </View>
         ) : (
           <>
             <TotalsList prevMonthName={prevMonthName} />
             <View style={{ margin: '23px 0' }}>
-              <ToBudget
-                month={month}
-                onBudgetAction={onBudgetAction}
-                isNewAutocompleteEnabled={isNewAutocompleteEnabled}
-              />
+              <ToBudget month={month} onBudgetAction={onBudgetAction} />
             </View>
           </>
         )}
diff --git a/packages/desktop-client/src/components/budget/rollover/TransferTooltip.js b/packages/desktop-client/src/components/budget/rollover/TransferTooltip.js
index 9f948f9612b1c9975c384d4edd3cf9e42beed4e5..92bac19623ed7f083fa0caaae59a6194525b025a 100644
--- a/packages/desktop-client/src/components/budget/rollover/TransferTooltip.js
+++ b/packages/desktop-client/src/components/budget/rollover/TransferTooltip.js
@@ -4,8 +4,7 @@ import { useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider';
 import evalArithmetic from 'loot-core/src/shared/arithmetic';
 import { integerToCurrency, amountToInteger } from 'loot-core/src/shared/util';
 
-import NewCategoryAutocomplete from '../../autocomplete/CategoryAutocomplete';
-import LegacyCategoryAutocomplete from '../../autocomplete/CategorySelect';
+import CategoryAutocomplete from '../../autocomplete/CategorySelect';
 import { View, Button, Tooltip, InitialFocus, Input } from '../../common';
 import NamespaceContext from '../../spreadsheet/NamespaceContext';
 import { addToBeBudgetedGroup, CategoryGroupsContext } from '../util';
@@ -17,12 +16,7 @@ export default function TransferTooltip({
   tooltipProps,
   onSubmit,
   onClose,
-  isNewAutocompleteEnabled,
 }) {
-  const CategoryAutocomplete = isNewAutocompleteEnabled
-    ? NewCategoryAutocomplete
-    : LegacyCategoryAutocomplete;
-
   let spreadsheet = useSpreadsheet();
   let sheetName = useContext(NamespaceContext);
   let categoryGroups = useContext(CategoryGroupsContext);
diff --git a/packages/desktop-client/src/components/budget/rollover/rollover-components.js b/packages/desktop-client/src/components/budget/rollover/rollover-components.js
index 57496c283a9700176abe03d470c15c438d789f7d..dfdb7e815dc1b917c7b176aacc4e9b83dca4571f 100644
--- a/packages/desktop-client/src/components/budget/rollover/rollover-components.js
+++ b/packages/desktop-client/src/components/budget/rollover/rollover-components.js
@@ -5,8 +5,7 @@ import evalArithmetic from 'loot-core/src/shared/arithmetic';
 import { integerToCurrency, amountToInteger } from 'loot-core/src/shared/util';
 
 import { styles, colors } from '../../../style';
-import NewCategoryAutocomplete from '../../autocomplete/CategoryAutocomplete';
-import LegacyCategoryAutocomplete from '../../autocomplete/CategorySelect';
+import CategoryAutocomplete from '../../autocomplete/CategorySelect';
 import {
   View,
   Text,
@@ -38,7 +37,6 @@ function CoverTooltip({
   tooltipProps,
   onSubmit,
   onClose,
-  isNewAutocompleteEnabled,
 }) {
   let categoryGroups = useContext(CategoryGroupsContext);
   categoryGroups = addToBeBudgetedGroup(
@@ -53,10 +51,6 @@ function CoverTooltip({
     }
   }
 
-  const CategoryAutocomplete = isNewAutocompleteEnabled
-    ? NewCategoryAutocomplete
-    : LegacyCategoryAutocomplete;
-
   return (
     <Tooltip
       position="bottom-right"
@@ -108,13 +102,7 @@ function CoverTooltip({
   );
 }
 
-function BalanceTooltip({
-  categoryId,
-  tooltip,
-  monthIndex,
-  onBudgetAction,
-  isNewAutocompleteEnabled,
-}) {
+function BalanceTooltip({ categoryId, tooltip, monthIndex, onBudgetAction }) {
   let carryover = useSheetValue(rolloverBudget.catCarryover(categoryId));
   let balance = useSheetValue(rolloverBudget.catBalance(categoryId));
   let [menu, setMenu] = useState('menu');
@@ -172,7 +160,6 @@ function BalanceTooltip({
               to: toCategory,
             });
           }}
-          isNewAutocompleteEnabled={isNewAutocompleteEnabled}
         />
       )}
 
@@ -186,7 +173,6 @@ function BalanceTooltip({
               from: fromCategory,
             });
           }}
-          isNewAutocompleteEnabled={isNewAutocompleteEnabled}
         />
       )}
     </>
@@ -306,7 +292,6 @@ export const ExpenseCategoryMonth = React.memo(function ExpenseCategoryMonth({
   onEdit,
   onBudgetAction,
   onShowActivity,
-  isNewAutocompleteEnabled,
 }) {
   let borderColor = colors.border;
   let balanceTooltip = useTooltip();
@@ -400,7 +385,6 @@ export const ExpenseCategoryMonth = React.memo(function ExpenseCategoryMonth({
             tooltip={balanceTooltip}
             monthIndex={monthIndex}
             onBudgetAction={onBudgetAction}
-            isNewAutocompleteEnabled={isNewAutocompleteEnabled}
           />
         )}
       </Field>
diff --git a/packages/desktop-client/src/components/modals/EditField.js b/packages/desktop-client/src/components/modals/EditField.js
index 571c0c57fb6c0594babbb12ff5e7368c57aa3947..5dcf73bf39bee8d74ab463dad03bb3ea30df3a29 100644
--- a/packages/desktop-client/src/components/modals/EditField.js
+++ b/packages/desktop-client/src/components/modals/EditField.js
@@ -8,12 +8,9 @@ import { currentDay, dayFromDate } from 'loot-core/src/shared/months';
 import { amountToInteger } from 'loot-core/src/shared/util';
 
 import { colors } from '../../style';
-import LegacyAccountAutocomplete from '../autocomplete/AccountAutocomplete';
-import NewCategoryAutocomplete from '../autocomplete/CategoryAutocomplete';
-import LegacyCategoryAutocomplete from '../autocomplete/CategorySelect';
-import NewAccountAutocomplete from '../autocomplete/NewAccountAutocomplete';
-import NewPayeeAutocomplete from '../autocomplete/NewPayeeAutocomplete';
-import LegacyPayeeAutocomplete from '../autocomplete/PayeeAutocomplete';
+import AccountAutocomplete from '../autocomplete/AccountAutocomplete';
+import CategoryAutocomplete from '../autocomplete/CategorySelect';
+import PayeeAutocomplete from '../autocomplete/PayeeAutocomplete';
 import { View, Modal, Input } from '../common';
 import { SectionLabel } from '../forms';
 import DateSelect from '../select/DateSelect';
@@ -28,7 +25,6 @@ function EditField({
   onSubmit,
   dateFormat,
   createPayee,
-  isNewAutocompleteEnabled,
 }) {
   function onSelect(value) {
     if (value != null) {
@@ -49,18 +45,6 @@ function EditField({
     containerProps: { style: { height: 275 } },
   };
 
-  const PayeeAutocomplete = isNewAutocompleteEnabled
-    ? NewPayeeAutocomplete
-    : LegacyPayeeAutocomplete;
-
-  const AccountAutocomplete = isNewAutocompleteEnabled
-    ? NewAccountAutocomplete
-    : LegacyAccountAutocomplete;
-
-  const CategoryAutocomplete = isNewAutocompleteEnabled
-    ? NewCategoryAutocomplete
-    : LegacyCategoryAutocomplete;
-
   switch (name) {
     case 'date': {
       let today = currentDay();
diff --git a/packages/desktop-client/src/components/modals/NordigenExternalMsg.js b/packages/desktop-client/src/components/modals/NordigenExternalMsg.js
index d4a962db82d0cfe30c0ca5dc162db14bc4e42ff7..5d01dad6e7f7d41968bd7bf942b4c8b9d2a98494 100644
--- a/packages/desktop-client/src/components/modals/NordigenExternalMsg.js
+++ b/packages/desktop-client/src/components/modals/NordigenExternalMsg.js
@@ -5,7 +5,7 @@ import { send } from 'loot-core/src/platform/client/fetch';
 import AnimatedLoading from '../../icons/AnimatedLoading';
 import { colors } from '../../style';
 import { Error, Warning } from '../alerts';
-import Autocomplete from '../autocomplete/NewAutocomplete';
+import Autocomplete from '../autocomplete/Autocomplete';
 import { View, Modal, Button, P } from '../common';
 import { FormField, FormLabel } from '../forms';
 
@@ -27,7 +27,7 @@ function useAvailableBanks(country) {
 
       const results = await send('nordigen-get-banks', country);
 
-      setBanks(results.map(bank => ({ value: bank.id, label: bank.name })));
+      setBanks(results);
       setIsLoading(false);
     }
 
@@ -124,12 +124,13 @@ export default function NordigenExternalMsg({
         <FormField>
           <FormLabel title="Choose your country:" htmlFor="country-field" />
           <Autocomplete
+            strict
+            highlightFirst
             disabled={isConfigurationLoading}
-            options={COUNTRY_OPTIONS}
+            suggestions={COUNTRY_OPTIONS}
             onSelect={setCountry}
-            value={COUNTRY_OPTIONS.find(({ value }) => value === country)}
-            inputId="country-field"
-            placeholder="(please select)"
+            value={country}
+            inputProps={{ id: 'country-field', placeholder: '(please select)' }}
           />
         </FormField>
 
@@ -141,11 +142,15 @@ export default function NordigenExternalMsg({
               <FormLabel title="Choose your bank:" htmlFor="bank-field" />
               <Autocomplete
                 focused
-                options={bankOptions}
+                strict
+                highlightFirst
+                suggestions={bankOptions}
                 onSelect={setInstitutionId}
-                value={bankOptions.find(({ value }) => value === institutionId)}
-                inputId="bank-field"
-                placeholder="(please select)"
+                value={institutionId}
+                inputProps={{
+                  id: 'bank-field',
+                  placeholder: '(please select)',
+                }}
               />
             </FormField>
           ))}
diff --git a/packages/desktop-client/src/components/modals/SelectLinkedAccounts.js b/packages/desktop-client/src/components/modals/SelectLinkedAccounts.js
index 1be08bb16ce3bd1e4a2e643c6d81d1f6d5ea3fa3..db7e13c199d897125c00f2d06098161e3b8ebedc 100644
--- a/packages/desktop-client/src/components/modals/SelectLinkedAccounts.js
+++ b/packages/desktop-client/src/components/modals/SelectLinkedAccounts.js
@@ -1,11 +1,11 @@
 import React, { useState } from 'react';
 
 import { colors } from '../../style';
-import Autocomplete from '../autocomplete/NewAutocomplete';
+import Autocomplete from '../autocomplete/Autocomplete';
 import { View, Modal, Button, Text } from '../common';
 import { TableHeader, Table, Row, Field } from '../table';
 
-const addAccountOption = { value: 'new', label: 'Create new account' };
+const addAccountOption = { id: 'new', name: 'Create new account' };
 
 export default function SelectLinkedAccounts({
   modalProps,
@@ -49,7 +49,7 @@ export default function SelectLinkedAccounts({
         actions.linkAccount(
           requisitionId,
           externalAccount,
-          chosenLocalAccountId !== addAccountOption.value
+          chosenLocalAccountId !== addAccountOption.id
             ? chosenLocalAccountId
             : undefined,
         );
@@ -108,11 +108,8 @@ export default function SelectLinkedAccounts({
                   <TableRow
                     externalAccount={item}
                     chosenAccount={
-                      chosenAccounts[item.account_id] === addAccountOption.value
-                        ? {
-                            id: addAccountOption.value,
-                            name: addAccountOption.label,
-                          }
+                      chosenAccounts[item.account_id] === addAccountOption.id
+                        ? addAccountOption
                         : localAccounts.find(
                             acc => chosenAccounts[item.account_id] === acc.id,
                           )
@@ -154,17 +151,9 @@ function TableRow({
 }) {
   const [focusedField, setFocusedField] = useState(null);
 
-  const chosenAccountOption = chosenAccount && {
-    value: chosenAccount.id,
-    label: chosenAccount.name,
-  };
-
   const availableAccountOptions = [
-    ...unlinkedAccounts.map(acct => ({
-      value: acct.id,
-      label: acct.name,
-    })),
-    chosenAccount?.id !== addAccountOption.value && chosenAccountOption,
+    ...unlinkedAccounts,
+    chosenAccount?.id !== addAccountOption.id && chosenAccount,
     addAccountOption,
   ].filter(Boolean);
 
@@ -178,13 +167,17 @@ function TableRow({
       >
         {focusedField === 'account' ? (
           <Autocomplete
-            autoFocus
-            options={availableAccountOptions}
+            focused
+            strict
+            highlightFirst
+            suggestions={availableAccountOptions}
             onSelect={value => {
               onSetLinkedAccount(externalAccount, value);
             }}
-            onBlur={() => setFocusedField(null)}
-            value={chosenAccountOption}
+            inputProps={{
+              onBlur: () => setFocusedField(null),
+            }}
+            value={chosenAccount?.id}
           />
         ) : (
           chosenAccount?.name
diff --git a/packages/desktop-client/src/components/modals/countries.js b/packages/desktop-client/src/components/modals/countries.js
index 9277ec95c8adf0b184e69875c1b6d4c5f325829c..91de293061541c04b6642212eab02a4e2fda0c7f 100644
--- a/packages/desktop-client/src/components/modals/countries.js
+++ b/packages/desktop-client/src/components/modals/countries.js
@@ -1,126 +1,126 @@
 export const COUNTRY_OPTIONS = [
   {
-    value: 'AT',
-    label: 'Austria',
+    id: 'AT',
+    name: 'Austria',
   },
   {
-    value: 'BE',
-    label: 'Belgium',
+    id: 'BE',
+    name: 'Belgium',
   },
   {
-    value: 'BG',
-    label: 'Bulgaria',
+    id: 'BG',
+    name: 'Bulgaria',
   },
   {
-    value: 'HR',
-    label: 'Croatia',
+    id: 'HR',
+    name: 'Croatia',
   },
   {
-    value: 'CY',
-    label: 'Cyprus',
+    id: 'CY',
+    name: 'Cyprus',
   },
   {
-    value: 'CZ',
-    label: 'Czechia',
+    id: 'CZ',
+    name: 'Czechia',
   },
   {
-    value: 'DK',
-    label: 'Denmark',
+    id: 'DK',
+    name: 'Denmark',
   },
   {
-    value: 'EE',
-    label: 'Estonia',
+    id: 'EE',
+    name: 'Estonia',
   },
   {
-    value: 'FI',
-    label: 'Finland',
+    id: 'FI',
+    name: 'Finland',
   },
   {
-    value: 'FR',
-    label: 'France',
+    id: 'FR',
+    name: 'France',
   },
   {
-    value: 'DE',
-    label: 'Germany',
+    id: 'DE',
+    name: 'Germany',
   },
   {
-    value: 'GR',
-    label: 'Greece',
+    id: 'GR',
+    name: 'Greece',
   },
   {
-    value: 'HU',
-    label: 'Hungary',
+    id: 'HU',
+    name: 'Hungary',
   },
   {
-    value: 'IS',
-    label: 'Iceland',
+    id: 'IS',
+    name: 'Iceland',
   },
   {
-    value: 'IE',
-    label: 'Ireland',
+    id: 'IE',
+    name: 'Ireland',
   },
   {
-    value: 'IT',
-    label: 'Italy',
+    id: 'IT',
+    name: 'Italy',
   },
   {
-    value: 'LV',
-    label: 'Latvia',
+    id: 'LV',
+    name: 'Latvia',
   },
   {
-    value: 'LI',
-    label: 'Liechtenstein',
+    id: 'LI',
+    name: 'Liechtenstein',
   },
   {
-    value: 'LT',
-    label: 'Lithuania',
+    id: 'LT',
+    name: 'Lithuania',
   },
   {
-    value: 'LU',
-    label: 'Luxembourg',
+    id: 'LU',
+    name: 'Luxembourg',
   },
   {
-    value: 'MT',
-    label: 'Malta',
+    id: 'MT',
+    name: 'Malta',
   },
   {
-    value: 'NL',
-    label: 'Netherlands',
+    id: 'NL',
+    name: 'Netherlands',
   },
   {
-    value: 'NO',
-    label: 'Norway',
+    id: 'NO',
+    name: 'Norway',
   },
   {
-    value: 'PL',
-    label: 'Poland',
+    id: 'PL',
+    name: 'Poland',
   },
   {
-    value: 'PT',
-    label: 'Portugal',
+    id: 'PT',
+    name: 'Portugal',
   },
   {
-    value: 'RO',
-    label: 'Romania',
+    id: 'RO',
+    name: 'Romania',
   },
   {
-    value: 'SK',
-    label: 'Slovakia',
+    id: 'SK',
+    name: 'Slovakia',
   },
   {
-    value: 'SI',
-    label: 'Slovenia',
+    id: 'SI',
+    name: 'Slovenia',
   },
   {
-    value: 'ES',
-    label: 'Spain',
+    id: 'ES',
+    name: 'Spain',
   },
   {
-    value: 'SE',
-    label: 'Sweden',
+    id: 'SE',
+    name: 'Sweden',
   },
   {
-    value: 'GB',
-    label: 'United Kingdom',
+    id: 'GB',
+    name: 'United Kingdom',
   },
 ];
diff --git a/packages/desktop-client/src/components/schedules/EditSchedule.js b/packages/desktop-client/src/components/schedules/EditSchedule.js
index 8d5361dc6395adc1c5ecf4b1b3ff9d6e2b991d55..c795d2994b0d59291f327275b1d2d10069eeb271 100644
--- a/packages/desktop-client/src/components/schedules/EditSchedule.js
+++ b/packages/desktop-client/src/components/schedules/EditSchedule.js
@@ -9,14 +9,11 @@ import { send, sendCatch } from 'loot-core/src/platform/client/fetch';
 import * as monthUtils from 'loot-core/src/shared/months';
 import { extractScheduleConds } from 'loot-core/src/shared/schedules';
 
-import useFeatureFlag from '../../hooks/useFeatureFlag';
 import useSelected, { SelectedProvider } from '../../hooks/useSelected';
 import { colors } from '../../style';
 import SimpleTransactionsTable from '../accounts/SimpleTransactionsTable';
-import LegacyAccountAutocomplete from '../autocomplete/AccountAutocomplete';
-import NewAccountAutocomplete from '../autocomplete/NewAccountAutocomplete';
-import NewPayeeAutocomplete from '../autocomplete/NewPayeeAutocomplete';
-import LegacyPayeeAutocomplete from '../autocomplete/PayeeAutocomplete';
+import AccountAutocomplete from '../autocomplete/AccountAutocomplete';
+import PayeeAutocomplete from '../autocomplete/PayeeAutocomplete';
 import { Stack, View, Text, Button } from '../common';
 import { FormField, FormLabel, Checkbox } from '../forms';
 import { OpSelect } from '../modals/EditRule';
@@ -81,8 +78,6 @@ function updateScheduleConditions(schedule, fields) {
 }
 
 export default function ScheduleDetails() {
-  const isNewAutocompleteEnabled = useFeatureFlag('newAutocomplete');
-
   let { id, initialFields } = useParams();
   let adding = id == null;
   let payees = useCachedPayees({ idKey: true });
@@ -435,13 +430,6 @@ export default function ScheduleDetails() {
   // This is derived from the date
   let repeats = state.fields.date ? !!state.fields.date.frequency : false;
 
-  const PayeeAutocomplete = isNewAutocompleteEnabled
-    ? NewPayeeAutocomplete
-    : LegacyPayeeAutocomplete;
-  const AccountAutocomplete = isNewAutocompleteEnabled
-    ? NewAccountAutocomplete
-    : LegacyAccountAutocomplete;
-
   return (
     <Page
       title={payee ? `Schedule: ${payee.name}` : 'Schedule'}
@@ -466,7 +454,6 @@ export default function ScheduleDetails() {
           <FormLabel title="Payee" htmlFor="payee-field" />
           <PayeeAutocomplete
             value={state.fields.payee}
-            inputId="payee-field"
             inputProps={{ id: 'payee-field', placeholder: '(none)' }}
             onSelect={id =>
               dispatch({ type: 'set-field', field: 'payee', value: id })
@@ -480,7 +467,6 @@ export default function ScheduleDetails() {
           <AccountAutocomplete
             includeClosedAccounts={false}
             value={state.fields.account}
-            inputId="account-field"
             inputProps={{ id: 'account-field', placeholder: '(none)' }}
             onSelect={id =>
               dispatch({ type: 'set-field', field: 'account', value: id })
diff --git a/packages/desktop-client/src/components/settings/Experimental.js b/packages/desktop-client/src/components/settings/Experimental.js
index 0be483712b7eb78fa148b429a7b96b48080ec88a..7328c9164e93b41c9e6b14195c4cb3cb27785701 100644
--- a/packages/desktop-client/src/components/settings/Experimental.js
+++ b/packages/desktop-client/src/components/settings/Experimental.js
@@ -63,18 +63,6 @@ export default function ExperimentalFeatures({ prefs, savePrefs }) {
               />{' '}
               <View>Goal templates</View>
             </label>
-            <label style={{ display: 'flex' }}>
-              <Checkbox
-                id="new-autocomplete-flag"
-                checked={flags.newAutocomplete}
-                onChange={() => {
-                  savePrefs({
-                    'flags.newAutocomplete': !flags.newAutocomplete,
-                  });
-                }}
-              />{' '}
-              <View>New autocomplete component</View>
-            </label>
           </View>
         ) : (
           <Link
diff --git a/packages/desktop-client/src/components/tooltips.js b/packages/desktop-client/src/components/tooltips.js
index 6c63cba6f1707c962f09497acd142698fcb547c8..0b431b8bc3ac3fb0926887ea96feaa23d7105132 100644
--- a/packages/desktop-client/src/components/tooltips.js
+++ b/packages/desktop-client/src/components/tooltips.js
@@ -45,8 +45,7 @@ export class Tooltip extends React.Component {
         // kind of things can be click that shouldn't close a tooltip?
         if (
           node.dataset.testid === 'tooltip' ||
-          node.dataset.reachPopover != null ||
-          node.id.startsWith('react-select')
+          node.dataset.reachPopover != null
         ) {
           break;
         }
diff --git a/packages/desktop-client/src/components/util/GenericInput.js b/packages/desktop-client/src/components/util/GenericInput.js
index f0f4866317b6fe77eceb0d5a3382fa3faedc65d7..4978cb76fb8a35f56ac2e84df2c53dd84285130b 100644
--- a/packages/desktop-client/src/components/util/GenericInput.js
+++ b/packages/desktop-client/src/components/util/GenericInput.js
@@ -3,15 +3,10 @@ import { useSelector } from 'react-redux';
 
 import { getMonthYearFormat } from 'loot-core/src/shared/months';
 
-import useFeatureFlag from '../../hooks/useFeatureFlag';
-import LegacyAccountAutocomplete from '../autocomplete/AccountAutocomplete';
-import LegacyAutocomplete from '../autocomplete/Autocomplete';
-import NewCategoryAutocomplete from '../autocomplete/CategoryAutocomplete';
-import LegacyCategoryAutocomplete from '../autocomplete/CategorySelect';
-import NewAccountAutocomplete from '../autocomplete/NewAccountAutocomplete';
-import NewAutocomplete from '../autocomplete/NewAutocomplete';
-import NewPayeeAutocomplete from '../autocomplete/NewPayeeAutocomplete';
-import LegacyPayeeAutocomplete from '../autocomplete/PayeeAutocomplete';
+import AccountAutocomplete from '../autocomplete/AccountAutocomplete';
+import Autocomplete from '../autocomplete/Autocomplete';
+import CategoryAutocomplete from '../autocomplete/CategorySelect';
+import PayeeAutocomplete from '../autocomplete/PayeeAutocomplete';
 import { View, Input } from '../common';
 import { Checkbox } from '../forms';
 import DateSelect from '../select/DateSelect';
@@ -27,17 +22,6 @@ export default function GenericInput({
   style,
   onChange,
 }) {
-  const isNewAutocompleteEnabled = useFeatureFlag('newAutocomplete');
-  const PayeeAutocomplete = isNewAutocompleteEnabled
-    ? NewPayeeAutocomplete
-    : LegacyPayeeAutocomplete;
-  const AccountAutocomplete = isNewAutocompleteEnabled
-    ? NewAccountAutocomplete
-    : LegacyAccountAutocomplete;
-  const CategoryAutocomplete = isNewAutocompleteEnabled
-    ? NewCategoryAutocomplete
-    : LegacyCategoryAutocomplete;
-
   let { payees, accounts, categoryGroups, dateFormat } = useSelector(state => {
     return {
       payees: state.queries.payees,
@@ -179,19 +163,8 @@ export default function GenericInput({
 
     default:
       if (multi) {
-        content = isNewAutocompleteEnabled ? (
-          <NewAutocomplete
-            ref={inputRef}
-            isMulti
-            isCreatable
-            formatCreateLabel={inputValue => `Add “${inputValue}”`}
-            noOptionsMessage={() => null}
-            value={value.map(v => ({ value: v, label: v }))}
-            onSelect={onChange}
-            onCreateOption={selected => onChange([...value, selected])}
-          />
-        ) : (
-          <LegacyAutocomplete
+        content = (
+          <Autocomplete
             multi={true}
             suggestions={[]}
             value={value}
diff --git a/packages/desktop-client/src/hooks/useFeatureFlag.ts b/packages/desktop-client/src/hooks/useFeatureFlag.ts
index c379d5016b6a2b9cf55017f5068dcce4c37b8d12..0d55d746aaba59a09df748e53ff56f86dc98de2c 100644
--- a/packages/desktop-client/src/hooks/useFeatureFlag.ts
+++ b/packages/desktop-client/src/hooks/useFeatureFlag.ts
@@ -1,7 +1,6 @@
 import { useSelector } from 'react-redux';
 
 const DEFAULT_FEATURE_FLAG_STATE: Record<string, boolean> = {
-  newAutocomplete: false,
   syncAccount: false,
   goalTemplatesEnabled: false,
 };
diff --git a/upcoming-release-notes/924.md b/upcoming-release-notes/924.md
new file mode 100644
index 0000000000000000000000000000000000000000..c0ac7aabb6c238094eb4fe90f56094b24877d5bb
--- /dev/null
+++ b/upcoming-release-notes/924.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [MatissJanis]
+---
+
+Remove `react-select` and the new autocomplete
diff --git a/yarn.lock b/yarn.lock
index 1dbedaa88fef6b0efc658f43a9643072ccd7b65b..054995e0d0f4f2f5d793a0dfd15e361a34e50791 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -99,7 +99,6 @@ __metadata:
     react-router-dom: 5.2.0
     react-router-dom-v5-compat: ^6.4.1
     react-scripts: ^5.0.1
-    react-select: ^5.7.0
     react-spring: ^8.0.27
     react-virtualized-auto-sizer: ^1.0.2
     redux: ^4.0.5
@@ -344,7 +343,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6":
+"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.18.6":
   version: 7.18.6
   resolution: "@babel/helper-module-imports@npm:7.18.6"
   dependencies:
@@ -1594,7 +1593,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2":
+"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2":
   version: 7.21.0
   resolution: "@babel/runtime@npm:7.21.0"
   dependencies:
@@ -1878,123 +1877,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@emotion/babel-plugin@npm:^11.10.6":
-  version: 11.10.6
-  resolution: "@emotion/babel-plugin@npm:11.10.6"
-  dependencies:
-    "@babel/helper-module-imports": ^7.16.7
-    "@babel/runtime": ^7.18.3
-    "@emotion/hash": ^0.9.0
-    "@emotion/memoize": ^0.8.0
-    "@emotion/serialize": ^1.1.1
-    babel-plugin-macros: ^3.1.0
-    convert-source-map: ^1.5.0
-    escape-string-regexp: ^4.0.0
-    find-root: ^1.1.0
-    source-map: ^0.5.7
-    stylis: 4.1.3
-  checksum: 3eed138932e8edf2598352e69ad949b9db3051a4d6fcff190dacbac9aa838d7ef708b9f3e6c48660625d9311dae82d73477ae4e7a31139feef5eb001a5528421
-  languageName: node
-  linkType: hard
-
-"@emotion/cache@npm:^11.10.5, @emotion/cache@npm:^11.4.0":
-  version: 11.10.5
-  resolution: "@emotion/cache@npm:11.10.5"
-  dependencies:
-    "@emotion/memoize": ^0.8.0
-    "@emotion/sheet": ^1.2.1
-    "@emotion/utils": ^1.2.0
-    "@emotion/weak-memoize": ^0.3.0
-    stylis: 4.1.3
-  checksum: 1dd2d9af2d3ecbd3d4469ecdf91a335eef6034c851b57a474471b2d2280613eb35bbed98c0368cc4625f188619fbdaf04cf07e8107aaffce94b2178444c0fe7b
-  languageName: node
-  linkType: hard
-
-"@emotion/hash@npm:^0.9.0":
-  version: 0.9.0
-  resolution: "@emotion/hash@npm:0.9.0"
-  checksum: b63428f7c8186607acdca5d003700cecf0ded519d0b5c5cc3b3154eafcad6ff433f8361bd2bac8882715b557e6f06945694aeb6ba8b25c6095d7a88570e2e0bb
-  languageName: node
-  linkType: hard
-
-"@emotion/memoize@npm:^0.8.0":
-  version: 0.8.0
-  resolution: "@emotion/memoize@npm:0.8.0"
-  checksum: c87bb110b829edd8e1c13b90a6bc37cebc39af29c7599a1e66a48e06f9bec43e8e53495ba86278cc52e7589549492c8dfdc81d19f4fdec0cee6ba13d2ad2c928
-  languageName: node
-  linkType: hard
-
-"@emotion/react@npm:^11.8.1":
-  version: 11.10.6
-  resolution: "@emotion/react@npm:11.10.6"
-  dependencies:
-    "@babel/runtime": ^7.18.3
-    "@emotion/babel-plugin": ^11.10.6
-    "@emotion/cache": ^11.10.5
-    "@emotion/serialize": ^1.1.1
-    "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0
-    "@emotion/utils": ^1.2.0
-    "@emotion/weak-memoize": ^0.3.0
-    hoist-non-react-statics: ^3.3.1
-  peerDependencies:
-    react: ">=16.8.0"
-  peerDependenciesMeta:
-    "@types/react":
-      optional: true
-  checksum: 4762042e39126ffaffe76052dc65c9bb0ba6b8893013687ba3cc13ed4dd834c31597f1230684c3c078e90aecc13ab6cd0e3cde0dec8b7761affd2571f4d80019
-  languageName: node
-  linkType: hard
-
-"@emotion/serialize@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "@emotion/serialize@npm:1.1.1"
-  dependencies:
-    "@emotion/hash": ^0.9.0
-    "@emotion/memoize": ^0.8.0
-    "@emotion/unitless": ^0.8.0
-    "@emotion/utils": ^1.2.0
-    csstype: ^3.0.2
-  checksum: 24cfd5b16e6f2335c032ca33804a876e0442aaf8f9c94d269d23735ebd194fb1ed142542dd92191a3e6ef8bad5bd560dfc5aaf363a1b70954726dbd4dd93085c
-  languageName: node
-  linkType: hard
-
-"@emotion/sheet@npm:^1.2.1":
-  version: 1.2.1
-  resolution: "@emotion/sheet@npm:1.2.1"
-  checksum: ce78763588ea522438156344d9f592203e2da582d8d67b32e1b0b98eaba26994c6c270f8c7ad46442fc9c0a9f048685d819cd73ca87e544520fd06f0e24a1562
-  languageName: node
-  linkType: hard
-
-"@emotion/unitless@npm:^0.8.0":
-  version: 0.8.0
-  resolution: "@emotion/unitless@npm:0.8.0"
-  checksum: 176141117ed23c0eb6e53a054a69c63e17ae532ec4210907a20b2208f91771821835f1c63dd2ec63e30e22fcc984026d7f933773ee6526dd038e0850919fae7a
-  languageName: node
-  linkType: hard
-
-"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.0"
-  peerDependencies:
-    react: ">=16.8.0"
-  checksum: 4f06a3b48258c832aa8022a262572061a31ff078d377e9164cccc99951309d70f4466e774fe704461b2f8715007a82ed625a54a5c7a127c89017d3ce3187d4f1
-  languageName: node
-  linkType: hard
-
-"@emotion/utils@npm:^1.2.0":
-  version: 1.2.0
-  resolution: "@emotion/utils@npm:1.2.0"
-  checksum: 55457a49ddd4db6a014ea0454dc09eaa23eedfb837095c8ff90470cb26a303f7ceb5fcc1e2190ef64683e64cfd33d3ba3ca3109cd87d12bc9e379e4195c9a4dd
-  languageName: node
-  linkType: hard
-
-"@emotion/weak-memoize@npm:^0.3.0":
-  version: 0.3.0
-  resolution: "@emotion/weak-memoize@npm:0.3.0"
-  checksum: f43ef4c8b7de70d9fa5eb3105921724651e4188e895beb71f0c5919dc899a7b8743e1fdd99d38b9092dd5722c7be2312ebb47fbdad0c4e38bea58f6df5885cc0
-  languageName: node
-  linkType: hard
-
 "@eslint-community/eslint-utils@npm:^4.2.0":
   version: 4.4.0
   resolution: "@eslint-community/eslint-utils@npm:4.4.0"
@@ -2037,22 +1919,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@floating-ui/core@npm:^1.2.3":
-  version: 1.2.4
-  resolution: "@floating-ui/core@npm:1.2.4"
-  checksum: 1c163ea1804e2b0a28fda6e32efed0e242d0db8081fd24aab9d1cbb100f94a558709231c483bf74bf09a9204ea6e7845813d43b5322ceb6ee63285308f68f65b
-  languageName: node
-  linkType: hard
-
-"@floating-ui/dom@npm:^1.0.1":
-  version: 1.2.4
-  resolution: "@floating-ui/dom@npm:1.2.4"
-  dependencies:
-    "@floating-ui/core": ^1.2.3
-  checksum: 5c24a2e8f04e436390646c8a4431c6cb79e03711fbb0f818b87d613a6be8971bc560a830b702aaa51a0ebc4d0c45deb06f3140c14125dc1ac770365bf66ee903
-  languageName: node
-  linkType: hard
-
 "@formatjs/ecma402-abstract@npm:1.12.0":
   version: 1.12.0
   resolution: "@formatjs/ecma402-abstract@npm:1.12.0"
@@ -4144,15 +4010,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@types/react-transition-group@npm:^4.4.0":
-  version: 4.4.5
-  resolution: "@types/react-transition-group@npm:4.4.5"
-  dependencies:
-    "@types/react": "*"
-  checksum: 265f1c74061556708ffe8d15559e35c60d6c11478c9950d3735575d2c116ca69f461d85effa06d73a613eb8b73c84fd32682feb57cf7c5f9e4284021dbca25b0
-  languageName: node
-  linkType: hard
-
 "@types/react@npm:*":
   version: 17.0.43
   resolution: "@types/react@npm:17.0.43"
@@ -7084,13 +6941,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"convert-source-map@npm:^1.5.0":
-  version: 1.9.0
-  resolution: "convert-source-map@npm:1.9.0"
-  checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8
-  languageName: node
-  linkType: hard
-
 "convert-source-map@npm:^2.0.0":
   version: 2.0.0
   resolution: "convert-source-map@npm:2.0.0"
@@ -8301,16 +8151,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"dom-helpers@npm:^5.0.1":
-  version: 5.2.1
-  resolution: "dom-helpers@npm:5.2.1"
-  dependencies:
-    "@babel/runtime": ^7.8.7
-    csstype: ^3.0.2
-  checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c
-  languageName: node
-  linkType: hard
-
 "dom-serializer@npm:0":
   version: 0.2.2
   resolution: "dom-serializer@npm:0.2.2"
@@ -9901,13 +9741,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"find-root@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "find-root@npm:1.1.0"
-  checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf
-  languageName: node
-  linkType: hard
-
 "find-up@npm:^2.0.0":
   version: 2.1.0
   resolution: "find-up@npm:2.1.0"
@@ -10941,7 +10774,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1":
+"hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.0":
   version: 3.3.2
   resolution: "hoist-non-react-statics@npm:3.3.2"
   dependencies:
@@ -13890,13 +13723,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"memoize-one@npm:^6.0.0":
-  version: 6.0.0
-  resolution: "memoize-one@npm:6.0.0"
-  checksum: f185ea69f7cceae5d1cb596266dcffccf545e8e7b4106ec6aa93b71ab9d16460dd118ac8b12982c55f6d6322fcc1485de139df07eacffaae94888b9b3ad7675f
-  languageName: node
-  linkType: hard
-
 "memory-fs@npm:^0.4.1":
   version: 0.4.1
   resolution: "memory-fs@npm:0.4.1"
@@ -16720,7 +16546,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"prop-types@npm:^15.5.10, prop-types@npm:^15.5.8, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1":
+"prop-types@npm:^15.5.10, prop-types@npm:^15.5.8, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1":
   version: 15.8.1
   resolution: "prop-types@npm:15.8.1"
   dependencies:
@@ -17293,26 +17119,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"react-select@npm:^5.7.0":
-  version: 5.7.0
-  resolution: "react-select@npm:5.7.0"
-  dependencies:
-    "@babel/runtime": ^7.12.0
-    "@emotion/cache": ^11.4.0
-    "@emotion/react": ^11.8.1
-    "@floating-ui/dom": ^1.0.1
-    "@types/react-transition-group": ^4.4.0
-    memoize-one: ^6.0.0
-    prop-types: ^15.6.0
-    react-transition-group: ^4.3.0
-    use-isomorphic-layout-effect: ^1.1.2
-  peerDependencies:
-    react: ^16.8.0 || ^17.0.0 || ^18.0.0
-    react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
-  checksum: 3d29f7bb6dd66ad55396d820f05da6112f1d21b67526422a8ff5aa6cd47c783804c1b73042ac2949ba0871056a3dc68c06a73a8281abb61571e475d72bbd80dc
-  languageName: node
-  linkType: hard
-
 "react-spring@npm:^8.0.27":
   version: 8.0.27
   resolution: "react-spring@npm:8.0.27"
@@ -17326,21 +17132,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"react-transition-group@npm:^4.3.0":
-  version: 4.4.5
-  resolution: "react-transition-group@npm:4.4.5"
-  dependencies:
-    "@babel/runtime": ^7.5.5
-    dom-helpers: ^5.0.1
-    loose-envify: ^1.4.0
-    prop-types: ^15.6.2
-  peerDependencies:
-    react: ">=16.6.0"
-    react-dom: ">=16.6.0"
-  checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1
-  languageName: node
-  linkType: hard
-
 "react-virtualized-auto-sizer@npm:^1.0.2":
   version: 1.0.6
   resolution: "react-virtualized-auto-sizer@npm:1.0.6"
@@ -18651,7 +18442,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"source-map@npm:^0.5.0, source-map@npm:^0.5.6, source-map@npm:^0.5.7":
+"source-map@npm:^0.5.0, source-map@npm:^0.5.6":
   version: 0.5.7
   resolution: "source-map@npm:0.5.7"
   checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d
@@ -19161,13 +18952,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"stylis@npm:4.1.3":
-  version: 4.1.3
-  resolution: "stylis@npm:4.1.3"
-  checksum: d04dbffcb9bf2c5ca8d8dc09534203c75df3bf711d33973ea22038a99cc475412a350b661ebd99cbc01daa50d7eedcf0d130d121800eb7318759a197023442a6
-  languageName: node
-  linkType: hard
-
 "sumchecker@npm:^3.0.1":
   version: 3.0.1
   resolution: "sumchecker@npm:3.0.1"
@@ -20253,18 +20037,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"use-isomorphic-layout-effect@npm:^1.1.2":
-  version: 1.1.2
-  resolution: "use-isomorphic-layout-effect@npm:1.1.2"
-  peerDependencies:
-    react: ^16.8.0 || ^17.0.0 || ^18.0.0
-  peerDependenciesMeta:
-    "@types/react":
-      optional: true
-  checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb
-  languageName: node
-  linkType: hard
-
 "use@npm:^3.1.0":
   version: 3.1.1
   resolution: "use@npm:3.1.1"