feat: Add FAQPage and ProfessionalService schema to service pages#71
Merged
vibemarketerpromax merged 12 commits intomainfrom Feb 11, 2026
Merged
feat: Add FAQPage and ProfessionalService schema to service pages#71vibemarketerpromax merged 12 commits intomainfrom
vibemarketerpromax merged 12 commits intomainfrom
Conversation
Installed the following skills for enhanced development capabilities: - vercel-react-best-practices: React optimization patterns - next-best-practices: Next.js App Router best practices - schema-markup: SEO structured data implementation - content-strategy: Content planning and strategy - browser-use: Browser automation and testing - audit-website: Website quality and compliance auditing Skills are stored in .agents/skills/ with symlinks in .claude/skills/ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Created reusable JsonLd component in components/seo/ - Updated Organization schema to match specification: - Added alternateName, contactPoint, and aggregateRating - Updated logo path to /logo.svg - Simplified sameAs links to core platforms - Removed redundant fields (founder, employee, knowsAbout) - Replaced inline schema scripts with JsonLd component - Improved code maintainability and reusability Part of schema markup implementation following schema-implementation-for-claude-code.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Added schema generation logic to all service pages - Generates ProfessionalService schema with service details - Generates FAQPage schema when FAQs exist in frontmatter - Extracts serviceType from capabilities array - Works for both service-style and expertise-style pages - Covers all 12+ service pages automatically Schema includes: - Service name, description, URL - Provider information (Procedure Technologies) - Service areas (US, India) - Service types extracted from capabilities - FAQ questions and answers Pages covered: - ai-engineering, ai-security, ai-agents, ai-privacy - backend-development, frontend-development, mobile-development - product-design, cloud, kubernetes - software-testing-and-qa, design-systems Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Deploying website with
|
| Latest commit: |
ca51a78
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://e21716a1.website-yiq.pages.dev |
| Branch Preview URL: | https://feat-service-page-schemas.website-yiq.pages.dev |
- Updated blog posts to use TechArticle schema (more specific than Article) - Migrated from inline schema scripts to JsonLd component - Enhanced author schema with worksFor organization - Fixed image URLs to use absolute paths - Updated publisher information to match org schema - BreadcrumbList already exists for blog posts Changes: - Changed @type from "Article" to "TechArticle" - Added worksFor organization for authors - Fixed logo URL to match organization schema - Made image URL absolute with domain - Using JsonLd component for cleaner code This completes Phase 3 of schema implementation. All blog posts now have proper TechArticle and BreadcrumbList schemas. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Created complete interlinking system for SEO optimization: 1. INTERLINKING-OPPORTUNITIES.md - Analyzed 20+ blog posts for link opportunities - Identified 50+ strategic internal linking opportunities - Prioritized high-traffic posts for quick wins - Organized into content clusters (AI, Backend, Frontend, etc.) - Provides ready-to-use markdown for each post 2. docs/notion-interlinking-strategy.md - Complete SEO interlinking strategy guide - Content pillar + cluster model explained - Link placement best practices (intro, content, related) - Service page link mapping - Monthly maintenance schedule - Tracking metrics and KPIs 3. scripts/auto-interlink-blogs.ts - Intelligent link analysis tool - Service page mapping logic - Content cluster detection - Generates interlinking reports - Ready-to-use markdown generation 4. scripts/notion-auto-interlink.md - Practical guide for using Claude + Notion MCP - Example prompts for batch updates - Strategic link placement instructions - Troubleshooting guide Expected Impact: - 20-30% increase in pages per session - 25-40% more traffic to service pages - Improved SEO through content clusters - Better user engagement and time on site Implementation: Manual review recommended before applying changes No automated changes made to preserve content control Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Resolved conflicts in app/layout.tsx by incorporating all updates from main: - Added @id field to Organization schema - Added foundingLocation (Mumbai, India) - Expanded sameAs links (Wikidata, Crunchbase, additional social profiles) - Added founder information (Brajkishor Baheti, Ulhas Mandrawadkar) - Added knowsAbout field for AI/ML topics Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Replace 'any' type with BlogPost interface in auto-interlink-blogs.ts to fix ESLint error. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Service Pages (@ProfessionalService): - Add @context and @id for proper schema linking - Add mainEntityOfPage property - Add availableChannel with ServiceChannel details (locations in Mumbai & SF) - Add offers schema with pricing currency and eligible regions - Add potentialAction with Cal.com booking CTA - Expand areaServed to include UK - Update provider to use @id reference FAQ Schema: - Add @context at schema level for proper validation Homepage (layout.tsx): - Add full street address to Mumbai location (Srishti Square) - Add areaServed to contactPoint - Add new WebSite schema with SearchAction for blog search - Maintain all existing Organization, Service, and FAQPage schemas These enhancements improve: - Schema linking and entity relationships via @id - Rich results eligibility for service pages - Local business signals with detailed addresses - User actions (search, booking) via potentialAction - International service coverage visibility References analyzed: - Framer DevOps page schema structure - Framer homepage @graph implementation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add telephone field to Organization and ContactPoint - Add service[] array with all 7 service types to Organization - Add Instagram, Clutch, and GoodFirms to sameAs links - Add ContactPage schema to /contact-us layout Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
vibemarketerpromax
added a commit
that referenced
this pull request
Feb 12, 2026
* feat: Add hiring process timeline to careers page Add comprehensive 5-step hiring process section with: - Horizontal timeline for desktop with connecting line - Vertical timeline for mobile with step indicators - Glassmorphic cards with icons for each step - Scroll animations and hover effects - 2-3 week timeline callout Steps: Application → TA Screening → HM Screening → Interviews → Offer Release Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: Add JsonLd component and update Organization schema (#70) * feat: Add 6 new Claude Code skills from skills.sh Installed the following skills for enhanced development capabilities: - vercel-react-best-practices: React optimization patterns - next-best-practices: Next.js App Router best practices - schema-markup: SEO structured data implementation - content-strategy: Content planning and strategy - browser-use: Browser automation and testing - audit-website: Website quality and compliance auditing Skills are stored in .agents/skills/ with symlinks in .claude/skills/ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Add JsonLd component and update Organization schema - Created reusable JsonLd component in components/seo/ - Updated Organization schema to match specification: - Added alternateName, contactPoint, and aggregateRating - Updated logo path to /logo.svg - Simplified sameAs links to core platforms - Removed redundant fields (founder, employee, knowsAbout) - Replaced inline schema scripts with JsonLd component - Improved code maintainability and reusability Part of schema markup implementation following schema-implementation-for-claude-code.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: Enhance Organization schema with Wikidata references - Added Wikidata entity ID as @id for Organization - Added Wikidata references for both founders (CEO and CTO) - Added foundingLocation (Mumbai, India) - Expanded sameAs to include all social/business profiles - Added founder details with LinkedIn profiles - Added knowsAbout for semantic relevance - Ensures semantic alignment with Wikidata Q137392993 This creates a strong semantic web connection between: - procedure.tech (our website) - Wikidata Q137392993 (Procedure Technologies entity) - Wikidata Q137392996 (Brajkishor Baheti entity) - Wikidata Q137392995 (Ulhas Mandrawadkar entity) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: Add proper OpenGraph and Twitter card images across all pages - Blog posts: Add fallback to default OG image when featured image is invalid/missing - Services/expertise pages: Add OG images and Twitter card metadata - Industries pages: Add OG images to metadata - Case studies: Add OG images with fallback and Twitter card metadata - All OG images now include width, height, and alt properties for better social sharing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * fix: Add canonical URLs to fix LinkedIn OG image sharing (#73) * feat: Add 6 new Claude Code skills from skills.sh Installed the following skills for enhanced development capabilities: - vercel-react-best-practices: React optimization patterns - next-best-practices: Next.js App Router best practices - schema-markup: SEO structured data implementation - content-strategy: Content planning and strategy - browser-use: Browser automation and testing - audit-website: Website quality and compliance auditing Skills are stored in .agents/skills/ with symlinks in .claude/skills/ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Add JsonLd component and update Organization schema - Created reusable JsonLd component in components/seo/ - Updated Organization schema to match specification: - Added alternateName, contactPoint, and aggregateRating - Updated logo path to /logo.svg - Simplified sameAs links to core platforms - Removed redundant fields (founder, employee, knowsAbout) - Replaced inline schema scripts with JsonLd component - Improved code maintainability and reusability Part of schema markup implementation following schema-implementation-for-claude-code.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: Enhance Organization schema with Wikidata references - Added Wikidata entity ID as @id for Organization - Added Wikidata references for both founders (CEO and CTO) - Added foundingLocation (Mumbai, India) - Expanded sameAs to include all social/business profiles - Added founder details with LinkedIn profiles - Added knowsAbout for semantic relevance - Ensures semantic alignment with Wikidata Q137392993 This creates a strong semantic web connection between: - procedure.tech (our website) - Wikidata Q137392993 (Procedure Technologies entity) - Wikidata Q137392996 (Brajkishor Baheti entity) - Wikidata Q137392995 (Ulhas Mandrawadkar entity) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: Add proper OpenGraph and Twitter card images across all pages - Blog posts: Add fallback to default OG image when featured image is invalid/missing - Services/expertise pages: Add OG images and Twitter card metadata - Industries pages: Add OG images to metadata - Case studies: Add OG images with fallback and Twitter card metadata - All OG images now include width, height, and alt properties for better social sharing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Add canonical URLs and og:url to fix LinkedIn OG image sharing LinkedIn was showing the default fallback image for all blog posts because canonical URLs were missing, causing it to treat different pages as the same. Changes: - Add alternates.canonical to blog posts, blog listing, and case studies - Add openGraph.url to uniquely identify each page for social crawlers - This ensures LinkedIn/Twitter fetch the correct OG image per page Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Add openGraph.url to services and industries pages Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * chore: trigger rebuild for Notion content sync * feat: Add .NET Development Services page (#68) * feat: add FAQ about tasks suited for AI agents Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: improve AI Engineering services page content - Change headline from duplicate "AI Engineering Services" to "Enterprise AI Engineering" - Reword AI Application Development capability to avoid overlap with use cases - Add useCasesSubtitle field support for customizable section subtitles - Rewrite use case descriptions with specific, value-driven copy - Update FAQ answers with varied openings and technical depth (RAG, fine-tuning, guardrails) - Rewrite markdown CTA section to address prototype-to-production gap Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Add complete .NET Development Services page - Add new .NET Development page with enterprise-focused content - Create new components: ArchitectureSection, EngagementModels, ExpertiseCTAWithTestimonial, PhilosophySection, RiskReversal - Update TechStack with grouped chips variant - Update WhoWeWorkWith with tabs variant and 2-column bullet list - Add split layout variant to RiskReversal component - Update Stats component to accept custom stats props - Add supporting content types for new page sections - Include 7 SEO-optimized FAQs with mid-length answers Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Add supportingNote to CTABlock type * feat: Update .NET Development Services page with v2 copy and SEO improvements - Rewrite SEO title/description for better keyword targeting - Update hero H1, subheadline, and CTA with supporting text - Rewrite all 6 capability cards with stack/pattern details - Update "When to Choose .NET" section with sharper audience copy - Expand tech stack to 6 grouped categories - Retitle architecture section with shorter intro - Move testimonials after architecture for earlier social proof - Add mid-page CTA after engagement models - Update engagement models with .NET keyword and clearer details - Rewrite risk reversal triggers and blocks - Add 5 new FAQs (cost, timeline, staff aug, industries, comparison) - Update ClientLogos title and common applications rendering Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: Improve design of Stats, TechStack, Testimonials, and Common Applications sections - Stats: Add card containers with hover glow, reduce value font size, standardize H2 - TechStack grouped: Card-based layout with accent indicators, 3-col grid, stagger animations - Testimonials: Reduce H2 to match site-wide pattern, scale down quote text - Common Applications: Card grid layout with separate title/description, add 6th item Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: Fix design issues and diversify section layouts - Fix bullet alignment in WhoWeWorkWith tabs variant - Improve architecture diagram readability and reduce column gap - Center-align RiskReversal closing note in split variant - Widen Cal widget subheadline max-width for single-line display - Narrow architecture subtitle for 2-line wrapping - Show client logos instead of company names in Testimonials - Redesign UseCasesGrid as numbered list with dividers - Redesign EngagementModels as horizontal comparison columns Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Polish architecture diagram, engagement models, and risk reversal sections - Fix concentric circles diagram: remove overflow-hidden clipping labels, use flow layout with proper padding, strengthen circle borders - Engagement models: replace cramped pill-style "Best for" with clean text block separated by a divider - RiskReversal: unbold "How we reduce risk" titles for visual balance - RiskReversal: widen closing note max-width to fit on 13" screens Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: Fix layout issues on .NET page - Align 'Best For' sections at bottom of engagement model columns using flex column layout with mt-auto - Break hero H1 accent text to second line for better readability - Move 'Discuss Your .NET Project' CTA above Architecture section - Fix architecture diagram: use visible border colors (white/12% instead of #1A2A45), spread circles with more inset spacing, move arrows outside circles to prevent cropping - Increase heading-to-subtitle gap (mb-4 → mb-5) across all expertise section components Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: Match risk block title color to description text Change title from text-text-primary (90% white) to text-text-secondary (65% white) so both title and description read at the same visual weight. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Remove leaked ); text in Testimonials component The closing paren+semicolon was placed between </section> and </LazyMotion>, causing it to render as literal text on the page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Remove leaked ); text in ValueProposition and Services components Same bug as Testimonials - closing ); was placed between </section> and </LazyMotion>, rendering as literal text on the homepage. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Use service-specific alt text for OG images Replace hardcoded "AI Engineering Services" alt text with dynamic badge-based alt (e.g. "Procedure - .NET Development Services"). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Use correct nested path for badge in OG image alt text service.badge and expertise.badge don't exist — badge is nested under hero, so it needs to be service.hero.badge and expertise.hero.badge. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: vibemarketerpromax <chetan@procedure.tech> * feat: Add FAQPage and ProfessionalService schema to service pages (#71) * feat: Add 6 new Claude Code skills from skills.sh Installed the following skills for enhanced development capabilities: - vercel-react-best-practices: React optimization patterns - next-best-practices: Next.js App Router best practices - schema-markup: SEO structured data implementation - content-strategy: Content planning and strategy - browser-use: Browser automation and testing - audit-website: Website quality and compliance auditing Skills are stored in .agents/skills/ with symlinks in .claude/skills/ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Add JsonLd component and update Organization schema - Created reusable JsonLd component in components/seo/ - Updated Organization schema to match specification: - Added alternateName, contactPoint, and aggregateRating - Updated logo path to /logo.svg - Simplified sameAs links to core platforms - Removed redundant fields (founder, employee, knowsAbout) - Replaced inline schema scripts with JsonLd component - Improved code maintainability and reusability Part of schema markup implementation following schema-implementation-for-claude-code.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: Add FAQPage and ProfessionalService schema to service pages - Added schema generation logic to all service pages - Generates ProfessionalService schema with service details - Generates FAQPage schema when FAQs exist in frontmatter - Extracts serviceType from capabilities array - Works for both service-style and expertise-style pages - Covers all 12+ service pages automatically Schema includes: - Service name, description, URL - Provider information (Procedure Technologies) - Service areas (US, India) - Service types extracted from capabilities - FAQ questions and answers Pages covered: - ai-engineering, ai-security, ai-agents, ai-privacy - backend-development, frontend-development, mobile-development - product-design, cloud, kubernetes - software-testing-and-qa, design-systems Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: Add TechArticle schema to blog posts (Phase 3) - Updated blog posts to use TechArticle schema (more specific than Article) - Migrated from inline schema scripts to JsonLd component - Enhanced author schema with worksFor organization - Fixed image URLs to use absolute paths - Updated publisher information to match org schema - BreadcrumbList already exists for blog posts Changes: - Changed @type from "Article" to "TechArticle" - Added worksFor organization for authors - Fixed logo URL to match organization schema - Made image URL absolute with domain - Using JsonLd component for cleaner code This completes Phase 3 of schema implementation. All blog posts now have proper TechArticle and BreadcrumbList schemas. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * docs: Add comprehensive blog interlinking strategy and opportunities Created complete interlinking system for SEO optimization: 1. INTERLINKING-OPPORTUNITIES.md - Analyzed 20+ blog posts for link opportunities - Identified 50+ strategic internal linking opportunities - Prioritized high-traffic posts for quick wins - Organized into content clusters (AI, Backend, Frontend, etc.) - Provides ready-to-use markdown for each post 2. docs/notion-interlinking-strategy.md - Complete SEO interlinking strategy guide - Content pillar + cluster model explained - Link placement best practices (intro, content, related) - Service page link mapping - Monthly maintenance schedule - Tracking metrics and KPIs 3. scripts/auto-interlink-blogs.ts - Intelligent link analysis tool - Service page mapping logic - Content cluster detection - Generates interlinking reports - Ready-to-use markdown generation 4. scripts/notion-auto-interlink.md - Practical guide for using Claude + Notion MCP - Example prompts for batch updates - Strategic link placement instructions - Troubleshooting guide Expected Impact: - 20-30% increase in pages per session - 25-40% more traffic to service pages - Improved SEO through content clusters - Better user engagement and time on site Implementation: Manual review recommended before applying changes No automated changes made to preserve content control Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: Add proper TypeScript type for blog post parameter Replace 'any' type with BlogPost interface in auto-interlink-blogs.ts to fix ESLint error. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: Enhance schema markup with comprehensive properties Service Pages (@ProfessionalService): - Add @context and @id for proper schema linking - Add mainEntityOfPage property - Add availableChannel with ServiceChannel details (locations in Mumbai & SF) - Add offers schema with pricing currency and eligible regions - Add potentialAction with Cal.com booking CTA - Expand areaServed to include UK - Update provider to use @id reference FAQ Schema: - Add @context at schema level for proper validation Homepage (layout.tsx): - Add full street address to Mumbai location (Srishti Square) - Add areaServed to contactPoint - Add new WebSite schema with SearchAction for blog search - Maintain all existing Organization, Service, and FAQPage schemas These enhancements improve: - Schema linking and entity relationships via @id - Rich results eligibility for service pages - Local business signals with detailed addresses - User actions (search, booking) via potentialAction - International service coverage visibility References analyzed: - Framer DevOps page schema structure - Framer homepage @graph implementation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: Use correct property name in auto-interlink script Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: Add missing schema properties from Framer reference site - Add telephone field to Organization and ContactPoint - Add service[] array with all 7 service types to Organization - Add Instagram, Clutch, and GoodFirms to sameAs links - Add ContactPage schema to /contact-us layout Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: Add pre-push build check requirement to CLAUDE.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * feat: .NET Modernization page + Technologies route structure (#74) * feat: add FAQ about tasks suited for AI agents Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: improve AI Engineering services page content - Change headline from duplicate "AI Engineering Services" to "Enterprise AI Engineering" - Reword AI Application Development capability to avoid overlap with use cases - Add useCasesSubtitle field support for customizable section subtitles - Rewrite use case descriptions with specific, value-driven copy - Update FAQ answers with varied openings and technical depth (RAG, fine-tuning, guardrails) - Rewrite markdown CTA section to address prototype-to-production gap Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Add complete .NET Development Services page - Add new .NET Development page with enterprise-focused content - Create new components: ArchitectureSection, EngagementModels, ExpertiseCTAWithTestimonial, PhilosophySection, RiskReversal - Update TechStack with grouped chips variant - Update WhoWeWorkWith with tabs variant and 2-column bullet list - Add split layout variant to RiskReversal component - Update Stats component to accept custom stats props - Add supporting content types for new page sections - Include 7 SEO-optimized FAQs with mid-length answers Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Add supportingNote to CTABlock type * feat: Update .NET Development Services page with v2 copy and SEO improvements - Rewrite SEO title/description for better keyword targeting - Update hero H1, subheadline, and CTA with supporting text - Rewrite all 6 capability cards with stack/pattern details - Update "When to Choose .NET" section with sharper audience copy - Expand tech stack to 6 grouped categories - Retitle architecture section with shorter intro - Move testimonials after architecture for earlier social proof - Add mid-page CTA after engagement models - Update engagement models with .NET keyword and clearer details - Rewrite risk reversal triggers and blocks - Add 5 new FAQs (cost, timeline, staff aug, industries, comparison) - Update ClientLogos title and common applications rendering Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: Improve design of Stats, TechStack, Testimonials, and Common Applications sections - Stats: Add card containers with hover glow, reduce value font size, standardize H2 - TechStack grouped: Card-based layout with accent indicators, 3-col grid, stagger animations - Testimonials: Reduce H2 to match site-wide pattern, scale down quote text - Common Applications: Card grid layout with separate title/description, add 6th item Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: Fix design issues and diversify section layouts - Fix bullet alignment in WhoWeWorkWith tabs variant - Improve architecture diagram readability and reduce column gap - Center-align RiskReversal closing note in split variant - Widen Cal widget subheadline max-width for single-line display - Narrow architecture subtitle for 2-line wrapping - Show client logos instead of company names in Testimonials - Redesign UseCasesGrid as numbered list with dividers - Redesign EngagementModels as horizontal comparison columns Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Polish architecture diagram, engagement models, and risk reversal sections - Fix concentric circles diagram: remove overflow-hidden clipping labels, use flow layout with proper padding, strengthen circle borders - Engagement models: replace cramped pill-style "Best for" with clean text block separated by a divider - RiskReversal: unbold "How we reduce risk" titles for visual balance - RiskReversal: widen closing note max-width to fit on 13" screens Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: Fix layout issues on .NET page - Align 'Best For' sections at bottom of engagement model columns using flex column layout with mt-auto - Break hero H1 accent text to second line for better readability - Move 'Discuss Your .NET Project' CTA above Architecture section - Fix architecture diagram: use visible border colors (white/12% instead of #1A2A45), spread circles with more inset spacing, move arrows outside circles to prevent cropping - Increase heading-to-subtitle gap (mb-4 → mb-5) across all expertise section components Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: Match risk block title color to description text Change title from text-text-primary (90% white) to text-text-secondary (65% white) so both title and description read at the same visual weight. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Remove leaked ); text in Testimonials component The closing paren+semicolon was placed between </section> and </LazyMotion>, causing it to render as literal text on the page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Remove leaked ); text in ValueProposition and Services components Same bug as Testimonials - closing ); was placed between </section> and </LazyMotion>, rendering as literal text on the homepage. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Use service-specific alt text for OG images Replace hardcoded "AI Engineering Services" alt text with dynamic badge-based alt (e.g. "Procedure - .NET Development Services"). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Use correct nested path for badge in OG image alt text service.badge and expertise.badge don't exist — badge is nested under hero, so it needs to be service.hero.badge and expertise.hero.badge. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: Add .NET Modernization page and migrate dotnet hub to /technologies/ - Create /technologies/dotnet/modernization page with 8 sections (hero, problem signals, migration paths table, process timeline, technical capabilities, risk mitigation, FAQs, related services) - Migrate dotnet hub page from /services/dotnet-development to /technologies/dotnet with ExpertisePageClient basePath support - Add client-side redirect at /services/dotnet-development + Vercel 301 - Create 5 new components in components/technologies/ - Extend content system with technology functions and content type - Fix duplicate FAQPage schema: move global FAQ from layout to homepage - Add Organization image field to fix Google Rich Results warning - Update navigation, footer, sitemap with .NET links Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Improve modernization page icons, copy, and card alignment - Add unique per-card icons in RiskMitigation section (was all shield) - Fix missing icon in ProblemSignals (rocket → bolt) - Center-align orphan cards on last row in ProblemSignals and RiskMitigation - Add .NET keyword to section headings for SEO - Enable client logos in hero section - Replace em dashes with proper punctuation throughout - Shorten CTA subheadline Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Update H1, normalize step lengths, and fix card heading spacing - Change H1 to ".NET Migration Services" - Normalize approach step descriptions to consistent ~170 char lengths - Increase heading-to-bullet spacing in TechnicalCapabilities (mb-4 → mb-5) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: Add .NET Staff Augmentation page at /technologies/dotnet/staff-augmentation New page with hero, problem signals, service features, process timeline, skills table, use cases, engagement models, FAQs, CTA, and related services. Includes Service + FAQPage + BreadcrumbList schema markup. Cross-links modernization page's related services to new staff aug URL. Adds page to sitemap. Adds claude-documentation.md for session context. * feat: Redesign staff augmentation page sections for premium visual layout - ServiceFeatures: Add editorial/compact variants with left accent bars, numbered badges, 2-col item grids, and icon-based compact cards - UseCaseStories: Add category badges, quoted titles, icon containers, and outcome highlight bars - EngagementModels: Add progression bars, large team size numbers, and best-for badges - SkillsTable: Add tech chip badges, experience level bars, and pill-style specialized skills - Fix section background alternation for proper visual flow * docs: Update living documentation with staff aug page and case study findings * feat: Add custom OG images for all dotnet technology pages Map dedicated Open Graph and Twitter card images for the three dotnet pages: hub, modernization, and staff augmentation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: harshita375 <harshita@procedure.tech> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * fix: Case study nested blocks + video/embed support (#75) * fix: Add nested block recursion and video/embed support for case studies - fetchPageContent now recurses into child blocks (toggle, column_list, etc.) so images/content inside nested blocks are no longer missed - Add video and embed block type handling in Notion content parser - Add video/embed rendering in CaseStudyDetailClient with YouTube, Vimeo, and Loom embed URL conversion Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: Auto-discover technology routes for sitemap Replace hardcoded technology subpage entries with getAllTechnologyRoutes() that scans app/technologies/ for page.tsx files. Any new technology page added to the directory will automatically appear in sitemap.xml. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Remove old dotnet-development MDX to clean up sitemap The MDX file at content/services/dotnet-development.mdx was still being picked up by getAllServiceSlugsFromContent(), causing /services/dotnet-development to appear in sitemap.xml. The page was already migrated to /technologies/dotnet with a redirect in place. Deleting the old MDX removes it from the sitemap. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Prevent cover image and title overlap on mobile - Use responsive aspect ratio: 16:9 on mobile, 21:9 on desktop for cover images on both blog posts and case study detail pages - Add subtle border to cover images for visual separation - Remove gradient overlay on case study cover (was blending image into background, reducing visual distinction from title) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Use full-color client logos for case study detail pages - Add Fellou AI, MCLabs, Timely webp logos under assets/case-studies/ - Update clientLogos mapping to use new colored logos for published case studies (Fellou AI, MCLabs, Timely) - Apply monochrome filter only to SVG logos, skip for webp/png Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Increase spacing between case study title and cover image Change H1 bottom margin from mb-8 (32px) to mb-12 (48px) for clearer visual separation between title and hero image. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Add margin-top above case study cover image Move spacing from H1 mb to image mt for clearer intent. mt-10 (40px) on mobile, mt-14 (56px) on sm+ screens. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Update case study logos with user-provided files - Fellou: fellou-ai.webp → Fellou.webp (updated logo) - MCLabs: mclabs.webp → mclabs.png (white version for dark bg) - Timely: updated timely.webp (white version for dark bg) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Normalize case study logo sizes and reduce cover image spacing - Use fixed 140x32 bounding box with object-contain for all client logos so they occupy the same visual space regardless of aspect ratio - Reduce hero section bottom padding from pb-12/pb-16 to pb-6/pb-8 for tighter spacing between cover image and content below Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: Add Google Search Console verification file Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore: Add Google Search Console verification file (#76) Place in public/ so Next.js serves it at the root URL. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: Add pagination to Notion queries and fix blog URL paths (#77) - Add pagination to getNotionBlogPosts() to fetch ALL posts, not just the first page from dataSources.query (fixes blog 404 errors) - Add pagination to getNotionCaseStudies() for the same reason - Add module-level caching to avoid race conditions when multiple render contexts call getNotionBlogPosts() concurrently during build - Fix URL paths in blog detail page: /blog/ → /blogs/ for share buttons and category breadcrumb links Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: Improve homepage heading spacing, title case, footer layout (#78) * fix: Improve homepage heading spacing, title case, footer layout, and logo - Increase heading-to-subheading spacing (mb-4 → mb-6 sm:mb-8) across HowWeWork, CTA, ValueProposition, EngagementModels, and Team sections - Apply proper title case to all section headings (lowercase stop words like "and", "to", "from", "by") - Improve footer menu spacing: h3 mb-4→mb-5, link spacing 2.5→3, section gap mb-6→mb-8 - Fix cropped Procedure logo in FooterReveal (w-[120%] → w-full) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Use consistent read time between blog cards and blog pages The blog listing cards used the Notion "Read Time" property (default 5), while the blog post page recalculated from word count at 200 wpm. This caused different read times to show. Now both use the Notion property value consistently. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: Add contextual blog CTAs and fix About page layout - Blog CTA now adapts heading, description, and service link based on post category (AI Engineering, LLM, Engineering, Product Dev, etc.) - Increase spacing between Trust & Compliance heading and badges on About page - Make value cards equal height regardless of content length Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: AI Security page alignment, CTA fixes, and misc page improvements - Center-align section headings on AI Security page for consistency - Fix "See How We Work" CTA linking to wrong section - Replace inline FAQ with shared accordion FAQSection component - Update AI Upskill CTA text, cohort date to Q2 2026, remove redundant final CTA - Genericize secondary CTA text on startups and scale-ups pages * fix: Uniform industry grid layout, remove expertise hero taglines - SolutionsGrid: Replace asymmetric featured card layout with uniform 3-col grid - SuccessMetrics: Consistent card heights with flex layout and aligned values - Remove tagline from all expertise page hero sections (keep only description) * fix: Metrics parser, SuccessMetrics display, healthcare page cleanup - Fix parseMetricsFromContent regex to handle $ prefix and stop greedy word capture - Remove whitespace-nowrap from SuccessMetrics to prevent overflow on long values - Remove Compliance & Trust section from healthcare page - Remove redundant "100% HIPAA compliant" metric from healthcare results * fix: Remove Compliance & Trust section from all industry pages * fix: Increase heading margin in About Us trust section * fix: Tighten footer link spacing within groups, increase group separation --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat: Add hiring process timeline to careers page Add comprehensive 5-step hiring process section with: - Horizontal timeline for desktop with connecting line - Vertical timeline for mobile with step indicators - Glassmorphic cards with icons for each step - Scroll animations and hover effects - 2-3 week timeline callout Steps: Application → TA Screening → HM Screening → Interviews → Offer Release Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: Improve hiring process icons and equalize description lengths - Step 3 (HM Screening): Change icon from user-circle to code-bracket - Step 4 (Interviews): Change icon from single-person to user-group - Equalize description lengths across steps 3-5 for visual alignment --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> Co-authored-by: vibemarketerpromax <chetan@procedure.tech> Co-authored-by: harshita375 <harshita@procedure.tech>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changes
Updated Files
app/services/[slug]/page.tsx:generateSchemas()function to create schema objectsSchema Implementation
ProfessionalService Schema
Each service page now includes:
FAQPage Schema
When FAQs exist in service frontmatter:
Pages Covered
This implementation automatically covers all service pages:
/services/ai-engineering/services/ai-security/services/ai-agents/services/ai-privacy/services/backend-development/services/frontend-development/services/mobile-development/services/product-design/services/cloud/services/kubernetes/services/software-testing-and-qa/services/design-systemsExample Schema Output
For
/services/ai-engineering:{ "@context": "https://schema.org", "@type": "ProfessionalService", "name": "AI Engineering Services", "description": "AI engineering services for teams that need reliable...", "url": "https://procedure.tech/services/ai-engineering", "provider": { "@type": "Organization", "name": "Procedure Technologies", "url": "https://procedure.tech" }, "areaServed": [ { "@type": "Country", "name": "United States" }, { "@type": "Country", "name": "India" } ], "serviceType": [ "AI System Architecture", "Model Development & Integration", "Data Pipelines & Feature Engineering", "MLOps & LLMOps", "AI Application Development", "AI System Monitoring & Optimization" ] }Implementation Status
Testing
After deployment, validate schemas using:
Test any service page, for example:
Related
schema-implementation-for-claude-code.md🤖 Generated with Claude Code