Feature/astro landing migration - #363
Conversation
…zation error in MagicBento
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
🚧 Files skipped from review as they are similar to previous changes (4)
📝 WalkthroughWalkthroughChangesLanding application
Estimated code review effort: 5 (Critical) | ~120 minutes Sequence Diagram(s)sequenceDiagram
participant Browser
participant IndexPage
participant AstroLayout
participant InteractiveComponents
participant FAQScript
Browser->>IndexPage: request landing route
IndexPage->>AstroLayout: render page content and metadata
AstroLayout-->>Browser: return HTML and styles
Browser->>InteractiveComponents: hydrate visual widgets
InteractiveComponents-->>Browser: render animations and interactions
Browser->>FAQScript: click FAQ question
FAQScript-->>Browser: toggle answer and chevron state
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Nitpick comments (9)
apps/landing/src/components/MagicBento/MagicBento.jsx (1)
12-49: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove unused
cardData. This array is never referenced; the component renders(cards || APP_SERVICES). It's dead code that also duplicates the descriptions already inservices.jsx, so it can drift out of sync.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/landing/src/components/MagicBento/MagicBento.jsx` around lines 12 - 49, Remove the unused cardData array from MagicBento.jsx, leaving the component’s existing (cards || APP_SERVICES) rendering path unchanged and relying on the service definitions in services.jsx.apps/landing/src/styles/landing.css (1)
107-107: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy liftThese new styles trip several configured stylelint rules and will fail the lint job. Notable violations flagged across the file: keyframe names not kebab-case (e.g.
pulseGlowhere, plusfadeInUp,orbitMove,byomParticle,loaderDotBounce, etc.),declaration-empty-line-before(lines 15, 503, 517, 524, 1671, 1680, 1689, 4038), quotes around theInterfont family (line 9), and the::-moz-selectionvendor-prefixed selector (line 46). Please align these to the project's stylelint config (rename keyframes/references together, drop the font quotes, and either disable or remove the moz selector) so CI stays green.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/landing/src/styles/landing.css` at line 107, Update the styles in landing.css to satisfy the configured stylelint rules: rename all camelCase keyframes, including pulseGlow, to kebab-case and update every corresponding animation reference; remove unnecessary quotes around the Inter font family; fix the flagged declaration-empty-line-before violations; and remove or explicitly disable the ::-moz-selection vendor-prefixed selector.Source: Linters/SAST tools
apps/landing/src/pages/pricing.astro (1)
35-38: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winConsider passing
canonicalUrltoBaseLayoutfor this route.
BaseLayoutsupports an optionalcanonicalUrlprop but it's omitted here, so no canonical link is emitted for/pricing. Given this migration's SEO goal, setting it explicitly would help avoid duplicate-content ambiguity.🔍 Proposed addition
<BaseLayout title="urBackend | Pricing" description="Simple pricing for every stage. Start for free." + canonicalUrl="https://urbackend.bitbros.in/pricing" >🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/landing/src/pages/pricing.astro` around lines 35 - 38, Update the BaseLayout invocation in the pricing page to explicitly provide the route’s canonicalUrl for /pricing, using the project’s established canonical URL format. Keep the existing title and description unchanged.apps/landing/src/components/Footer.astro (1)
3-3: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winHardcoded personal email as public contact channel.
The public
mailto:link is tied to a named individual's personal Gmail address baked into source. Consider a config/env value (or a company-domain alias) so the contact channel isn't coupled to one person's personal account and can be rotated without a code change.Also applies to: 51-51
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/landing/src/components/Footer.astro` at line 3, Update the ADMIN_EMAIL constant in Footer.astro to use a configurable contact value or a company-domain alias instead of the hardcoded personal Gmail address, and ensure the public mailto link continues using that value. Keep the existing footer behavior while allowing the contact channel to be rotated without changing source code.apps/landing/src/components/Navbar.astro (1)
4-9: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winMobile menu duplicates
NAV_ITEMSinstead of reusing it.The mobile overlay (lines 51-59) hardcodes the same labels/hrefs already defined in
NAV_ITEMS(lines 4-9). Deriving the mobile links fromNAV_ITEMSavoids drift when nav items change.Also applies to: 51-59
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/landing/src/components/Navbar.astro` around lines 4 - 9, Update the mobile overlay rendering to iterate over the existing NAV_ITEMS collection instead of hardcoding duplicate labels and hrefs, preserving each item's icon and external-link behavior. Keep the desktop navigation unchanged and ensure all current mobile entries remain covered through the shared data.apps/landing/README.md (2)
1-26: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winReplace the untouched starter README.
This still calls the project “Astro Starter Kit: Minimal,” tells maintainers to delete the file, and documents a minimal structure that omits the actual landing routes, components, and configuration. Replace it with urBackend-specific setup, structure, and deployment guidance.
Also applies to: 41-43
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/landing/README.md` around lines 1 - 26, Replace the starter content in the README with urBackend-specific documentation covering project setup, the actual landing routes and components, relevant configuration, and deployment guidance; remove the Astro Starter Kit branding, deletion prompt, and inaccurate minimal project structure.
32-39: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDocument the required background development workflow.
The README points contributors to
npm run dev, while the project workflow requires a background server managed withastro dev stop,astro dev status, andastro dev logs. Make the documented command and lifecycle consistent with the supported Astro version. (docs.astro.build)Based on learnings, Astro development servers must use background mode.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/landing/README.md` around lines 32 - 39, Update the command table in the README to document the required background Astro development workflow instead of foreground-only `npm run dev`. Include the supported commands for starting the background server and managing it with `astro dev stop`, `astro dev status`, and `astro dev logs`, using syntax compatible with the project’s Astro version.Source: Learnings
apps/landing/package.json (1)
9-9: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winMake the default dev script follow the required lifecycle.
npm run devcurrently starts foregroundastro dev, soastro dev stop/status/logscannot manage it. Update this script to the supported background command after resolving the Astro version mismatch, or document a different supported workflow. (docs.astro.build)Based on learnings, Astro development servers must use background mode.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/landing/package.json` at line 9, Update the package’s dev script from foreground `astro dev` to Astro’s supported background-mode command so `astro dev stop/status/logs` can manage the server, after resolving any Astro version mismatch; alternatively document a supported workflow if background mode cannot be used.Source: Learnings
apps/landing/src/layouts/Base.astro (1)
37-44: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winEscape dynamic JSON-LD before using
set:html.Astro does not escape
set:html, andJSON.stringifyleaves<unchanged. Ifdescriptioncan ever contain non-source-controlled content, a value containing</script>can terminate this block. Verify that all callers are trusted; otherwise escape<to\u003cbefore injection. (docs.astro.build)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/landing/src/layouts/Base.astro` around lines 37 - 44, Update the JSON-LD generation in the Base layout’s application schema to escape dynamic content before passing it to set:html. Ensure serialized JSON replaces every “<” character with the safe \u003c escape, while preserving the existing schema fields and output for trusted values.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/landing/CLAUDE.md`:
- Around line 5-7: Align the landing app’s dev-server workflow with the selected
Astro version by using the supported foreground command rather than
--background. Update apps/landing/CLAUDE.md lines 5-7, apps/landing/package.json
line 9, and apps/landing/README.md lines 32-39 so the documented command, npm
script, and README instructions consistently use the same foreground lifecycle;
apps/landing/AGENTS.md is also cited by the comment and must be updated to
match.
In `@apps/landing/package.json`:
- Line 6: Align the CI/toolchain Node version with the engine and dependency
requirements by updating the relevant CI configuration to Node 22.22.1 or newer,
while preserving the package engine declaration in apps/landing/package.json.
Alternatively, consistently pin dependency and engine versions that support the
existing Node 20.20.2 toolchain.
In `@apps/landing/src/components/Footer.astro`:
- Around line 25-34: Wire the newsletter subscription controls in the Footer
component so the CTA has explicit behavior instead of doing nothing. Add the
minimal user-facing handling around the email input and “Subscribe to
newsletter” button—such as a disabled/coming-soon state or a real submit
handler—and ensure the button’s behavior matches that state.
In `@apps/landing/src/components/Navbar.astro`:
- Around line 22-34: Update the NAV_ITEMS mapping so each item’s icon is
assigned to a capitalized local component variable before rendering. Replace
both <item.icon /> usages in the external and internal link branches with that
variable, preserving the existing icon size and navigation behavior.
In `@apps/landing/src/pages/index.astro`:
- Line 151: Use kebab-case CSS property names in the literal style attributes in
apps/landing/src/pages/index.astro: change zIndex to z-index at lines 151-151
and borderRadius to border-radius at lines 309-309.
---
Nitpick comments:
In `@apps/landing/package.json`:
- Line 9: Update the package’s dev script from foreground `astro dev` to Astro’s
supported background-mode command so `astro dev stop/status/logs` can manage the
server, after resolving any Astro version mismatch; alternatively document a
supported workflow if background mode cannot be used.
In `@apps/landing/README.md`:
- Around line 1-26: Replace the starter content in the README with
urBackend-specific documentation covering project setup, the actual landing
routes and components, relevant configuration, and deployment guidance; remove
the Astro Starter Kit branding, deletion prompt, and inaccurate minimal project
structure.
- Around line 32-39: Update the command table in the README to document the
required background Astro development workflow instead of foreground-only `npm
run dev`. Include the supported commands for starting the background server and
managing it with `astro dev stop`, `astro dev status`, and `astro dev logs`,
using syntax compatible with the project’s Astro version.
In `@apps/landing/src/components/Footer.astro`:
- Line 3: Update the ADMIN_EMAIL constant in Footer.astro to use a configurable
contact value or a company-domain alias instead of the hardcoded personal Gmail
address, and ensure the public mailto link continues using that value. Keep the
existing footer behavior while allowing the contact channel to be rotated
without changing source code.
In `@apps/landing/src/components/MagicBento/MagicBento.jsx`:
- Around line 12-49: Remove the unused cardData array from MagicBento.jsx,
leaving the component’s existing (cards || APP_SERVICES) rendering path
unchanged and relying on the service definitions in services.jsx.
In `@apps/landing/src/components/Navbar.astro`:
- Around line 4-9: Update the mobile overlay rendering to iterate over the
existing NAV_ITEMS collection instead of hardcoding duplicate labels and hrefs,
preserving each item's icon and external-link behavior. Keep the desktop
navigation unchanged and ensure all current mobile entries remain covered
through the shared data.
In `@apps/landing/src/layouts/Base.astro`:
- Around line 37-44: Update the JSON-LD generation in the Base layout’s
application schema to escape dynamic content before passing it to set:html.
Ensure serialized JSON replaces every “<” character with the safe \u003c escape,
while preserving the existing schema fields and output for trusted values.
In `@apps/landing/src/pages/pricing.astro`:
- Around line 35-38: Update the BaseLayout invocation in the pricing page to
explicitly provide the route’s canonicalUrl for /pricing, using the project’s
established canonical URL format. Keep the existing title and description
unchanged.
In `@apps/landing/src/styles/landing.css`:
- Line 107: Update the styles in landing.css to satisfy the configured stylelint
rules: rename all camelCase keyframes, including pulseGlow, to kebab-case and
update every corresponding animation reference; remove unnecessary quotes around
the Inter font family; fix the flagged declaration-empty-line-before violations;
and remove or explicitly disable the ::-moz-selection vendor-prefixed selector.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 40f9dacc-5c38-45d6-aa9f-665a9322b498
⛔ Files ignored due to path filters (4)
apps/landing/public/LOGO_SQ.pngis excluded by!**/*.pngapps/landing/public/favicon.icois excluded by!**/*.icoapps/landing/public/favicon.svgis excluded by!**/*.svgapps/landing/public/logo.pngis excluded by!**/*.png
📒 Files selected for processing (25)
apps/landing/.gitignoreapps/landing/.vscode/extensions.jsonapps/landing/.vscode/launch.jsonapps/landing/AGENTS.mdapps/landing/CLAUDE.mdapps/landing/README.mdapps/landing/astro.config.mjsapps/landing/package.jsonapps/landing/public/robots.txtapps/landing/src/components/BorderGlow/BorderGlow.cssapps/landing/src/components/BorderGlow/BorderGlow.jsxapps/landing/src/components/Footer.astroapps/landing/src/components/Hyperspeed/Hyperspeed.cssapps/landing/src/components/Hyperspeed/Hyperspeed.jsxapps/landing/src/components/MagicBento/MagicBento.cssapps/landing/src/components/MagicBento/MagicBento.jsxapps/landing/src/components/Navbar.astroapps/landing/src/components/OrbitSection.jsxapps/landing/src/components/StudioReplay.jsxapps/landing/src/data/services.jsxapps/landing/src/layouts/Base.astroapps/landing/src/pages/index.astroapps/landing/src/pages/pricing.astroapps/landing/src/styles/landing.cssapps/landing/tsconfig.json
…n, newsletter interactiveness, and documentation
Landing Page from react to Astro for SEO
Summary by CodeRabbit