Skip to content

feat: DR-7743 startups page#7713

Merged
mhartington merged 4 commits intomainfrom
dr-7743-startups
Apr 1, 2026
Merged

feat: DR-7743 startups page#7713
mhartington merged 4 commits intomainfrom
dr-7743-startups

Conversation

@AmanVarshney01
Copy link
Copy Markdown
Member

@AmanVarshney01 AmanVarshney01 commented Mar 26, 2026

Summary by CodeRabbit

  • New Features

    • Launched a "Startup Program" landing page with benefits, eligibility details, testimonials, and page metadata (title/description).
    • Added a prominent hero with call-to-action buttons linking to the in-page contact anchor and a related blog post.
    • Included an embedded application form anchored under a "Contact Us" section.
    • Added a client-side Tally embed to load and render the external application form.
  • Chores

    • Updated image handling to allow loading remote images from cdn.sanity.io.

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
blog Ready Ready Preview, Comment Apr 1, 2026 0:57am
docs Ready Ready Preview, Comment Apr 1, 2026 0:57am
eclipse Ready Ready Preview, Comment Apr 1, 2026 0:57am
site Ready Ready Preview, Comment Apr 1, 2026 0:57am

Request Review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 26, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0043be6b-aa63-4498-8446-0ccb986eae15

📥 Commits

Reviewing files that changed from the base of the PR and between 671574f and f817c44.

📒 Files selected for processing (3)
  • apps/site/next.config.mjs
  • apps/site/src/app/startups/_components/tally-embed.tsx
  • apps/site/src/app/startups/page.tsx
✅ Files skipped from review due to trivial changes (2)
  • apps/site/src/app/startups/_components/tally-embed.tsx
  • apps/site/src/app/startups/page.tsx

Walkthrough

Adds a client-only TallyEmbed React component that injects Tally’s loader and renders an embed iframe. Adds a new Next.js app route StartupsPage (exports metadata) implementing a startup program landing page and embeds the Tally form. Updates Next.js image config to allow cdn.sanity.io.

Changes

Cohort / File(s) Summary
Tally Form Component
apps/site/src/app/startups/_components/tally-embed.tsx
New client-only React component. Renders a Tally iframe with preset query params, lazy loads Tally’s external widget script via next/script, and calls window.Tally?.loadEmbeds() on script load.
Startup Program Page
apps/site/src/app/startups/page.tsx
New Next.js app route exporting metadata and default StartupsPage. Implements hero/CTA, benefits cards, eligibility lists, testimonials grid (uses next/image), info callout, and embeds TallyEmbed in the #contact-us section.
Next.js Image Config
apps/site/next.config.mjs
Updated images config to keep unoptimized: true and add remotePatterns allowing https://cdn.sanity.io remote images.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: a new startups landing page (DR-7743) with supporting components and configuration.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@argos-ci
Copy link
Copy Markdown

argos-ci bot commented Mar 26, 2026

The latest updates on your projects. Learn more about Argos notifications ↗︎

Build Status Details Updated (UTC)
default (Inspect) 👍 Changes approved 1 changed Apr 1, 2026, 1:03 AM

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
apps/site/src/app/startups/page.tsx (1)

233-241: Consider using next/image with remote patterns for CDN images.

The eslint-disable here works, but you're missing out on Next.js's automatic image optimization (WebP conversion, responsive srcset, blur placeholders). If cdn.sanity.io is already configured in next.config.js under images.remotePatterns, you could use the Image component instead.

That said, native <img> with loading="lazy" is perfectly functional—just a potential optimization to consider.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/src/app/startups/page.tsx` around lines 233 - 241, Replace the raw
<img> in apps/site/src/app/startups/page.tsx with Next.js' Image component:
import Image from 'next/image', swap the <img src={t.imageUrl} ... /> usage to
<Image src={t.imageUrl} alt={`Profile photo of ${t.author}`} width={48}
height={48} className="size-12 rounded-full object-cover" loading="lazy" /> and
remove the eslint-disable comment; also ensure your next.config.js
images.remotePatterns includes the CDN host (e.g., cdn.sanity.io) so remote
images are allowed and optimized.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/site/src/app/startups/page.tsx`:
- Around line 28-33: The testimonial JSX in the quote prop of page.tsx contains
a broken phrase "saves lots of time having from reinventing things ourselves";
update the quote fragment (the JSX assigned to quote) to a grammatically correct
phrasing such as "saves lots of time from having to reinvent things ourselves"
or "saves a lot of time from reinventing things ourselves" so the sentence reads
smoothly.

