Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added public/favicon-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/favicon-32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions scripts/verify-build.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ const REQUIRED_STATIC = [
'robots.txt',
'og-default.png',
'favicon.ico',
'favicon-16.png',
'favicon-32.png',
'sitemap-index.xml',
];

Expand Down
2 changes: 1 addition & 1 deletion src/components/CopyCommand.astro
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ const { display, copy = display, prompt = true } = Astro.props;
if (status) status.textContent = 'Copied to clipboard';
} catch {
button.textContent = 'Press ⌘C';
if (status) status.textContent = 'Copy failed — press Control or Command + C';
if (status) status.textContent = 'Copy failed. Press Control or Command + C instead.';
}
window.setTimeout(() => {
button.textContent = 'Copy';
Expand Down
8 changes: 4 additions & 4 deletions src/data/fit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,14 +116,14 @@ export const QUESTIONS: readonly Question[] = [
{
id: 'mac',
question: 'Do you have a Mac, or a way to get one?',
help: "This is the big one. BlueBubbles needs a Mac signed in to iMessage to do the actual talking — there's no way around it.",
help: "This is the big one. BlueBubbles needs a Mac signed in to iMessage to do the actual talking, and there is no way around it.",
choices: [
{ id: 'have', label: 'Yes, I have a Mac', tone: 'good' },
{
id: 'buy',
label: 'I could pick up a cheap old one',
tone: 'good',
note: 'A second-hand Mac mini is the usual route. It does not need to be fast — it only relays messages.',
note: 'A second-hand Mac mini is the usual route. It only relays messages, so it does not need to be fast.',
},
{
id: 'vm',
Expand Down Expand Up @@ -175,7 +175,7 @@ export const QUESTIONS: readonly Question[] = [
reason: 'the Mac belongs to a school or employer',
tone: 'warn',
blocks: true,
note: 'Probably not for you. BlueBubbles needs Full Disk Access and, for the extra features, a helper installed into Messages. Managed Macs usually block both — and doing it anyway may well breach the device policy you agreed to. Use a personal Mac instead.',
note: 'Probably not for you. BlueBubbles needs Full Disk Access and, for the extra features, a helper installed into Messages. Managed Macs usually block both, and doing it anyway may well breach the device policy you agreed to. Use a personal Mac instead.',
},
],
},
Expand Down Expand Up @@ -245,7 +245,7 @@ export interface Verdict {
export const VERDICTS: Record<Verdict['id'], Verdict> = {
yes: {
id: 'yes',
title: 'Yes — this is built for you',
title: 'Yes, this is built for you',
blurb: 'You have what BlueBubbles needs, and none of the usual blockers. Install the server on your Mac, then the app wherever you want to read your messages.',
},
maybe: {
Expand Down
7 changes: 6 additions & 1 deletion src/layouts/BaseLayout.astro
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,12 @@ const { title, description, keywords, path, ogImage, ogType, noindex } = Astro.p
<Font cssVariable="--font-inter" preload />
<Seo {title} {description} {keywords} {path} {ogImage} {ogType} {noindex} />

<link rel="icon" href="/favicon.ico" sizes="48x48" />
{/* sizes="any" on the .ico: it holds 16, 24, 32 and 48px entries, and the
old markup claimed 48x48, which stopped browsers choosing the right one
for a tab. The PNGs are crisper where a browser prefers them. */}
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<slot name="head" />
</head>
Expand Down
2 changes: 1 addition & 1 deletion src/pages/is-it-for-me/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { LINKS, SITE } from '@data/site';
>
<PageHeader
title="Is BlueBubbles a good fit for me?"
lead={`${QUESTIONS.length} questions. No email address, nothing sent anywhere — it all runs in your browser. We'll tell you if the answer is no.`}
lead={`${QUESTIONS.length} questions, answered in your browser. No email address, and nothing is sent anywhere. We'll tell you if the answer is no.`}
/>

<div class="mx-auto max-w-2xl px-5 py-12">
Expand Down
Loading