Skip to content

fix(web): restore original content on all statically generated pages#908

Merged
AchoArnold merged 3 commits into
feat/migrate-nuxt4-vuetify4from
fix/restore-migrated-content
May 30, 2026
Merged

fix(web): restore original content on all statically generated pages#908
AchoArnold merged 3 commits into
feat/migrate-nuxt4-vuetify4from
fix/restore-migrated-content

Conversation

@AchoArnold
Copy link
Copy Markdown
Member

Summary

Restores word-for-word content from the original Nuxt 2/Vuetify 2 version on all statically generated pages, while keeping Vuetify 4 component syntax.

Problem

During the Nuxt 4 + Vuetify 4 migration, blog posts and static pages had their content altered:

  • Titles were simplified/changed
  • Images were removed
  • Warning/info alerts were dropped
  • Code blocks (with JS/Go tabs) were simplified to single-language snippets
  • Internal links (\NuxtLink) were removed or converted to external links
  • Bold text, <code>\ tags, and formatting were lost
  • Meta tags (OG, Twitter) were incomplete
  • Footer elements (BackButton, Divider) were removed

Fix

Compared each page against \�ackup/web-nuxt2-vuetify2\ branch and restored all original content using Vuetify 4 syntax:

Pages Fixed (11 total)

  • Blog posts (7): grant-sms-permissions, e2e-encryption, forward-webhook, excel, csv, python, zapier
  • Blog index: Corrected titles, descriptions, subtitle
  • Homepage: Fixed emoji
  • Privacy policy: Added BackButton + styled contact link
  • Terms and conditions: Added BackButton + styled contact link

What was restored

  • ✅ Original titles (word-for-word)
  • ✅ All images (\VImg\ with /img/blog/\ paths)
  • ✅ Alert boxes (\VAlert\ type=warning/info)
  • ✅ Code blocks with tabbed JS/Go examples (\VTabs/\VTabsWindow)
  • ✅ Internal links (\NuxtLink)
  • ✅ Bold text, <code>\ tags, formatting
  • ✅ Full meta tags (og:title, og:description, og:image, twitter:card, og:url)
  • ✅ Footer (BlogAuthorBio + VDivider + BackButton)

Testing

  • Build passes (\pnpm build\ ✅)

Restore word-for-word content from backup/web-nuxt2-vuetify2 branch while
keeping Vuetify 4 component syntax. Fixes:

- Blog page titles restored to original wording
- Missing images added back (VImg with /img/blog/ paths)
- Missing VAlert warning/info boxes restored
- Code blocks with syntax highlighting restored (including tabbed JS/Go)
- Internal links restored as NuxtLink components
- Bold text, code tags, and formatting preserved
- Meta tags (og:title, og:description, og:image, twitter:card) restored
- BackButton and VDivider footer restored on all pages
- Blog index listing titles and descriptions corrected
- Privacy policy and terms pages: BackButton + styled email link

Pages fixed (11 total):
- 7 blog posts + blog index
- Homepage, privacy policy, terms and conditions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@codacy-production
Copy link
Copy Markdown

codacy-production Bot commented May 30, 2026

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 30, 2026

Greptile Summary

This PR restores word-for-word content lost during the Nuxt 4 / Vuetify 4 migration across 11 pages — including images, alert boxes, tabbed code blocks, internal NuxtLink navigation, full OG/Twitter meta tags, and footer elements — while keeping Vuetify 4 component syntax.

  • Content restoration (7 blog posts + index + homepage + 2 legal pages): Each page now has its original heading, body text, images, and BackButton footer reinstated, with external links converted to NuxtLink where appropriate.
  • Meta tag improvements: Six blog posts received complete og:title, og:description, og:image, twitter:card, and og:url tags that were missing after the migration.
  • Tabbed code examples: The E2E-encryption post introduces VTabs/VTabsWindow with JS and Go tabs, but a single shared selectedTab ref controls all three independent tab groups simultaneously.

Confidence Score: 3/5

Several copy-paste errors introduced incorrect meta descriptions and a shared tab state bug that affects user-facing behavior on the encryption post.

