Commit graph

85 commits

Author SHA1 Message Date
Roo Code
63d8d63f48 fix(blog): avoid barrel import in client component to fix build
The blog-analytics.tsx client component was importing from the @/lib/blog
barrel export, which transitively included content.ts that uses the Node.js
fs module. This caused the build to fail with "Module not found: Cannot
resolve fs" error.

Changed imports to use direct file paths:
- Import BlogPost type from @/lib/blog/types
- Import analytics functions from @/lib/blog/analytics

This avoids pulling content.ts into the client bundle.
2026-01-28 01:02:50 +00:00
MP
05416fd21d
Update apps/web-roo-code/src/app/sitemap.ts
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-27 16:42:52 -08:00
Roo Code
994b2ac6e9 feat(blog): add sitemap.ts with blog and blog post URLs
- Create sitemap.ts with MetadataRoute.Sitemap for Next.js
- Include all static pages with priorities and change frequencies
- Include /blog index page (priority 0.8, daily updates)
- Dynamically include all published blog post URLs (/blog/[slug])
- Blog posts use publish_date as lastModified

The sitemap is referenced by robots.ts at /sitemap.xml

MKT-71
2026-01-27 19:57:33 +00:00
Roo Code
fe1bfc1fde feat(blog): add Blog link to nav/footer and Substack to Connect
- Add SUBSTACK link to constants.ts
- Add Blog link to desktop nav Resources dropdown
- Add Blog link to mobile nav Resources section
- Add Blog link to footer Resources section
- Add Substack link to footer Connect section

MKT-72
2026-01-27 19:55:25 +00:00
Roo Code
bd1b3ad995 feat(blog): add PostHog analytics events for blog pages
- Add analytics.ts with blog-specific tracking events:
  - trackBlogIndexView: Track blog index views with post count
  - trackBlogPostView: Track individual post views with metadata
  - trackBlogPostScrollDepth: Track reading progress (25%, 50%, 75%, 100%)
  - trackBlogPostTimeSpent: Track time spent on posts
  - trackBlogPostShare: Track social share clicks
  - trackBlogPostCTAClick: Track CTA engagement

- Add BlogIndexAnalytics and BlogPostAnalytics client components
- Integrate analytics into /blog and /blog/[slug] pages

Attribution is handled by PostHog save_referrer and save_campaign_params.

MKT-74
2026-01-27 19:52:24 +00:00
Roo Code
6f782056ad feat(blog): add Schema.org JSON-LD structured data for SEO
- Add structured-data.ts with Article, CollectionPage, and BreadcrumbList schemas
- Integrate JSON-LD into /blog index page (Blog collection + breadcrumbs)
- Integrate JSON-LD into /blog/[slug] page (Article + post breadcrumbs)
- Export structured data utilities from blog module index

MKT-70
2026-01-27 19:48:21 +00:00
Roo Code
aa4c2d921f feat(blog): add /blog/[slug] post page with dynamic rendering
- Create dynamic route for individual blog posts
- Use force-dynamic for request-time publish gating
- Require Node.js runtime for filesystem reads
- Return 404 for drafts, future posts, or invalid slugs
- Render Markdown with react-markdown + remark-gfm
- No raw HTML rendering (safe by default)
- Include consistent typography and styling

Closes: MKT-69
2026-01-27 19:43:12 +00:00
Roo Code
1bfa919b0c feat(blog): add /blog index page with dynamic rendering
- Create blog index page at /blog
- Use force-dynamic for request-time publish gating
- Require Node.js runtime for filesystem reads
- Display posts with title, description, and date
- Add empty state when no posts are published
- Include tags display (up to 3)

Closes: MKT-68
2026-01-27 19:40:02 +00:00
Roo Code
b7fb0638a2 feat(blog): add markdown content pipeline with PT scheduling
- Add gray-matter for frontmatter parsing
- Create BlogPost type and zod schema for validation
- Implement PT timezone helpers (getNowPt, parsePublishTimePt)
- Implement content loading (getAllBlogPosts, getBlogPostBySlug)
- Implement isPublished for request-time publish gating
- Add validation for frontmatter and duplicate slugs
- Create content/blog directory for markdown files

