Skip to content

feat(docs): OG cover layer (paper cards on Workers image origin) - #4

Merged
0froq merged 3 commits into
mainfrom
cursor/og-covers-layer-3604
Oct 14, 2026
Merged

0froq merged 3 commits into
mainfrom
cursor/og-covers-layer-3604

Conversation

@0froq

@0froq 0froq commented Oct 14, 2026

Copy link
Copy Markdown
Owner

Summary

Adopts the shared 0froq/og-layer Nuxt layer (v0.1.0, @froq/og-covers-layer) on the docs site only, matching how void@7bab868 wires it:

  • extends: [['github:0froq/og-layer#v0.1.0', { install: true }]]
  • "@froq/og-covers-layer": "github:0froq/og-layer#v0.1.0"
  • app.config ogCovers (paper palette + froQ watermark)
  • Content schema + countCardWords hook; cover precedence via layer helpers
  • defineOgImage('Paper', …) on Content routes and on Vue routes (components, home, etc.) from page titles
  • og:url → https://ui.froq.me; og:image → absolute on https://ui.sayhola.workers.dev (X-safe)
  • Site-wide public/og.png remains the fallback when share meta owns the image

Other changes

  • Nuxt 4.6.1 (catalog) so nuxt-og-image v7 is not disabled on 4.5.x
  • Removed docs postinstall: nuxt prepare — with install: true on the layer, pnpm workspace installs recurse infinitely; nuxt generate still runs prepare

Verification

  • WORKERS_CI=1 NODE_ENV=production pnpm generate — exit 0, no credentials
  • Sample meta (from dist/ HTML):
    • / — og:url https://ui.froq.me, og:image https://ui.sayhola.workers.dev/_og/s/o_f43143daf0254033.png
    • /docs/install — og:url https://ui.froq.me/docs/install, og:image https://ui.sayhola.workers.dev/_og/s/o_10cbceb51aa2e165.png
    • /components/button/button — og:url https://ui.froq.me/components/button/button, og:image https://ui.sayhola.workers.dev/_og/s/o_217875c6f2e6b60a.png

OG card: home
OG card: docs install

Deploy pipeline unchanged (Workers Builds / cf deploy); no wrangler changes.

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

Wire the shared OG layer (v0.1.0) like void: Nuxt extends, github
dependency, ogCovers app config, and cover precedence for Content routes.
Non-content pages get Paper cards from page titles; og:url stays on
ui.froq.me while og:image is absolute on ui.sayhola.workers.dev.

Bump Nuxt to 4.6.1 for nuxt-og-image v7 compatibility and drop docs
postinstall to avoid a pnpm workspace loop with layer install:true.

Co-authored-by: froQ <sayhola@froq.me>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Failed ❌

View logs ↗
dfe986d 2026-10-14T11:41:50.424Z View logs ↗

cursoragent and others added 2 commits October 14, 2026 15:43
eslint --fix had moved docs to catalog: without regenerating pnpm-lock,
which broke frozen-lockfile on GitHub Actions and Workers Builds.

Co-authored-by: froQ <sayhola@froq.me>
Without postinstall, CI lint needs generated .nuxt/eslint.config.mjs.

Co-authored-by: froQ <sayhola@froq.me>
@0froq
0froq merged commit 84dc56d into main Oct 14, 2026
1 check passed
0froq added a commit that referenced this pull request Oct 15, 2026
PR #4 moved nuxt back into docs dependencies. cf deploy at the monorepo
root then runs `pnpm nuxt build`, but nuxt is not on the root PATH.
Restore the peerDependency pattern from #2 so generate stays in docs and
cf bundles ./dist via Wrangler after Workers Build runs pnpm generate.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
0froq added a commit that referenced this pull request Oct 19, 2026
feat(ui): share paper signature and node selector
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.

2 participants