Three pages carry wrong og:description content clearly copied from different articles, affecting SEO and social sharing immediately on merge. The E2E encryption post single selectedTab ref controls three independent language-tab groups at once. The blog index also has tool-name typos.

blog/index.vue, grant-send-and-read-sms-permissions-on-android.vue, how-to-send-sms-messages-from-excel.vue, and end-to-end-encryption-to-sms-messages.vue all need a closer look before merging.

Important Files Changed

Filename Overview
web/app/pages/blog/end-to-end-encryption-to-sms-messages.vue Restored full content with images, VTabs JS/Go code blocks, and footer — but a single selectedTab ref is shared across all three tab groups, causing all sections to switch language simultaneously.
web/app/pages/blog/grant-send-and-read-sms-permissions-on-android.vue Restored content with images and warning alert — but og:description is incorrectly copied from the encryption article, and read-time prop uses kebab-case instead of readTime.
web/app/pages/blog/how-to-send-sms-messages-from-excel.vue Restored content with images and alerts — but og:description is incorrectly copied from the Python article, and the article contains two sections both labeled "Step 3".
web/app/pages/blog/index.vue Updated article titles and descriptions — but the SMS-permissions article was given the identical description as the encryption article, and the forward-webhook description contains typos.
web/app/pages/blog/send-bulk-sms-from-csv-file-with-no-code.vue Restored full content with images, alerts, and footer — contains duplicate "Step 3" headings.
web/app/pages/blog/forward-incoming-sms-from-phone-to-webhook.vue Restored original title, header image, step-by-step content with screenshots, and footer elements — no issues found.
web/app/pages/blog/send-sms-from-android-phone-with-python.vue Restored header image, full og meta tags, expanded step content with alerts and screenshots, and footer — no issues found.
web/app/pages/blog/send-sms-when-new-row-is-added-to-google-sheets-using-zapier.vue Restored full content with images, info alerts, updated Zapier action payload, and footer — no issues found.
web/app/pages/index.vue Single emoji change in the homepage trust badge — no issues.
web/app/pages/privacy-policy/index.vue Added bold styling to contact email link and appended BackButton + VDivider footer — no issues found.
web/app/pages/terms-and-conditions/index.vue Added bold styling to contact email link and appended BackButton + VDivider footer — no issues found.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[blog/index.vue] --> B[grant-sms-permissions.vue
 wrong og:description
 wrong card description
 read-time prop]
    A --> C[end-to-end-encryption.vue
 shared selectedTab ref
across 3 VTabs groups]
    A --> D[how-to-send-sms-from-excel.vue
 wrong og:description
 duplicate Step 3]
    A --> E[send-bulk-sms-from-csv.vue
 duplicate Step 3]
    A --> F[forward-sms-to-webhook.vue - clean]
    A --> G[send-sms-with-python.vue - clean]
    A --> H[zapier-google-sheets.vue - clean]
Loading

Comments Outside Diff (3)

  1. web/app/pages/blog/grant-send-and-read-sms-permissions-on-android.vue, line 578-582 (link)

    P1 Wrong og:description copied from the encryption page

    The og:description content here reads "We have added support for end-to-end encryption for SMS messages so that no one can see the content of the messages you send using httpSMS except you." — this is the description from end-to-end-encryption-to-sms-messages.vue, not from the SMS permissions guide. Search engines and social cards will show entirely unrelated copy for this page.

  2. web/app/pages/blog/how-to-send-sms-messages-from-excel.vue, line 711-714 (link)

    P1 Wrong og:description copied from the Python article

    The og:description content reads "Configure your Android phone as an SMS gateway to automate sending text messages with the Python programing language." — this is the description for the Python blog post, not the Excel one. Social sharing and SEO for this page will surface the wrong article description.

  3. web/app/pages/blog/index.vue, line 928-931 (link)

    P1 Wrong description for the SMS-permissions article

    Both grant-send-and-read-sms-permissions-on-android and end-to-end-encryption-to-sms-messages now share the identical description: "Take control of your privacy by encrypting your SMS messages end-to-end. Safeguard your messages from prying eyes, ensuring absolute confidentiality." The SMS-permissions card on the blog index will display encryption copy, confusing visitors before they even open the article.

