Add PR Agent landing page - #60
Conversation
- Add static Next.js marketing site under site/ - Add SEO/GEO content with FAQ and competitor comparison - Add custom OG image generator and pnpm workspace integration - Add MIT LICENSE and CI site build job
PR Agent ReviewNote This PR adds a Next.js static landing page site for PR Agent (under
|
There was a problem hiding this comment.
Note
Full review is in the PR conversation. Expand below to copy fixes for your coding agent.
Fix all findings (agent prompt)
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate.
Repository: prathamdby/pr-agent
Pull request: #60
Head SHA: effa14dad4ce4e1204d6631d34785d3191175453
Findings:
[P1] @site/public/sitemap.xml line 4
Replace the relative `<loc>/</loc>` with an absolute URL including the deployed domain, or add a site URL constant and use it here. E.g., `<loc>https://pr-agent.example.com/</loc>`.
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> | ||
| <url> | ||
| <loc>/</loc> |
There was a problem hiding this comment.
P1 · Sitemap contains a relative URL — will be ignored by search engines
site/public/sitemap.xml · line 4
The sitemaps.org protocol requires absolute URLs in <loc> elements (e.g., https://example.com/). The current value </loc> is a relative path. Search engines will reject or silently ignore this sitemap entry because they cannot resolve the relative URL against a canonical domain — the site has no canonical URL configured in the sitemap or Next.js metadata. This means the landing page will not be properly indexed via the sitemap.
Prompt to fix
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate.
Repository: prathamdby/pr-agent
Pull request: #60
Head SHA: effa14dad4ce4e1204d6631d34785d3191175453
[P1] @site/public/sitemap.xml line 4
Replace the relative `<loc>/</loc>` with an absolute URL including the deployed domain, or add a site URL constant and use it here. E.g., `<loc>https://pr-agent.example.com/</loc>`.
- Add deployment config with custom build steps - Replace static robots.txt and sitemap.xml with dynamic Next.js routes - Add SITE_ORIGIN resolution for production and preview URLs - Fix OG image script to preserve logo aspect ratio - Fix next-env.d.ts type reference path - Move engines field in package.json for consistency - Apply code formatting across site components and styles
There was a problem hiding this comment.
Fix all findings (agent prompt)
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate.
Repository: prathamdby/pr-agent
Pull request: #60
Head SHA: b0806c4090c5c5f35e006828bf5a4e91672c5cb1
Findings:
[P1] @site/app/layout.tsx line 7
Add `metadataBase: new URL(SITE_ORIGIN)` to the metadata export so that relative image paths in openGraph and twitter are resolved to absolute URLs.
[P2] @site/app/layout.tsx line 7
Add `alternates: { canonical: '/' }` and `url: SITE_ORIGIN` to the `openGraph` object in the metadata export.
|
|
||
| export const metadata: Metadata = { | ||
| title: { | ||
| default: SEO_TITLE, |
There was a problem hiding this comment.
P1 · Missing metadataBase breaks OG/Twitter image URLs
site/app/layout.tsx · line 7
The metadata export in layout.tsx uses relative paths for openGraph.images (line 37: "/og-image.png") and twitter.images (line 46: ["/og-image.png"]). Next.js requires either absolute URLs or a metadataBase to resolve these to fully-qualified URLs. Without metadataBase, the generated Open Graph and Twitter card <meta> tags will contain relative image URLs (e.g. og:image will be /og-image.png instead of https://example.com/og-image.png), causing social sharing previews to display broken images. Additionally, per Next.js docs, this may cause a build error in some versions. The SITE_ORIGIN value from site/lib/site.ts should be used as metadataBase.
Prompt to fix
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate.
Repository: prathamdby/pr-agent
Pull request: #60
Head SHA: b0806c4090c5c5f35e006828bf5a4e91672c5cb1
[P1] @site/app/layout.tsx line 7
Add `metadataBase: new URL(SITE_ORIGIN)` to the metadata export so that relative image paths in openGraph and twitter are resolved to absolute URLs.
|
|
||
| export const metadata: Metadata = { | ||
| title: { | ||
| default: SEO_TITLE, |
There was a problem hiding this comment.
P2 · Missing canonical URL and openGraph.url metadata
site/app/layout.tsx · line 7
The layout metadata does not set metadata.alternates.canonical or openGraph.url. Without a canonical URL, search engines may not correctly associate the landing page with its canonical origin, and the og:url meta tag will be omitted from social sharing cards. This reduces SEO effectiveness. The SITE_ORIGIN constant from @/lib/site should be wired into both fields.
Prompt to fix
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate.
Repository: prathamdby/pr-agent
Pull request: #60
Head SHA: b0806c4090c5c5f35e006828bf5a4e91672c5cb1
[P2] @site/app/layout.tsx line 7
Add `alternates: { canonical: '/' }` and `url: SITE_ORIGIN` to the `openGraph` object in the metadata export.
Summary
site/with hero, features, screenshots, quickstart, and competitor comparisonsite/into pnpm workspace with rootsite:*scripts and a CI build jobTest plan
pnpm run site:buildsucceedssitejob passespnpm run site:dev)PR Agent Description
PR Type
Enhancement, Documentation
Description
site/with Tailwind CSS v4site:dev,site:build,site:generate-og) and CI jobsiteas pnpm workspace member and add MIT LICENSEChanges Diagram
File Walkthrough
Enhancement (19 files)
Landing page entry point
site/app/page.tsxHero section with CTA
site/components/hero.tsxHow AI code review works
site/components/features.tsxGitHub PR review features list
site/components/capabilities.tsxScreenshot gallery of slash commands
site/components/gallery.tsxAI model provider options
site/components/providers.tsxComparison table vs competitors
site/components/alternatives.tsxFAQ section from SEO data
site/components/faq.tsxDocker Compose deployment guide
site/components/quickstart.tsxSEO constants and JSON-LD graph data
site/lib/seo.tsShared site URLs
site/lib/site.tsStructured data injection
site/components/json-ld.tsxRoot layout with full SEO metadata
site/app/layout.tsxStatic export configuration
site/next.config.tsOG image generator script
site/scripts/generate-og-image.mjsRoot scripts for site workflows
package.jsonCI job for site build
.github/workflows/ci.ymlAdd site to pnpm workspace
pnpm-workspace.yamlIgnore site build outputs
.gitignoreDocumentation (1 file)
MIT License file
LICENSE