@@ -19,7 +19,16 @@ interface FeatureCardProps {
1919 lottieData ?: unknown ;
2020}
2121
22- function FeatureCard ( { title, description, href, actionText = 'Learn more' , image, imageAlt, video, lottieData } : FeatureCardProps ) {
22+ function FeatureCard ( {
23+ title,
24+ description,
25+ href,
26+ actionText = 'Learn more' ,
27+ image,
28+ imageAlt,
29+ video,
30+ lottieData
31+ } : FeatureCardProps ) {
2332 const containerRef = useRef < HTMLDivElement > ( null ) ;
2433 const videoRef = useRef < HTMLVideoElement > ( null ) ;
2534 const [ hasBeenVisible , setHasBeenVisible ] = useState ( false ) ;
@@ -45,18 +54,17 @@ function FeatureCard({ title, description, href, actionText = 'Learn more', imag
4554 } , [ hasBeenVisible , video ] ) ;
4655
4756 return (
48- < div ref = { containerRef } className = "dark:bg-gray-900 bg-gray-50 w-full p-6 rounded-xl grid grid-cols-1 md:grid-cols-5 gap-8" >
57+ < div
58+ ref = { containerRef }
59+ className = "dark:bg-gray-900 bg-gray-50 w-full p-6 rounded-xl grid grid-cols-1 md:grid-cols-5 gap-8"
60+ >
4961 < a
5062 href = { href }
5163 target = "_blank"
5264 className = "col-span-2 group text-black dark:text-white !no-underline hover:text-black hover:dark:text-white cursor-pointer flex flex-col justify-center"
5365 >
54- < div className = "font-medium text-2xl mb-4 group-hover:ml-2 transition-all" >
55- { title }
56- </ div >
57- < div className = "text-md mb-4 group-hover:ml-2 transition-all max-w-sm" >
58- { description }
59- </ div >
66+ < div className = "font-medium text-2xl mb-4 group-hover:ml-2 transition-all" > { title } </ div >
67+ < div className = "text-md mb-4 group-hover:ml-2 transition-all max-w-sm" > { description } </ div >
6068 < div className = "text-sm text-blue-500 dark:text-blue-300 flex flex-row items-center gap-2 group-hover:ml-2 transition-all" >
6169 { actionText }
6270 < ArrowRight size = { 20 } />
@@ -98,9 +106,14 @@ function BenchmarkCard() {
98106 return (
99107 < div className = "dark:bg-gray-900 bg-gray-50 w-full p-6 rounded-xl" >
100108 < div className = "mb-4" >
101- < h3 className = "text-2xl font-medium text-gray-900 dark:text-white mb-4" > Run at any scale with best performance</ h3 >
109+ < h3 className = "text-2xl font-medium text-gray-900 dark:text-white mb-4" >
110+ Run at any scale with best performance
111+ </ h3 >
102112 < p className = "text-md text-gray-600 dark:text-gray-300 mb-4" >
103- We engineered Windmill to be the fastest orchestrator in the industry, ensuring your most demanding workloads never bottleneck. From a single-node VPS to 1,000-node K8s clusters, auto-scale on demand or isolate critical tasks with dedicated worker groups on Kubernetes and Docker.
113+ We engineered Windmill to be the fastest orchestrator in the industry, ensuring your most
114+ demanding workloads never bottleneck. From a single-node VPS to 1,000-node K8s clusters,
115+ auto-scale on demand or isolate critical tasks with dedicated worker groups on Kubernetes
116+ and Docker.
104117 </ p >
105118 < a
106119 href = "https://www.windmill.dev/docs/misc/benchmarks/competitors"
@@ -121,14 +134,14 @@ function BenchmarkCard() {
121134 title = "Switch between short and long running tasks"
122135 onChange = { ( ) => setChart ( chart === 'long' ? 'short' : 'long' ) }
123136 className = { `${
124- chart === 'short'
125- ? 'bg-blue-500 dark:bg-blue-900'
126- : 'bg-gray-200 dark:bg-gray-800'
137+ chart === 'short' ? 'bg-blue-500 dark:bg-blue-900' : 'bg-gray-200 dark:bg-gray-800'
127138 } relative inline-flex h-[24px] w-[48px] shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75`}
128139 >
129140 < span
130141 aria-hidden = "true"
131- className = { `${ chart === 'short' ? 'translate-x-6' : 'translate-x-0' } pointer-events-none inline-block h-[20px] w-[20px] transform rounded-full bg-white shadow-lg ring-0 transition duration-200 ease-in-out` }
142+ className = { `${
143+ chart === 'short' ? 'translate-x-6' : 'translate-x-0'
144+ } pointer-events-none inline-block h-[20px] w-[20px] transform rounded-full bg-white shadow-lg ring-0 transition duration-200 ease-in-out`}
132145 />
133146 </ Switch >
134147 < span className = { classNames ( 'font-light text-sm text-gray-900 dark:text-white' ) } >
@@ -150,7 +163,14 @@ function BenchmarkCard() {
150163 < BenchmarkVisualization
151164 usecase = "fibonacci_40_10"
152165 language = "python"
153- engines = { [ 'airflow' , 'kestra' , 'prefect' , 'temporal' , 'windmill' , 'windmill_dedicated' ] }
166+ engines = { [
167+ 'airflow' ,
168+ 'kestra' ,
169+ 'prefect' ,
170+ 'temporal' ,
171+ 'windmill' ,
172+ 'windmill_dedicated'
173+ ] }
154174 workers = { 1 }
155175 title = "40 lightweight tasks comparison"
156176 maintainAspectRatio = { false }
@@ -162,7 +182,14 @@ function BenchmarkCard() {
162182 < BenchmarkVisualization
163183 usecase = "fibonacci_10_33"
164184 language = "python"
165- engines = { [ 'airflow' , 'kestra' , 'prefect' , 'temporal' , 'windmill' , 'windmill_dedicated' ] }
185+ engines = { [
186+ 'airflow' ,
187+ 'kestra' ,
188+ 'prefect' ,
189+ 'temporal' ,
190+ 'windmill' ,
191+ 'windmill_dedicated'
192+ ] }
166193 workers = { 1 }
167194 title = "10 long running tasks comparison"
168195 maintainAspectRatio = { false }
@@ -186,10 +213,11 @@ export default function DeveloperExperienceSection() {
186213 < div className = "w-full" >
187214 < div className = "mb-12 text-left" >
188215 < h1 className = "tracking-tight leading-tight text-left font-bold text-transparent bg-clip-text bg-gradient-to-br from-blue-500 to-blue-700 dark:from-blue-400 dark:to-blue-600" >
189- Made for developers, used across the whole organization
216+ Run in production
190217 </ h1 >
191218 < span className = "text-lg text-gray-700 dark:text-gray-200" >
192- We make it easy for developers to build internal software and deploy it across their whole organization with no overhead.
219+ Review, deploy and run on the most scalable and reliable infra with workers managed by
220+ Windmill, and all observability, alerting and error handling built-in (+export to OTEL)
193221 </ span >
194222 </ div >
195223 < div className = "flex flex-col gap-6" >
0 commit comments