diff --git a/lib/shared/messages/change-settings-message-spec.js b/lib/shared/messages/change-settings-message-spec.js
--- a/lib/shared/messages/change-settings-message-spec.js
+++ b/lib/shared/messages/change-settings-message-spec.js
@@ -133,7 +133,7 @@
       return `${creator} cleared ${params.encodedThreadEntity(
         messageInfo.threadID,
         'the chat',
-      )}'s ${messageInfo.field}`;
+      )}’s ${messageInfo.field}`;
     }
     let value;
     if (
@@ -151,11 +151,10 @@
     } else {
       value = messageInfo.value;
     }
-    return (
-      `${creator} updated ` +
-      `${params.encodedThreadEntity(messageInfo.threadID, 'the chat')}'s ` +
-      `${messageInfo.field} to "${value}"`
-    );
+    return `${creator} updated ${params.encodedThreadEntity(
+      messageInfo.threadID,
+      'the chat',
+    )}’s ${messageInfo.field} to “${value}”`;
   },
 
   notificationTexts(
diff --git a/lib/shared/messages/create-sidebar-message-spec.js b/lib/shared/messages/create-sidebar-message-spec.js
--- a/lib/shared/messages/create-sidebar-message-spec.js
+++ b/lib/shared/messages/create-sidebar-message-spec.js
@@ -223,10 +223,10 @@
     const sourceMessageAuthorPossessive = messageInfo.sourceMessageAuthor
       .isViewer
       ? 'your'
-      : `${stringForUser(messageInfo.sourceMessageAuthor)}'s`;
+      : `${stringForUser(messageInfo.sourceMessageAuthor)}’s`;
     const body =
       `started a thread in response to ${sourceMessageAuthorPossessive} ` +
-      `message "${messageInfo.initialThreadState.name ?? ''}"`;
+      `message “${messageInfo.initialThreadState.name ?? ''}”`;
     const merged = `${prefix} ${body}`;
     return {
       merged,
diff --git a/lib/shared/messages/update-relationship-message-spec.js b/lib/shared/messages/update-relationship-message-spec.js
--- a/lib/shared/messages/update-relationship-message-spec.js
+++ b/lib/shared/messages/update-relationship-message-spec.js
@@ -141,7 +141,7 @@
     } else if (messageInfo.operation === 'request_accepted') {
       const targetPossessive = messageInfo.target.isViewer
         ? 'your'
-        : `${target}'s`;
+        : `${target}’s`;
       return `${creator} accepted ${targetPossessive} friend request`;
     }
     invariant(
diff --git a/lib/shared/thread-utils.js b/lib/shared/thread-utils.js
--- a/lib/shared/thread-utils.js
+++ b/lib/shared/thread-utils.js
@@ -931,7 +931,7 @@
 // Consider updating itemHeight in native/chat/chat-thread-list.react.js
 // if you change this
 const emptyItemText: string =
-  `Background chats are just like normal chats, except they don't ` +
+  `Background chats are just like normal chats, except they don’t ` +
   `contribute to your unread count.\n\n` +
   `To move a chat over here, switch the “Background” option in its settings.`;
 
diff --git a/native/profile/relationship-list.react.js b/native/profile/relationship-list.react.js
--- a/native/profile/relationship-list.react.js
+++ b/native/profile/relationship-list.react.js
@@ -466,7 +466,7 @@
 
       const emptyMessage =
         item.because === 'no-relationships'
-          ? `You haven't ${action} any users yet`
+          ? `You haven’t ${action} any users yet`
           : 'No results';
 
       return <Text style={this.props.styles.emptyText}>{emptyMessage}</Text>;
diff --git a/web/account/log-in-form.react.js b/web/account/log-in-form.react.js
--- a/web/account/log-in-form.react.js
+++ b/web/account/log-in-form.react.js
@@ -68,7 +68,7 @@
       } catch (e) {
         if (e.message === 'invalid_parameters') {
           setUsername('');
-          setErrorMessage(`user doesn't exist`);
+          setErrorMessage(`user doesn’t exist`);
           usernameInputRef.current?.focus();
         } else if (e.message === 'invalid_credentials') {
           setPassword('');
diff --git a/web/modals/account/log-in-first-modal.react.js b/web/modals/account/log-in-first-modal.react.js
--- a/web/modals/account/log-in-first-modal.react.js
+++ b/web/modals/account/log-in-first-modal.react.js
@@ -23,7 +23,7 @@
       <Modal name="Log in" onClose={this.props.popModal}>
         <div className={css['modal-body']}>
           <p>
-            {`In order to ${this.props.inOrderTo}, you'll first need to `}
+            {`In order to ${this.props.inOrderTo}, you’ll first need to `}
             <a
               href="#"
               className={css['show-login-modal']}