feat(brand): swap recipient-facing pictureFrame strings to WeVisto
CI / test (push) Has been cancelled

Updated: SPA <title>, PWA manifest name/short_name, iOS web-app title,
"Install"/"Pin to home screen" copy, HomeView empty state, all Twig page
titles (login/register/setup/token/help), and the share-notification
email header. Left alone: the firmware-broadcast SSID PictureFrame-XXXX
(coordinated firmware change needed) and internal code/comment refs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-14 21:42:50 -04:00
parent 62cd3f57df
commit db80ea5262
27 changed files with 34 additions and 34 deletions
+2 -2
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>pictureFrame</title>
<title>WeVisto</title>
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="manifest" href="/build/manifest.webmanifest" />
@@ -13,7 +13,7 @@
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<meta name="apple-mobile-web-app-title" content="pictureFrame" />
<meta name="apple-mobile-web-app-title" content="WeVisto" />
</head>
<body>
<div id="app"></div>
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "pictureFrame",
"short_name": "pictureFrame",
"name": "WeVisto",
"short_name": "WeVisto",
"description": "Manage photos for your e-ink picture frames.",
"id": "/",
"start_url": "/",
+1 -1
View File
@@ -143,7 +143,7 @@ describe('SettingsView', () => {
fireBeforeInstallPrompt()
const wrapper = mount(SettingsView)
await flushPromises()
expect(wrapper.find('.settings__install').text()).toBe('Install pictureFrame')
expect(wrapper.find('.settings__install').text()).toBe('Install WeVisto')
})
it('clicking the native Install button invokes prompt() and resolves accepted', async () => {
+1 -1
View File
@@ -17,7 +17,7 @@
</svg>
<p class="home-view__empty-title">Set up your first frame</p>
<p class="home-view__empty-sub">
Power on your pictureFrame device and scan the QR code it displays to get started.
Power on your WeVisto frame and scan the QR code it displays to get started.
</p>
</div>
</div>
+2 -2
View File
@@ -5,7 +5,7 @@
<section v-if="!isStandalone" class="settings__section">
<h2 class="settings__section-title">Install app</h2>
<p class="settings__hint">
Pin pictureFrame to your home screen so it opens like a native app.
Pin WeVisto to your home screen so it opens like a native app.
</p>
<button
v-if="canPromptInstall"
@@ -13,7 +13,7 @@
class="settings__install"
@click="onNativeInstall"
>
Install pictureFrame
Install WeVisto
</button>
<button
v-else
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>pictureFrame</title>
<title>WeVisto</title>
<link rel="icon" type="image/svg+xml" href="/build/favicon.svg" />
<link rel="manifest" href="/build/manifest.webmanifest" />
@@ -13,8 +13,8 @@
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<meta name="apple-mobile-web-app-title" content="pictureFrame" />
<script type="module" crossorigin src="/build/assets/index-ClBfMwfs.js"></script>
<meta name="apple-mobile-web-app-title" content="WeVisto" />
<script type="module" crossorigin src="/build/assets/index-CH4aAMxd.js"></script>
<link rel="modulepreload" crossorigin href="/build/assets/_plugin-vue_export-helper-BNDVmFr7.js">
<link rel="stylesheet" crossorigin href="/build/assets/index-BlLBHR1q.css">
</head>
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "pictureFrame",
"short_name": "pictureFrame",
"name": "WeVisto",
"short_name": "WeVisto",
"description": "Manage photos for your e-ink picture frames.",
"id": "/",
"start_url": "/",
@@ -4,7 +4,7 @@
<body style="font-family:system-ui,sans-serif;background:#fdf6ee;margin:0;padding:2rem 1rem">
<div style="max-width:480px;margin:0 auto;background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e8d9c4">
<div style="padding:1.5rem">
<p style="color:#8a7060;font-size:.875rem;margin-bottom:.5rem">pictureFrame</p>
<p style="color:#8a7060;font-size:.875rem;margin-bottom:.5rem">WeVisto</p>
<h1 style="font-size:1.25rem;font-weight:700;color:#3a2e22;margin-bottom:.5rem">{{ sharer.email }} shared a photo with you</h1>
<p style="color:#8a7060;font-size:.875rem;margin-bottom:1.25rem">Add it to your frame or decline — it's up to you.</p>
</div>
+1 -1
View File
@@ -1,4 +1,4 @@
{{ sharer.email }} shared a photo with you on pictureFrame.
{{ sharer.email }} shared a photo with you on WeVisto.
Add to my frame:
{{ absolute_url('/token/' ~ approveToken.uuid ~ '/approve') }}
+2 -2
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Setup help — pictureFrame</title>
<title>Setup help — WeVisto</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
@@ -86,7 +86,7 @@
<body>
<div class="wrap">
<h1>pictureFrame setup help</h1>
<h1>WeVisto setup help</h1>
<p class="lede">Trouble joining your frame to the network, or stuck on a screen? Start here.</p>
<nav class="toc" aria-label="Contents">
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sign in — pictureFrame</title>
<title>Sign in — WeVisto</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Create account — pictureFrame</title>
<title>Create account — WeVisto</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Name your frame — pictureFrame</title>
<title>Name your frame — WeVisto</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: system-ui, sans-serif; min-height: 100dvh; background: #fdf6ee; color: #3a2e22;
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Set up your frame — pictureFrame</title>
<title>Set up your frame — WeVisto</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: system-ui, sans-serif; min-height: 100dvh; background: #fdf6ee; color: #3a2e22;
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Add photo to your frame — pictureFrame</title>
<title>Add photo to your frame — WeVisto</title>
<style>
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,sans-serif;min-height:100dvh;background:#fdf6ee;color:#3a2e22;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem}
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Photo added — pictureFrame</title>
<title>Photo added — WeVisto</title>
<style>
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,sans-serif;min-height:100dvh;background:#fdf6ee;color:#3a2e22;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Decline photo — pictureFrame</title>
<title>Decline photo — WeVisto</title>
<style>
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,sans-serif;min-height:100dvh;background:#fdf6ee;color:#3a2e22;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem}
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Photo declined — pictureFrame</title>
<title>Photo declined — WeVisto</title>
<style>
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,sans-serif;min-height:100dvh;background:#fdf6ee;color:#3a2e22;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Link invalid — pictureFrame</title>
<title>Link invalid — WeVisto</title>
<style>
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,sans-serif;min-height:100dvh;background:#fdf6ee;color:#3a2e22;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}