---

Nitpick comments:
In `@apps/site/src/app/startups/page.tsx`:
- Around line 233-241: Replace the raw <img> in
apps/site/src/app/startups/page.tsx with Next.js' Image component: import Image
from 'next/image', swap the <img src={t.imageUrl} ... /> usage to <Image
src={t.imageUrl} alt={`Profile photo of ${t.author}`} width={48} height={48}
className="size-12 rounded-full object-cover" loading="lazy" /> and remove the
eslint-disable comment; also ensure your next.config.js images.remotePatterns
includes the CDN host (e.g., cdn.sanity.io) so remote images are allowed and
optimized.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 51f5ba56-cdac-4080-8df0-3b5a5fdcc2fd

📥 Commits

Reviewing files that changed from the base of the PR and between 6f79795 and f059b41.

📒 Files selected for processing (2)
  • apps/site/src/app/startups/_components/tally-embed.tsx
  • apps/site/src/app/startups/page.tsx

mhartington
mhartington previously approved these changes Mar 30, 2026
AmanVarshney01 and others added 3 commits March 31, 2026 20:35
Add /startups page to apps/site migrated from the old website.
Includes hero, benefits, eligibility criteria, testimonials grid,
info box, and Tally form embed. Light/dark mode friendly.
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
apps/site/src/app/startups/page.tsx (1)

267-269: Consider deferring Tally widget initialization to reduce early third-party overhead.

The TallyEmbed component currently loads the external Tally widget script (https://tally.so/widgets/embed.js) immediately when the component mounts. Without an explicit strategy on the <Script> tag, it uses the default "afterInteractive" behavior, meaning the 30–50KB external script loads relatively early in the page lifecycle—before the user may even scroll to the form.

You can optimize this in a couple of ways:

  • Set strategy="lazyOnload" on the Script component to defer until browser idle time
  • Implement intersection observer–based lazy mounting so the embed loads only when it enters the viewport

Either approach reduces upfront JS overhead and improves initial page performance, especially on slower networks or mobile devices.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/site/src/app/startups/page.tsx` around lines 267 - 269, TallyEmbed
currently injects the external Tally script immediately (default
afterInteractive); change the Script usage inside the TallyEmbed component to
use strategy="lazyOnload" to defer loading until browser idle, or wrap the
TallyEmbed mount with an intersection observer so the component only
renders/loads the Script when it enters the viewport; update the component that
imports/uses <Script> (TallyEmbed) to implement one of these patterns and ensure
the Script tag references the same https://tally.so/widgets/embed.js URL and
that any existing script-insert logic is gated behind the observer or lazyOnload
strategy.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/site/src/app/startups/page.tsx`:
- Line 85: Several decorative <i> elements (for example the one with className
"fa-regular fa-arrow-down ml-2") are missing accessibility attributes and should
be hidden from assistive tech; update each decorative <i> in this component
(including the instances at the other noted locations) to include
aria-hidden="true" so screen readers ignore them, and ensure no other
interactive semantics are accidentally applied to these icons.

---

Nitpick comments:
In `@apps/site/src/app/startups/page.tsx`:
- Around line 267-269: TallyEmbed currently injects the external Tally script
immediately (default afterInteractive); change the Script usage inside the
TallyEmbed component to use strategy="lazyOnload" to defer loading until browser
idle, or wrap the TallyEmbed mount with an intersection observer so the
component only renders/loads the Script when it enters the viewport; update the
component that imports/uses <Script> (TallyEmbed) to implement one of these
patterns and ensure the Script tag references the same
https://tally.so/widgets/embed.js URL and that any existing script-insert logic
is gated behind the observer or lazyOnload strategy.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 85d41a9b-4d3f-4a73-91bb-04d16095c9d5

📥 Commits

Reviewing files that changed from the base of the PR and between 3c10b07 and 671574f.

📒 Files selected for processing (2)
  • apps/site/src/app/startups/_components/tally-embed.tsx
  • apps/site/src/app/startups/page.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/site/src/app/startups/_components/tally-embed.tsx

@mhartington mhartington merged commit 6faa5ea into main Apr 1, 2026
18 checks passed
@mhartington mhartington deleted the dr-7743-startups branch April 1, 2026 01:07
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