Spaces:
Running
Running
File size: 18,919 Bytes
5301c48 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 |
'use client';
import Image from 'next/image'
import { Button } from "@/components/ui/button"
import { useRouter } from 'next/navigation'
import { Database, Cpu, Share2, BarChart3, ChevronDown, Plus, Minus, PlayCircle, Github, Copy, Calendar } from 'lucide-react'
import { motion, AnimatePresence } from 'framer-motion'
import { useState } from 'react'
import Link from 'next/link'
const colorScheme = {
primary: "#DB2777", // Main pink color for buttons and primary elements
hover: "#BE185D", // Darker pink for hover states
text: {
primary: "#DB2777", // Pink for primary text
secondary: "#6B7280", // Gray for secondary text
white: "#FFFFFF" // White text
},
background: "#FDF2F8" // Light pink background
};
export default function HomePage() {
const router = useRouter();
const [openFaqIndex, setOpenFaqIndex] = useState<number | null>(null);
const [copied, setCopied] = useState(false);
const copyCommand = () => {
navigator.clipboard.writeText('pip install starfish-core');
setCopied(true);
setTimeout(() => setCopied(false), 2000);
};
const faqs = [
{
question: "What is Starfishdata's mission in healthcare?",
answer: "Starfishdata is dedicated to solving the data bottleneck in Healthcare AI by providing high-quality, privacy-preserving synthetic data for research, development, and deployment of AI solutions."
},
{
question: "How does Starfishdata ensure patient privacy?",
answer: "We use advanced generative models and strict privacy-preserving techniques to ensure that no real patient data is ever exposed or re-identifiable in our synthetic datasets."
},
{
question: "Who can benefit from Starfishdata's solutions?",
answer: "Healthcare AI startups, hospitals, research institutions, and any organization facing data scarcity or privacy challenges in healthcare can benefit from our synthetic data platform."
},
{
question: "What makes Starfishdata different from other synthetic data providers?",
answer: "Our exclusive focus on healthcare, deep expertise in generative AI, and commitment to regulatory compliance set us apart. We partner closely with clients to deliver data that accelerates innovation while protecting patient privacy."
}
];
const toggleFaq = (index: number) => {
setOpenFaqIndex(openFaqIndex === index ? null : index);
};
const scrollToVideo = () => {
const videoSection = document.getElementById('youtube-video')
if (videoSection) {
videoSection.scrollIntoView({
behavior: 'smooth',
block: 'start'
})
}
}
return (
<div className="min-h-screen bg-[#FDF2F8] font-sans overflow-x-hidden">
<motion.header
className="min-h-screen flex flex-col items-center justify-center py-10"
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
>
<div className="text-center relative z-10 w-full max-w-2xl mx-auto">
<motion.div
className="w-44 h-44 mx-auto mb-8"
animate={{
y: [0, -10, 0],
rotate: [0, 5, -5, 0]
}}
transition={{
repeat: Infinity,
duration: 4,
ease: "easeInOut"
}}
>
<Image
src="/starfish_logo.png"
alt="Starfish Logo"
width={180}
height={180}
className="w-full h-full object-contain"
priority
/>
</motion.div>
<motion.h1
className="text-4xl sm:text-5xl md:text-6xl font-bold text-[#DB2777] mb-4"
initial={{ y: 20, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ delay: 0.2 }}
>
Starfishdata
</motion.h1>
<motion.p
className="text-lg sm:text-xl text-[#6B7280] mb-8 max-w-xl mx-auto font-normal"
initial={{ y: 20, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ delay: 0.4 }}
>
Solving the data bottleneck in Healthcare AI
</motion.p>
{/* Social Links (X, Discord, Hugging Face) */}
<div className="flex justify-center gap-4 mb-8">
<Link
href="https://github.com/starfishdata/starfish"
target="_blank"
className="text-gray-600 hover:text-[#DB2777] transition-colors"
aria-label="GitHub"
>
<Github className="h-5 w-5" />
</Link>
<Link
href="https://twitter.com/starfishdata"
target="_blank"
className="text-gray-600 hover:text-[#DB2777] transition-colors"
aria-label="Twitter"
>
<svg className="h-5 w-5" viewBox="0 0 24 24" fill="currentColor">
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/>
</svg>
</Link>
<Link
href="https://discord.com/invite/qWKmeUtb"
target="_blank"
className="text-gray-600 hover:text-[#DB2777] transition-colors"
aria-label="Discord"
>
<svg className="h-5 w-5" viewBox="0 0 24 24" fill="currentColor">
<path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"/>
</svg>
</Link>
<Link
href="https://huggingface.co/starfishdata"
target="_blank"
className="text-gray-600 hover:text-[#DB2777] transition-colors"
aria-label="Hugging Face"
>
<svg className="h-5 w-5" viewBox="0 0 24 24" fill="currentColor">
<path d="M12.025 1.13c-5.77 0-10.449 4.647-10.449 10.378 0 1.112.178 2.181.503 3.185.064-.222.203-.444.416-.577a.96.96 0 0 1 .524-.15c.293 0 .584.124.84.284.278.173.48.408.71.694.226.282.458.611.684.951v-.014c.017-.324.106-.622.264-.874s.403-.487.762-.543c.3-.047.596.06.787.203s.31.313.4.467c.15.257.212.468.233.542.01.026.653 1.552 1.657 2.54.616.605 1.01 1.223 1.082 1.912.055.537-.096 1.059-.38 1.572.637.121 1.294.187 1.967.187.657 0 1.298-.063 1.921-.178-.287-.517-.44-1.041-.384-1.581.07-.69.465-1.307 1.081-1.913 1.004-.987 1.647-2.513 1.657-2.539.021-.074.083-.285.233-.542.09-.154.208-.323.4-.467a1.08 1.08 0 0 1 .787-.203c.359.056.604.29.762.543s.247.55.265.874v.015c.225-.34.457-.67.683-.952.23-.286.432-.52.71-.694.257-.16.547-.284.84-.285a.97.97 0 0 1 .524.151c.228.143.373.388.43.625l.006.04a10.3 10.3 0 0 0 .534-3.273c0-5.731-4.678-10.378-10.449-10.378M8.327 6.583a1.5 1.5 0 0 1 .713.174 1.487 1.487 0 0 1 .617 2.013c-.183.343-.762-.214-1.102-.094-.38.134-.532.914-.917.71a1.487 1.487 0 0 1 .69-2.803m7.486 0a1.487 1.487 0 0 1 .689 2.803c-.385.204-.536-.576-.916-.71-.34-.12-.92.437-1.103.094a1.487 1.487 0 0 1 .617-2.013 1.5 1.5 0 0 1 .713-.174m-10.68 1.55a.96.96 0 1 1 0 1.921.96.96 0 0 1 0-1.92m13.838 0a.96.96 0 1 1 0 1.92.96.96 0 0 1 0-1.92M8.489 11.458c.588.01 1.965 1.157 3.572 1.164 1.607-.007 2.984-1.155 3.572-1.164.196-.003.305.12.305.454 0 .886-.424 2.328-1.563 3.202-.22-.756-1.396-1.366-1.63-1.32q-.011.001-.02.006l-.044.026-.01.008-.03.024q-.018.017-.035.036l-.032.04a1 1 0 0 0-.058.09l-.014.025q-.049.088-.11.19a1 1 0 0 1-.083.116 1.2 1.2 0 0 1-.173.18q-.035.029-.075.058a1.3 1.3 0 0 1-.251-.243 1 1 0 0 1-.076-.107c-.124-.193-.177-.363-.337-.444-.034-.016-.104-.008-.2.022q-.094.03-.216.087-.06.028-.125.063l-.13.074q-.067.04-.136.086a3 3 0 0 0-.135.096 3 3 0 0 0-.26.219 2 2 0 0 0-.12.121 2 2 0 0 0-.106.128l-.002.002a2 2 0 0 0-.09.132l-.001.001a1.2 1.2 0 0 0-.105.212q-.013.036-.024.073c-1.139-.875-1.563-2.317-1.563-3.203 0-.334.109-.457.305-.454m.836 10.354c.824-1.19.766-2.082-.365-3.194-1.13-1.112-1.789-2.738-1.789-2.738s-.246-.945-.806-.858-.97 1.499.202 2.362c1.173.864-.233 1.45-.685.64-.45-.812-1.683-2.896-2.322-3.295s-1.089-.175-.938.647 2.822 2.813 2.562 3.244-1.176-.506-1.176-.506-2.866-2.567-3.49-1.898.473 1.23 2.037 2.16c1.564.932 1.686 1.178 1.464 1.53s-3.675-2.511-4-1.297c-.323 1.214 3.524 1.567 3.287 2.405-.238.839 2.71-1.587 3.216-.642.506.946 3.49 2.056 3.522 2.064 1.29.33 4.568 1.028 5.713-.624m5.349 0c-.824-1.19-.766-2.082.365-3.194 1.13-1.112 1.789-2.738 1.789-2.738s.246-.945.806-.858.97 1.499-.202 2.362c-1.173.864.233 1.45.685.64.451-.812 1.683-2.896 2.322-3.295s1.089-.175.938.647-2.822 2.813-2.562 3.244 1.176-.506 1.176-.506 2.866-2.567 3.49-1.898-.473 1.23-2.037 2.16c-1.564.932-1.686 1.178-1.464 1.53s3.675-2.511 4-1.297c.323 1.214-3.524 1.567-3.287 2.405.238.839 2.71-1.587 3.216-.642.506.946-3.49 2.056-3.522 2.064-1.29.33-4.568 1.028-5.713-.624"/>
</svg>
</Link>
</div>
{/* Schedule a Call with Us - Main CTA */}
<Link
href="https://calendly.com/d/crsb-ckq-fv2/chat-with-starfishdata-team"
target="_blank"
className="inline-flex items-center justify-center h-10 px-8 text-sm font-semibold rounded-lg bg-[#DB2777] text-white hover:bg-[#BE185D] transition-all duration-200 mb-8 mx-auto shadow-sm"
>
<Calendar className="mr-2 h-5 w-5" />
Schedule a Call with Us
</Link>
{/* Divider below CTA */}
<div className="w-full flex justify-center mb-8"><div className="w-24 border-t border-gray-200"></div></div>
{/* Code block for pip install */}
<div className="relative mb-8 px-2 sm:px-4">
<div className="text-sm text-gray-500 mb-2">Try our open source library</div>
<div className="bg-gray-900 rounded-lg p-4 flex justify-between items-center max-w-xs sm:max-w-sm mx-auto">
<code className="text-white text-sm font-mono">pip install starfish-core</code>
<button
onClick={copyCommand}
className="text-gray-400 hover:text-white transition-colors ml-4"
>
{copied ? (
<span className="text-green-400 text-sm">Copied!</span>
) : (
<Copy className="h-4 w-4" />
)}
</button>
</div>
</div>
{/* Consistent Secondary Buttons under code block */}
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center mb-8 w-full max-w-md mx-auto">
<Link
href="https://github.com/starfishdata/starfish"
target="_blank"
className="sm:min-w-[210px] h-10 px-8 text-sm font-semibold rounded-lg bg-[#DB2777] text-white whitespace-nowrap hover:bg-[#BE185D] transition-all duration-200 flex items-center justify-center"
>
<Github className="mr-2 h-5 w-5" />
Star on GitHub
</Link>
<Button
type="button"
className="sm:min-w-[210px] h-10 px-8 text-sm font-semibold rounded-lg bg-white text-[#DB2777] whitespace-nowrap border border-[#DB2777] hover:bg-pink-50 transition-all duration-200 flex items-center justify-center"
onClick={() => router.push('/signin')}
>
Try our managed version
</Button>
</div>
{/* Divider before Supported by section */}
<div className="w-full flex justify-center mb-8"><div className="w-24 border-t border-gray-200"></div></div>
{/* Supported by Section (social proof) */}
<div className="w-full flex flex-col items-center mt-8">
<h2 className="text-base font-bold text-[#DB2777] mb-2">Supported by</h2>
<div className="flex flex-row items-center justify-center gap-12">
<Image
src="/nvidia.png"
alt="NVIDIA Inception Partner"
width={180}
height={64}
className="object-contain h-16 w-auto"
/>
<Image
src="/microsoft_startups.png"
alt="Microsoft for Startups"
width={220}
height={64}
className="object-contain h-16 w-auto"
/>
</div>
</div>
</div>
</motion.header>
{/* Scroll Indicator Section */}
<motion.div
className="flex justify-center py-8"
initial={{ opacity: 0, y: -10 }}
animate={{
opacity: [0, 1, 0],
y: [0, 10, 0]
}}
transition={{
repeat: Infinity,
duration: 2,
ease: "easeInOut"
}}
>
<div className="flex flex-col items-center text-pink-600">
<span className="text-sm font-medium mb-2">Scroll to explore</span>
<ChevronDown className="h-6 w-6 animate-bounce" />
</div>
</motion.div>
{/* FAQ Section */}
<section className="py-12 sm:py-24 px-4">
<motion.h2
className="text-4xl font-bold text-[#DB2777] text-center mb-16"
>
Frequently Asked Questions
</motion.h2>
<div className="max-w-3xl mx-auto">
{faqs.map((faq, index) => (
<motion.div
key={index}
className="mb-6"
>
<button
className="w-full px-6 py-4 bg-white rounded-2xl flex items-center justify-between text-[#DB2777] hover:bg-pink-50/50 transition-all"
onClick={() => toggleFaq(index)}
>
<span className="text-xl font-medium text-left">{faq.question}</span>
{openFaqIndex === index ? (
<Minus className="w-6 h-6 flex-shrink-0" />
) : (
<Plus className="w-6 h-6 flex-shrink-0" />
)}
</button>
<AnimatePresence>
{openFaqIndex === index && (
<motion.div
initial={{ height: 0, opacity: 0 }}
animate={{ height: "auto", opacity: 1 }}
exit={{ height: 0, opacity: 0 }}
transition={{ duration: 0.3 }}
className="overflow-hidden"
>
<div className="px-6 py-4 text-gray-600">
<p className="text-lg">{faq.answer}</p>
</div>
</motion.div>
)}
</AnimatePresence>
</motion.div>
))}
</div>
</section>
{/* Footer CTA */}
<motion.footer
className="py-12 sm:py-24 text-center px-4"
>
<h2 className="text-4xl font-bold text-[#DB2777] mb-8">
Ready to Get Started?
</h2>
<p className="text-xl text-[#6B7280] mb-12 max-w-2xl mx-auto">
Join us in revolutionizing AI development with high-quality synthetic data
</p>
{/* Add social row above the main footer CTA */}
<div className="flex justify-center gap-6 mb-8">
<Link
href="https://github.com/starfishdata/starfish"
target="_blank"
className="text-gray-400 hover:text-[#DB2777] transition-colors"
aria-label="GitHub"
>
<Github className="h-5 w-5" />
</Link>
<Link
href="https://twitter.com/starfishdata"
target="_blank"
className="text-gray-400 hover:text-[#DB2777] transition-colors"
aria-label="Twitter"
>
<svg className="h-5 w-5" viewBox="0 0 24 24" fill="currentColor">
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/>
</svg>
</Link>
<Link
href="https://discord.com/invite/qWKmeUtb"
target="_blank"
className="text-gray-400 hover:text-[#DB2777] transition-colors"
aria-label="Discord"
>
<svg className="h-5 w-5" viewBox="0 0 24 24" fill="currentColor">
<path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"/>
</svg>
</Link>
</div>
<Button
className="px-8 py-3 text-base font-medium rounded-lg bg-[#DB2777] hover:bg-[#BE185D] text-white transition-colors flex items-center justify-center mx-auto"
onClick={() => window.open('https://calendly.com/d/crsb-ckq-fv2/chat-with-starfishdata-team', '_blank')}
>
<Calendar className="mr-2 h-5 w-5" />
Schedule a Call with Us
</Button>
</motion.footer>
</div>
)
} |