feat(site): add services and contact sections to homepage#754
Conversation
Add a Services section (audit, implementation, support and migration) with a Netlify-backed contact form so teams can reach out. Also add a light/dark theme toggle, a responsive nav with a mobile menu, and center the section links on desktop.
✅ Deploy Preview for devsydev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for images-devsy-sh canceled.
|
|
Warning Review limit reached
Next review available in: 54 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe landing page adds light/dark theme detection and persistence, responsive mobile navigation, a theme toggle, revised theme-aware styling, expanded Services and Contact sections, updated copy, and revised footer links. ChangesLanding page experience
Sequence Diagram(s)sequenceDiagram
participant Visitor
participant NavigationDOM
participant localStorage
participant SystemPreference
Visitor->>NavigationDOM: Open mobile navigation
NavigationDOM->>NavigationDOM: Toggle nav-menu and aria-expanded
Visitor->>NavigationDOM: Select theme toggle
NavigationDOM->>localStorage: Store selected theme
NavigationDOM->>NavigationDOM: Update data-theme and button labels
NavigationDOM->>SystemPreference: Read preferred color scheme when no stored theme exists
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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: 1
🧹 Nitpick comments (2)
sites/docs-devsy-sh/public/index.html (2)
1261-1276: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd
autocompletehints to the contact fields.Browsers can autofill these reliably with explicit tokens.
♻️ Proposed change
- <input id="name" type="text" name="name" required /> + <input id="name" type="text" name="name" autocomplete="name" required /> @@ - <input id="email" type="email" name="email" required /> + <input id="email" type="email" name="email" autocomplete="email" required /> @@ - <input id="company" type="text" name="company" /> + <input id="company" type="text" name="company" autocomplete="organization" />🤖 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 `@sites/docs-devsy-sh/public/index.html` around lines 1261 - 1276, Add explicit autocomplete tokens to the contact form fields: use name for the Name input, email for the Work email input, and organization for the optional Company input. Update only the inputs identified by their name attributes and preserve their existing required and optional behavior.
1363-1379: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueMenu state isn't reset when crossing the desktop breakpoint.
Opening the menu below 992px and resizing up leaves
.openset andaria-expanded="true"on a hidden hamburger; resizing back down re-reveals the menu unexpectedly. AmatchMedialistener that clears the state fixes both.♻️ Proposed change
menu.querySelectorAll("a").forEach(function (link) { link.addEventListener("click", function () { menu.classList.remove("open"); toggle.setAttribute("aria-expanded", "false"); }); }); + var desktop = window.matchMedia("(min-width: 992px)"); + desktop.addEventListener("change", function (e) { + if (e.matches) { + menu.classList.remove("open"); + toggle.setAttribute("aria-expanded", "false"); + } + }); }🤖 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 `@sites/docs-devsy-sh/public/index.html` around lines 1363 - 1379, Update the mobile navigation initialization around toggle, menu, and the existing click handlers to watch the desktop breakpoint via matchMedia. When the viewport crosses to 992px or wider, remove the menu’s open class and reset toggle’s aria-expanded to false, preventing stale state when returning to mobile.
🤖 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 `@sites/docs-devsy-sh/public/index.html`:
- Line 1177: Standardize the service-card headings to sentence case by updating
“Dev Environment Audit” and the corresponding headings at the other referenced
locations to match sibling titles such as “Implementation and rollout.”
---
Nitpick comments:
In `@sites/docs-devsy-sh/public/index.html`:
- Around line 1261-1276: Add explicit autocomplete tokens to the contact form
fields: use name for the Name input, email for the Work email input, and
organization for the optional Company input. Update only the inputs identified
by their name attributes and preserve their existing required and optional
behavior.
- Around line 1363-1379: Update the mobile navigation initialization around
toggle, menu, and the existing click handlers to watch the desktop breakpoint
via matchMedia. When the viewport crosses to 992px or wider, remove the menu’s
open class and reset toggle’s aria-expanded to false, preventing stale state
when returning to mobile.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 535e78fb-bea6-4bd4-bd75-62564087e68f
📒 Files selected for processing (1)
sites/docs-devsy-sh/public/index.html
Use sentence case for the audit service heading, add autocomplete tokens to the contact fields, and reset the mobile menu state when the viewport crosses the desktop breakpoint.
Adds a Services section to the marketing homepage and a way for teams to reach out.
What's included
#services): Dev Environment Audit, Implementation and Rollout, Support and Migration, with a nav link and footer link.#contact): a Netlify Forms contact form (name, work email, company, message) with a honeypot. No backend required.Follow-up (not code)
Enable email notifications in the Netlify dashboard (Forms → Settings & notifications) so form submissions are emailed. Submissions are captured regardless.
Summary by CodeRabbit
New Features
Style