Closes: MKT-67
2026-01-27 19:32:33 +00:00
MP
5c1c16c16e
fix: rename bot to 'Roomote' and fix spacing in Slack demo (#10898) 2026-01-22 14:10:57 -05:00
roomote[bot]
21bd7609a9
feat: add HubSpot tracking with consent-based loading (#10885)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-21 22:54:07 -05:00
MP
d87abe8efc
feat(web): redesign Slack page Featured Workflow section with YouTube… (#10880)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-21 22:47:42 -05:00
MP
bef796de87
Copy: update /slack page messaging (#10869)
copy: update /slack page messaging

- Update trial CTA to 'Start a free 14 day Team trial'
- Replace 'humans' with 'your team' in value props subtitle
- Shorten value prop titles for consistent one-line display
- Improve Thread-aware and Open to all descriptions
2026-01-21 18:30:57 -05:00
MP
9ab279ae42
Pr 10853 (#10854)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-21 00:15:17 -05:00
roomote[bot]
ead1658441
Fix broken link on pricing page (#10847)
* fix: update broken pricing link to /models page

* Update apps/web-roo-code/src/app/pricing/page.tsx

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
2026-01-20 18:03:51 +00:00
Chris Estreich
87a5afa629
Revert "feat(e2e): Enable E2E tests - 39 passing tests" (#10794)
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-01-16 17:22:43 -08:00
roomote[bot]
724571c7bd
feat: clarify Slack and Linear are Cloud Team only features (#10748)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-15 01:16:30 -05:00
roomote[bot]
75d895845e
Rename Roo Code Cloud Provider to Roo Code Router (#10560)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-10 11:32:21 -05:00
Matt Rubens
2ff08b5e5c
Update Terms of Service (effective January 9, 2026) (#10568)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-09 02:03:58 -05:00
roomote[bot]
7bbdcdf5d0
feat: rename YOLO to BRRR (#10507)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-07 10:03:37 -05:00
roomote[bot]
e851b9355e
fix: correct GitHub repository URL in marketing page (#10377)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-29 10:11:28 -08:00
roomote[bot]
add06a2e7b
docs: clarify path to Security Settings in privacy policy (#10367)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-28 18:19:03 +01:00
roomote[bot]
a148b0b7f3
feat: add Cloud Team page with comprehensive team features (#10267)
* feat: add Cloud Team page with features and pricing integration

* Copy tweaks

* Visual tweaks

* Content adjustments

* Update apps/web-roo-code/src/app/cloud/team/page.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-22 16:52:00 +00:00
Bruno Bergher
1ff5d1deb6
web: Fixes link to provider pricing page (#10107) 2025-12-15 13:28:25 -08:00
Bruno Bergher
d285d01853
web: Product pages (#9865)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-05 14:01:41 -05:00
Bruno Bergher
0ed5f3ccd4
web: New Pricing Page (#9821)
* Removes Pro, restructures pricing page

* Solves provider/credits

* Update apps/web-roo-code/src/app/pricing/page.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Updates agent landing pages to not mention a trial that doesn't exist

* Updates agent-specific landing pages to reflect new home and trial

* Indicate the agent landing page the user came from

* Clean up the carousel

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-12-04 15:40:07 +00:00
Matt Rubens
d065b881e3
Fix the download count on the homepage (#9807) 2025-12-03 23:46:00 -05:00
Bruno Bergher
9975a41be4
web: Homepage changes (#9675)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-12-02 10:10:45 -05:00
roomote[bot]
9dac7e7b63
fix: prevent navigation buttons from wrapping on smaller screens (#9721)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-12-01 16:39:28 -05:00
roomote[bot]
c688a6466e
fix: display install count in millions instead of thousands (#9677)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-28 20:36:34 -05:00
roomote[bot]
ee19904b29
feat: migrate PostHog client to ph.roocode.com (#9402)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-19 14:44:22 -05:00
roomote[bot]
aa2a17fce3
feat: update cloud agent CTA to point to setup page (#9338)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-18 01:29:32 -05:00
Bruno Bergher
7a06902dd8
web: Roo Code Cloud Provider pricing page and changes elsewhere (#9195)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-16 00:25:37 -05:00
roomote[bot]
b2143912cf
feat: sync reviewer landing page copy - variant B to variant A (#9158)
- Updated variant A content to match variant B messaging
- Both variants now show the same improved copy focused on catching meaningful bugs
- Emphasizes depth over token-saving and repository-aware analysis

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-10 18:17:44 -05:00
roomote[bot]
62636add14
feat: add Google Tag Manager to marketing website (#9148)
* feat: add Google Tag Manager to marketing website using Next.js Script component

* refactor: remove Google Ads implementation in favor of Tag Manager

* fix: wrap GTM script in consent-checking client component for GDPR compliance

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-10 01:51:53 -08:00
roomote[bot]
4da9c3adb1
fix: improve mobile responsiveness of hero section on /reviewer page (#9138)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-08 17:47:06 -05:00
Bruno Bergher
39448f4010
web: Agent Landing Page A/B testing toolkit (#9018)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-05 15:40:04 -05:00
dleffel
e86acef844
chore: simplify Google Analytics to standard implementation (#9044)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-05 11:24:32 -05:00
roomote[bot]
d59b815e98
feat(web): add /pr-fixer page and Cloud Agents footer (#8996)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Bruno Bergher <me@brunobergher.com>
2025-11-03 15:50:46 -05:00
roomote[bot]
5fb36d9c85
feat: implement Google Consent Mode v2 with cookieless pings (#8987)
* feat: implement Google Consent Mode v2 with cookieless pings

- Add consent defaults before gtag.js loads (required for Consent Mode v2)
- Enable cookieless pings with url_passthrough for Google Ads
- Implement consent update logic for all consent categories
- Support both granted and denied consent states
- Maintain backward compatibility with existing consent manager

* fix: remove shouldLoad from useEffect dependency array to prevent re-initialization loop

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-02 20:59:09 -08:00
Bruno Bergher
eb68c65296
web: Attempt at compliant, cookie-less anonymous tracking for the website (#8957) 2025-10-31 15:19:35 -04:00
Matt Rubens
a3101aa92b
Add how it works section to reviewer landing page (#8884) 2025-10-28 10:37:40 -04:00
roomote[bot]
8870348bd3
feat: add Google Ads conversion tracking to reviewer page (#8831)
* feat: add Google Ads conversion tracking to reviewer page

* fix: add asChild prop to first button to prevent invalid HTML nesting

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-10-25 21:23:05 -07:00
roomote[bot]
8187a8e189
fix: update X/Twitter username from roo_code to roocode (#8780)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-22 16:27:08 -04:00
Bruno Bergher
a97cda1da0
web: Updates CTA link in /reviewer to send people to /cloud-agents/welcome (#8774) 2025-10-22 11:02:55 -04:00
Bruno Bergher
c74e42bde4
web: Dynamic OpenGraph images (#8773)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-10-22 10:04:28 -04:00
Matt Rubens
6173a59fb1
Update text for clarity in reviewer page (#8753) 2025-10-22 09:37:17 -04:00
Bruno Bergher
f3a505fd36
web: Landing page for the reviewerFirst pass (#8740)
* First pass

* SEO

* Update apps/web-roo-code/src/app/reviewer/page.tsx

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-10-20 23:24:17 -04:00
Bruno Bergher
a8f87d2b1d
web: Leftover white bg (#8719)
Leftover white bg
2025-10-18 06:49:35 -04:00
Matt Rubens
f360c4e08b
Add Intercom as a subprocessor (#8718) 2025-10-17 22:49:49 -04:00