@@ -11,8 +11,10 @@ import { BrandIconTile, SimIconTile } from '@/app/(landing)/comparisons/componen
1111import { ComparisonCards } from '@/app/(landing)/comparisons/components/comparison-cards'
1212import { ComparisonLinkRow } from '@/app/(landing)/comparisons/components/comparison-link-row'
1313import { ComparisonTable } from '@/app/(landing)/comparisons/components/comparison-table'
14+ import { GlanceTable } from '@/app/(landing)/comparisons/components/glance-table'
1415import { MigrationSection } from '@/app/(landing)/comparisons/components/migration-section'
1516import { ProseText } from '@/app/(landing)/comparisons/components/prose-text'
17+ import { QuestionSections } from '@/app/(landing)/comparisons/components/question-sections'
1618import { getLibraryPostsForCompetitor } from '@/app/(landing)/comparisons/library-links'
1719import {
1820 ALL_COMPETITORS ,
@@ -117,6 +119,17 @@ export default async function ComparisonProviderPage({
117119 Math . max ( SIM_LATEST_VERIFIED . getTime ( ) , getLatestVerifiedDate ( competitor ) . getTime ( ) )
118120 )
119121
122+ const verifiedDate = (
123+ < time dateTime = { latestVerified . toISOString ( ) . slice ( 0 , 10 ) } >
124+ { latestVerified . toLocaleDateString ( 'en-US' , {
125+ month : 'long' ,
126+ day : 'numeric' ,
127+ year : 'numeric' ,
128+ timeZone : 'UTC' ,
129+ } ) }
130+ </ time >
131+ )
132+
120133 const productComparisonJsonLd = {
121134 '@context' : 'https://schema.org' ,
122135 '@type' : 'ItemList' ,
@@ -186,32 +199,43 @@ export default async function ComparisonProviderPage({
186199 >
187200 Sim vs { competitor . name }
188201 </ h1 >
189- { competitor . leadAnswer ? (
190- < p className = 'max-w-[720px] text-[var(--text-body)] text-sm leading-[150%] tracking-[0.02em] lg:text-base' >
191- < ProseText prose = { competitor . leadAnswer } />
192- </ p >
193- ) : null }
194- < p className = 'max-w-[720px] text-[var(--text-muted)] text-sm leading-[150%] tracking-[0.02em] lg:text-base' >
195- Sim is the open-source AI workspace where teams build, deploy, and manage AI agents
196- visually, conversationally, or with code. Here is how Sim compares to{ ' ' }
197- { competitor . name } on platform architecture, AI capabilities, integrations, pricing,
198- security, and support. Every fact below is sourced and dated, last verified{ ' ' }
199- < time dateTime = { latestVerified . toISOString ( ) . slice ( 0 , 10 ) } >
200- { latestVerified . toLocaleDateString ( 'en-US' , {
201- month : 'long' ,
202- day : 'numeric' ,
203- year : 'numeric' ,
204- timeZone : 'UTC' ,
205- } ) }
206- </ time >
207- .
208- </ p >
209- < p className = 'sr-only' >
210- Sim is an open-source AI workspace for building, deploying, and managing AI agents.
211- This page compares Sim to { competitor . name } across platform architecture, AI
212- capabilities, integrations, pricing, security and compliance, observability, and
213- support, using sourced, dated facts for buyers evaluating both platforms.
214- </ p >
202+ { competitor . leadQuestion && competitor . leadAnswer ? (
203+ < section aria-labelledby = 'lead-question-heading' className = 'flex flex-col gap-3' >
204+ < h2
205+ id = 'lead-question-heading'
206+ className = 'max-w-[720px] text-balance text-[var(--text-primary)] text-xl leading-[120%] tracking-[-0.02em] lg:text-2xl'
207+ >
208+ { competitor . leadQuestion }
209+ </ h2 >
210+ < p className = 'max-w-[720px] text-[var(--text-body)] text-sm leading-[150%] tracking-[0.02em] lg:text-base' >
211+ < ProseText prose = { competitor . leadAnswer } />
212+ </ p >
213+ < p className = 'max-w-[720px] text-[var(--text-muted)] text-sm leading-[150%] tracking-[0.02em] lg:text-base' >
214+ Every fact below is sourced and dated, last verified { verifiedDate } .
215+ </ p >
216+ </ section >
217+ ) : (
218+ < >
219+ { competitor . leadAnswer ? (
220+ < p className = 'max-w-[720px] text-[var(--text-body)] text-sm leading-[150%] tracking-[0.02em] lg:text-base' >
221+ < ProseText prose = { competitor . leadAnswer } />
222+ </ p >
223+ ) : null }
224+ < p className = 'max-w-[720px] text-[var(--text-muted)] text-sm leading-[150%] tracking-[0.02em] lg:text-base' >
225+ Sim is the open-source AI workspace where teams build, deploy, and manage AI
226+ agents visually, conversationally, or with code. Here is how Sim compares to{ ' ' }
227+ { competitor . name } on platform architecture, AI capabilities, integrations,
228+ pricing, security, and support. Every fact below is sourced and dated, last
229+ verified { verifiedDate } .
230+ </ p >
231+ < p className = 'sr-only' >
232+ Sim is an open-source AI workspace for building, deploying, and managing AI
233+ agents. This page compares Sim to { competitor . name } across platform architecture,
234+ AI capabilities, integrations, pricing, security and compliance, observability,
235+ and support, using sourced, dated facts for buyers evaluating both platforms.
236+ </ p >
237+ </ >
238+ ) }
215239 </ div >
216240 </ div >
217241
@@ -241,6 +265,9 @@ export default async function ComparisonProviderPage({
241265 < div className = 'h-px w-full bg-[var(--border)]' />
242266 </ >
243267 ) : null }
268+ { competitor . questions ?. intro ? (
269+ < QuestionSections questions = { competitor . questions . intro } idPrefix = 'intro-question' />
270+ ) : null }
244271 < div className = 'grid grid-cols-1 sm:grid-cols-2' >
245272 < section
246273 aria-labelledby = 'what-is-sim-heading'
@@ -280,6 +307,19 @@ export default async function ComparisonProviderPage({
280307
281308 < div className = 'h-px w-full bg-[var(--border)]' />
282309
310+ { competitor . glance ? (
311+ < >
312+ < GlanceTable rows = { competitor . glance } competitorName = { competitor . name } />
313+ < div className = 'h-px w-full bg-[var(--border)]' />
314+ </ >
315+ ) : null }
316+ { competitor . questions ?. glance ? (
317+ < QuestionSections
318+ questions = { competitor . questions . glance }
319+ idPrefix = 'glance-question'
320+ />
321+ ) : null }
322+
283323 < section aria-labelledby = 'comparison-table-heading' className = 'px-6 pt-10 pb-4' >
284324 < h2
285325 id = 'comparison-table-heading'
@@ -351,6 +391,13 @@ export default async function ComparisonProviderPage({
351391
352392 < div className = 'h-px w-full bg-[var(--border)]' />
353393
394+ { competitor . questions ?. closing ? (
395+ < QuestionSections
396+ questions = { competitor . questions . closing }
397+ idPrefix = 'closing-question'
398+ />
399+ ) : null }
400+
354401 < section aria-labelledby = 'bottom-line-heading' className = 'px-6 py-10' >
355402 < h2
356403 id = 'bottom-line-heading'
@@ -406,17 +453,19 @@ export default async function ComparisonProviderPage({
406453 </ ul >
407454 </ section >
408455
409- < section aria-labelledby = 'faq-heading' className = 'px-6 py-10' >
410- < h2
411- id = 'faq-heading'
412- className = 'mb-4 text-[var(--text-primary)] text-xl leading-[100%] tracking-[-0.02em] lg:text-2xl'
413- >
414- Frequently asked questions
415- </ h2 >
416- < div >
417- < LandingFAQ faqs = { faqs } />
418- </ div >
419- </ section >
456+ { competitor . questions ? null : (
457+ < section aria-labelledby = 'faq-heading' className = 'px-6 py-10' >
458+ < h2
459+ id = 'faq-heading'
460+ className = 'mb-4 text-[var(--text-primary)] text-xl leading-[100%] tracking-[-0.02em] lg:text-2xl'
461+ >
462+ Frequently asked questions
463+ </ h2 >
464+ < div >
465+ < LandingFAQ faqs = { faqs } />
466+ </ div >
467+ </ section >
468+ ) }
420469 </ div >
421470 </ div >
422471
0 commit comments