1
- import { getTools } from '@/lib/getTools' ;
2
- import ComparePage from './ComparePage' ;
1
+ 'use client'
3
2
4
- export async function generateMetadata ( props ) {
5
- const searchParams = await props . searchParams ;
6
- const allTools = getTools ( ) ;
7
- const selectedToolNames = searchParams . tools
8
- ? searchParams . tools . split ( ',' ) . map ( name => name . trim ( ) )
9
- : [ ] ;
10
- const selectedTools = selectedToolNames . map ( name =>
11
- allTools . find ( tool => tool . name === name )
12
- ) . filter ( Boolean ) ;
3
+ import React from 'react'
4
+ import { SimpleLayout } from '@/components/SimpleLayout'
5
+ import ComparisonAccordionExample from '@/components/ComparisonAccordionExample'
6
+ import { Tabs , TabsContent , TabsList , TabsTrigger } from '@/components/ui/tabs'
7
+ import { Info , AlertTriangle } from 'lucide-react'
13
8
14
- const toolNames = selectedTools . length > 0
15
- ? selectedTools . map ( tool => tool . name ) . join ( ', ' )
16
- : 'Developer Tools' ;
9
+ export default function CompareDevToolsPage ( ) {
10
+ return (
11
+ < SimpleLayout
12
+ title = "Developer Tools Comparison"
13
+ intro = "Compare features, capabilities, and use cases of popular AI-powered developer tools."
14
+ >
15
+ < div className = "bg-amber-50 border-l-4 border-amber-500 p-4 mb-8 rounded-r-md" >
16
+ < div className = "flex" >
17
+ < div className = "flex-shrink-0" >
18
+ < AlertTriangle className = "h-5 w-5 text-amber-500" />
19
+ </ div >
20
+ < div className = "ml-3" >
21
+ < h3 className = "text-sm font-medium text-amber-800" >
22
+ Experimental Feature
23
+ </ h3 >
24
+ < div className = "mt-2 text-sm text-amber-700" >
25
+ < p >
26
+ This comparison page is still under development. The data displayed may not be complete or fully accurate.
27
+ </ p >
28
+ </ div >
29
+ </ div >
30
+ </ div >
31
+ </ div >
17
32
18
- return {
19
- title : `Compare ${ toolNames } - AI Developer Tools` ,
20
- description : `Compare features and specifications of ${ toolNames } for developers.` ,
21
- openGraph : {
22
- title : `Compare ${ toolNames } - Developer Tools Comparison` ,
23
- description : `Compare features and specifications of ${ toolNames } for developers.` ,
24
- type : 'website' ,
25
- url : `https://zackproser.com/devtools/compare?tools=${ selectedToolNames . join ( ',' ) } ` ,
26
- images : [
27
- {
28
- url : 'https://zackproser.com/api/og' ,
29
- width : 1200 ,
30
- height : 630 ,
31
- alt : 'Developer Tools Comparison' ,
32
- } ,
33
- ] ,
34
- } ,
35
- twitter : {
36
- card : 'summary_large_image' ,
37
- title : `Compare ${ toolNames } - Developer Tools Comparison` ,
38
- description : `Compare features and specifications of ${ toolNames } for developers. Find the best tools for your development needs.` ,
39
- images : [ 'https://zackproser.com/api/og/' ] ,
40
- } ,
41
- } ;
42
- }
33
+ < div className = "bg-blue-50 border border-blue-200 rounded-lg p-6 mb-8" >
34
+ < div className = "flex items-start" >
35
+ < Info className = "h-6 w-6 text-blue-500 mt-0.5 mr-3 flex-shrink-0" />
36
+ < div >
37
+ < h3 className = "font-semibold text-blue-800 mb-2" > About This Comparison</ h3 >
38
+ < p className = "text-blue-700" >
39
+ This page presents a side-by-side comparison of Codeium and Aider, two popular AI-powered coding tools.
40
+ The comparison includes features, use cases, technical implementation details, and more.
41
+ </ p >
42
+ </ div >
43
+ </ div >
44
+ </ div >
43
45
44
- export default async function Page ( props ) {
45
- const searchParams = await props . searchParams ;
46
- const allTools = getTools ( ) ;
47
- return < ComparePage searchParams = { searchParams } allTools = { allTools } /> ;
46
+ < Tabs defaultValue = "feature-matrix" className = "mb-12" >
47
+ < TabsList className = "grid w-full grid-cols-2" >
48
+ < TabsTrigger value = "feature-matrix" > Feature Matrix</ TabsTrigger >
49
+ < TabsTrigger value = "extra-details" > Additional Details</ TabsTrigger >
50
+ </ TabsList >
51
+ < TabsContent value = "feature-matrix" className = "pt-6" >
52
+ < h2 className = "text-2xl font-bold mb-4" > Feature Comparison</ h2 >
53
+ < p className = "text-gray-600 dark:text-gray-300 mb-6" >
54
+ Compare core features and capabilities between these developer tools to find the best fit for your workflow.
55
+ </ p >
56
+
57
+ { /* Feature Matrix will render here from the actual tools data */ }
58
+ < div className = "bg-white dark:bg-gray-800 rounded-lg p-6 border border-gray-200 dark:border-gray-700" >
59
+ < h3 className = "text-xl font-semibold mb-4" > Feature Matrix</ h3 >
60
+ < p > Feature matrix component will be loaded dynamically based on selected tools.</ p >
61
+ </ div >
62
+ </ TabsContent >
63
+
64
+ < TabsContent value = "extra-details" className = "pt-6" >
65
+ < h2 className = "text-2xl font-bold mb-4" > Additional Comparison Details</ h2 >
66
+ < p className = "text-gray-600 dark:text-gray-300 mb-6" >
67
+ Beyond core features, these additional details can help you make a more informed decision about which tool is right for your needs.
68
+ </ p >
69
+
70
+ < ComparisonAccordionExample />
71
+ </ TabsContent >
72
+ </ Tabs >
73
+
74
+ < div className = "bg-gradient-to-r from-blue-500 to-purple-600 text-white rounded-xl p-8 shadow-xl" >
75
+ < h2 className = "text-2xl font-bold mb-3" > Need a Personalized Recommendation?</ h2 >
76
+ < p className = "mb-6 opacity-90" >
77
+ Book a consultation to get personalized advice on which AI development tools are best for your specific needs and workflow.
78
+ </ p >
79
+ < a
80
+ href = "/contact"
81
+ className = "inline-block bg-white text-blue-600 font-semibold px-6 py-3 rounded-lg hover:bg-blue-50 transition-colors shadow-md"
82
+ >
83
+ Schedule a Consultation
84
+ </ a >
85
+ </ div >
86
+ </ SimpleLayout >
87
+ )
48
88
}
0 commit comments