"use client"; import React, { useState } from "react"; import HeroCards from "./HeroCards"; import { Button, buttonVariants } from "../ui/button"; import Link from "next/link"; import { Check, Clipboard } from "lucide-react"; import GridPattern from "../ui/grid-pattern"; import AnimatedGradientText from "../ui/animated-gradient-text"; import { Happy_Monkey } from "next/font/google"; import { cn } from "@/lib/utils"; import Image from "next/image"; const happyMonkey = Happy_Monkey({ preload: true, weight: ["400"], subsets: ["latin"] }); const Hero = () => { const [isCopied, setIsCopied] = useState(false); const [command, setCommand] = useState( "curl -fsSL https://downloads.svrjs.org/installer/svr.js.installer.linux.20240509.sh > /tmp/installer.sh && sudo bash /tmp/installer.sh" ); const [selectedButton, setSelectedButton] = useState<"linux" | "docker">( "linux" ); const commands = { linux: "curl -fsSL https://downloads.svrjs.org/installer/svr.js.installer.linux.20240509.sh > /tmp/installer.sh && sudo bash /tmp/installer.sh", docker: "docker pull svrjs/svrjs && docker run --name mysvrjs -d -p 80:80 --restart=always svrjs/svrjs" }; const copyToClipboard = () => { navigator.clipboard.writeText(command); setIsCopied(true); setTimeout(() => setIsCopied(false), 2000); }; const handleButtonClick = (type: "linux" | "docker") => { setCommand(commands[type]); setSelectedButton(type); }; return (
🎉{" "}
Expanding server functionality

Host with{" "} reliability , scale with{" "} ease

Host reliably and securely, and scale effortlessly with SVR.JS, an open-source and configurable web server running on Node.JS that's designed to handle high loads.

|

or

Download
Curly arrow Try Now!
); }; export default Hero;