Reviews (1): Last reviewed commit: "fix(web): restore original content on al..." | Re-trigger Greptile


useHead({
title: "End-to-End Encryption to SMS Messages - httpSMS",
title:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Single selectedTab ref shared across all three VTabs sections

The single selectedTab ref is bound to three independent VTabs/VTabsWindow groups (encrypt, send, receive). Switching to "Go" in the Encrypt section will simultaneously flip the language tab in the Send and Receive sections too, and vice versa. Each tab group should have its own reactive ref (e.g. encryptTab, sendTab, receiveTab).

Comment thread web/app/pages/blog/index.vue Outdated
"Forward a text message (SMS) from an Android phone into your webhook",
description:
"Program your android phone to forward messages received on your phone to your server and trigger powerful automations.",
"Program your android phone to forward messages received on your phone to your server and trigger powerful automations with tools like zapper and IFTTFT.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Typos in the forward-incoming-sms card description

"zapper" should be "Zapier" and "IFTTFT" should be "IFTTT". Both are tool names and need to be spelled correctly.

Suggested change
"Program your android phone to forward messages received on your phone to your server and trigger powerful automations with tools like zapper and IFTTFT.",
"Program your android phone to forward messages received on your phone to your server and trigger powerful automations with tools like Zapier and IFTTT.",

<h1 class="text-h3 text-md-h2 mt-1">
How to grant SMS permissions on Android 15+
</h1>
<BlogInfo date="February 18, 2025" read-time="5 min read" />
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 read-time kebab-case prop doesn't match the readTime camelCase used on every other blog page

All other blog posts in this PR use readTime="…". If BlogInfo only accepts readTime, the read-time value will be silently ignored on this page and the read time will not be displayed.

Suggested change
<BlogInfo date="February 18, 2025" read-time="5 min read" />
<BlogInfo date="February 18, 2025" readTime="5 min read" />


<h2 class="text-headline-medium mb-4">Send your SMS messages</h2>
<p class="text-body-large mb-6">
<h3 class="text-h4 mt-12">Step 3: Send the SMS Messages</h3>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Duplicate "Step 3" heading

There are two sections labeled "Step 3" in this article ("Step 3: Edit your Excel file" and "Step 3: Send the SMS Messages"). The second one should be "Step 4".

Suggested change
<h3 class="text-h4 mt-12">Step 3: Send the SMS Messages</h3>
<h3 class="text-h4 mt-12">Step 4: Send the SMS Messages</h3>


<h2 class="text-headline-medium mb-4">Send your SMS messages</h2>
<p class="text-body-large mb-6">
<h3 class="text-h4 mt-12">Step 3: Send the SMS Messages</h3>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Duplicate "Step 3" heading

Both "Step 3: Edit your CSV file" and "Step 3: Send the SMS Messages" exist in the same article. The send step should be "Step 4" to maintain a coherent numbered guide.

Suggested change
<h3 class="text-h4 mt-12">Step 3: Send the SMS Messages</h3>
<h3 class="text-h4 mt-12">Step 4: Send the SMS Messages</h3>

AchoArnold and others added 2 commits May 30, 2026 14:23
Replace Vuetify 2 typography classes with Material Design 3 equivalents:
- text-h3/text-md-h2 → text-display-small/text-display-medium (responsive via useDisplay)
- text-h4 → text-headline-large
- text-subtitle-1 → text-body-large

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix shared selectedTab ref in e2e encryption page (split into encryptTab,
  sendTab, receiveTab so tab groups are independent)
- Fix wrong og:description on grant-sms-permissions page (was copied from
  encryption article)
- Fix wrong og:description on excel page (was copied from python article)
- Fix read-time prop to readTime (camelCase) on grant-sms page
- Fix duplicate 'Step 3' headings in excel and CSV pages (second is now Step 4)
- Fix typos in blog index: 'zapper' → 'Zapier', 'IFTTFT' → 'IFTTT'
- Fix wrong description for SMS permissions article in blog index

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@AchoArnold AchoArnold merged commit 8b64bea into feat/migrate-nuxt4-vuetify4 May 30, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant