|
| 1 | +"use client"; |
| 2 | + |
1 | 3 | import Images from "@/app/components/Images";
|
2 | 4 | import Nav from "@/app/components/Nav";
|
3 | 5 | import Socials from "@/app/components/Socials";
|
| 6 | +import Image from "next/image"; |
4 | 7 | import Link from "next/link";
|
| 8 | +import { FaArrowTurnDown, FaArrowTurnUp } from "react-icons/fa6"; |
| 9 | +import Footer from "./components/Footer"; |
5 | 10 | import Signature from "./components/Signature";
|
6 | 11 |
|
| 12 | +import { useState } from "react"; |
| 13 | + |
| 14 | +const team = [ |
| 15 | + { |
| 16 | + name: "Artem", |
| 17 | + nickname: "renbou", |
| 18 | + description: "A leader, an experienced CTF player and a valuable part of a <span class='landing-highlight'> HFT </span> company.<br /><br />Artem has a broad background and wields an extensive professional skillset ranging from Security Audits of <span class='landing-highlight'> DeFi </span> Applications to Enterprise-level <span class='landing-highlight'> Cloud </span> Engineering.", |
| 19 | + src: "images/renbou.png", |
| 20 | + skills: ["CTF", "Infrastructure", "DevOps", "Programming"], |
| 21 | + socials: [ |
| 22 | + { |
| 23 | + href: "https://github.com/renbou", |
| 24 | + src: "/icons/github.svg", |
| 25 | + alt: "renbou GitHub Profile", |
| 26 | + width: 170.67, |
| 27 | + height: 166.46, |
| 28 | + }, |
| 29 | + ], |
| 30 | + }, |
| 31 | + { |
| 32 | + name: "Seva", |
| 33 | + nickname: "Slonser", |
| 34 | + description: "Security Researcher to the very core & a profitable Bug Bounty Hunter with a number of <span class='landing-highlight'> CVE </span> registered on his name.<br /><br />Seva makes the world a safer place by catching & reporting  <span class='landing-highlight'> 0-day </span>  vulnerabilities in products used by millions of users every day, including <span class='font-normal'>Metamask</span>, <span class='font-normal'>Tonkeeper</span>, <span class='font-normal'>Chromium</span>, <span class='font-normal'>Gmail</span>, <span class='font-normal'>Outlook</span> and <span class='font-normal'>DOMPurify</span>.", |
| 35 | + src: "images/slonser.png", |
| 36 | + skills: ["CTF", "Speaker", "Bug Bounty", "0-day", "Research"], |
| 37 | + socials: [ |
| 38 | + { |
| 39 | + href: "https://x.com/Slonser_", |
| 40 | + src: "/icons/twitter.svg", |
| 41 | + alt: "Slonser X (Twitter) Profile", |
| 42 | + width: 194.97, |
| 43 | + height: 194.56, |
| 44 | + }, |
| 45 | + { |
| 46 | + href: "https://github.com/slonser", |
| 47 | + src: "/icons/github.svg", |
| 48 | + alt: "Slonser GitHub Profile", |
| 49 | + width: 170.67, |
| 50 | + height: 166.46, |
| 51 | + }, |
| 52 | + { |
| 53 | + href: "https://blog.slonser.info", |
| 54 | + src: "/icons/website.svg", |
| 55 | + alt: "Slonser Blog", |
| 56 | + width: 170.67, |
| 57 | + height: 166.46, |
| 58 | + }, |
| 59 | + ], |
| 60 | + }, |
| 61 | + { |
| 62 | + name: "Elizabeth", |
| 63 | + nickname: "qwqoro", |
| 64 | + description: "Hacker* (*Penetration Tester) by day, Security Researcher by night.<br /><br />Elizabeth is a certified offensive security specialist, who conducts <span class='landing-highlight'> researches </span> on in-the-wild vulnerabilities and threats, writes her own articles and gives talks at international conferences.", |
| 65 | + src: "images/qwqoro.png", |
| 66 | + skills: ["Speaker", "Pentest", "Audit", "Research"], |
| 67 | + socials: [ |
| 68 | + { |
| 69 | + href: "https://x.com/qwqoro", |
| 70 | + src: "/icons/twitter.svg", |
| 71 | + alt: "qwqoro X (Twitter) Profile", |
| 72 | + width: 194.97, |
| 73 | + height: 194.56, |
| 74 | + }, |
| 75 | + { |
| 76 | + href: "https://github.com/qwqoro", |
| 77 | + src: "/icons/github.svg", |
| 78 | + alt: "qwqoro GitHub Profile", |
| 79 | + width: 170.67, |
| 80 | + height: 166.46, |
| 81 | + }, |
| 82 | + { |
| 83 | + href: "https://qwqoro.works/", |
| 84 | + src: "/icons/website.svg", |
| 85 | + alt: "qwqoro Blog", |
| 86 | + width: 170.67, |
| 87 | + height: 166.46, |
| 88 | + }, |
| 89 | + ], |
| 90 | + } |
| 91 | +]; |
| 92 | + |
7 | 93 | export default function Landing() {
|
| 94 | + |
| 95 | + const [subject, setSubject] = useState(""); |
| 96 | + |
| 97 | + const subjectHint = { |
| 98 | + "audit": "Discuss an <b>Audit</b> / Security Assessment / Penetration Test of your product(s), including <b>Web2</b> and <b>Mobile</b> applications, <b>Blockchain</b> technologies, <b>Web3 DApps</b> and <b>Smart Contracts</b>.", |
| 99 | + "event": "Make us your partners and ask us to <b>develop tasks</b> for your event (CTF or another form of competition, a workshop, etc.)", |
| 100 | + "invite": "Invite Neplox to participate in a <b>competition</b> (CTF, hackathon or attackathon), a <b>conference</b> or a <b>live stream</b> held by you.", |
| 101 | + "collaboration": "Invite us to participate in an <b>audit</b>, a <b>research</b> or an <b>event</b> (CTF, hackathon or attackathon) in collaboration with your team.", |
| 102 | + "conversation": "Hold a private or a public conversation with us, a <b>meeting</b>, a <b>call</b> or a <b>chat</b>, or get us to give an <b>interview</b>.", |
| 103 | + "else": "Discuss another topic with us." |
| 104 | + } |
| 105 | + |
8 | 106 | return (
|
| 107 | + <> |
9 | 108 | <header className="header-grid landing-header pt-8">
|
10 | 109 | {/* Branding */}
|
11 | 110 | <h1
|
@@ -84,5 +183,133 @@ export default function Landing() {
|
84 | 183 | ))}
|
85 | 184 | </div>
|
86 | 185 | </header>
|
| 186 | + |
| 187 | + <div className="mt-20"> |
| 188 | + <h1 className="uppercase font-sans font-normal text-2xl text-center mb-6">Core team</h1> |
| 189 | + <div className="flex flex-wrap justify-center space-x-4"> |
| 190 | + {team.map((member) => ( |
| 191 | + <div key={member.nickname} className="w-64 py-4 xl:w-80 text-center landing-member"> |
| 192 | + <Image className="rounded-full w-40 lg:w-48 xl:w-64 h-auto m-auto hover:scale-110 transition-transform duration-300 hover:cursor-pointer" |
| 193 | + src={member.src} |
| 194 | + alt={member.nickname} |
| 195 | + /> |
| 196 | + <Image className="absolute -z-10 -mt-44 lg:-mt-56 xl:-mt-72 ml-8 lg:ml-0 w-48 lg:w-64 xl:w-80 landing-animation opacity-75" src="images/animation.gif" alt="Neplox member animation"/> |
| 197 | + <p className="text-md mt-6 font-sans font-normal"><b className="theme-highlight text-md md:text-lg lg:text-xl landing-highlight py-1 px-8">{member.name}</b></p> |
| 198 | + <span className="font-sans font-light text-sm opacity-75">@{member.nickname}</span> |
| 199 | + <p className="font-sans font-light text-sm lg:text-md xl:text-lg text-justify my-4" dangerouslySetInnerHTML={{__html: member.description}}></p> |
| 200 | + <p className="flex flex-wrap text-center justify-center text-xs font-sans font-light text-sm mb-6">{member.skills.map((skill) => ( |
| 201 | + <b key={member.nickname+skill} className="px-2 py-0.5 mx-1 my-0.5 theme-highlight rounded-3xl rounded-tl-none hover:cursor-pointer hover:scale-110 transition-transform duration-300"> {skill} </b> |
| 202 | + ))} |
| 203 | + </p> |
| 204 | + <p className="text-center">{member.socials.map((social) => ( |
| 205 | + <a |
| 206 | + key={social.alt} |
| 207 | + href={social.href} |
| 208 | + className="inline-block mx-1 h-auto hover:scale-125 transition-transform duration-300 w-5" |
| 209 | + > |
| 210 | + <Image |
| 211 | + src={social.src} |
| 212 | + alt={social.alt} |
| 213 | + width={social.width} |
| 214 | + height={social.height} |
| 215 | + /> |
| 216 | + </a> |
| 217 | + ))} |
| 218 | + </p> |
| 219 | + </div> |
| 220 | + ))} |
| 221 | + </div> |
| 222 | + </div> |
| 223 | + <div className="mt-20"> |
| 224 | + <h1 className="uppercase font-sans font-normal text-2xl text-center mb-10">About us</h1> |
| 225 | + <p className="m-auto my-8 px-4 font-theme-serif font-normal lg:text-lg xl:text-xl text-justify leading-relaxed sm:max-w-lg md:max-w-2xl lg:max-w-3xl xl:max-w-4xl"> |
| 226 | + <b className="text-theme">Neplox</b> is founded by and mainly consists of active members of <a href="https://ctftime.org/team/83435/" className="font-normal font-sans underline">C4TBuTS4D</a> CTF team. For years in a row, the team has secured its place at the very top of the leaderboard among other teams around the world. |
| 227 | + </p> |
| 228 | + <div className="grid grid-cols-3 md:grid-cols-4 gap-3"> |
| 229 | + <div className="grid col-span-1 md:col-span-2 order-1 mt-10 md:mt-0"> |
| 230 | + <Image className="h-auto max-w-full rounded-lg hover:cursor-pointer hover:scale-110 transition-transform duration-300" |
| 231 | + src="images/photo1.jpg" |
| 232 | + alt="Elizabeth giving a talk at SAS conference" |
| 233 | + /> |
| 234 | + </div> |
| 235 | + <div className="landing-ctf grid col-span-2 order-2"> |
| 236 | + <ul className="list-none font-sans font-light md:text-md lg:text-lg xl:text-xl text-justify mt-0 md:mt-10 landing-achievements"> |
| 237 | + <li className="mb-2 border border-1 border-theme px-1 md:px-4 lg:px-8 py-1 w-fit landing-highlight">#<b>5</b>th on <b>BlazCTF</b> & <b>RemedyCTF</b></li> |
| 238 | + <li className="mb-2 border border-1 border-theme px-1 md:px-4 lg:px-8 py-1 w-fit landing-highlight">#<b>1</b>st on <b>GoogleCTF</b> <span className="opacity-60">@ Tokyo</span></li> |
| 239 | + <li className="mb-2 border border-1 border-theme px-1 md:px-4 lg:px-8 py-1 w-fit landing-highlight">#<b>3</b>rd on <b>DEFCON</b> <span className="opacity-60">@ Las-Vegas</span></li> |
| 240 | + <li className="mb-2 ml-44">. . .</li> |
| 241 | + </ul> |
| 242 | + </div> |
| 243 | + <div className="grid col-span-1 order-3"> |
| 244 | + <Image className="h-auto mt-2 md:mt-16 max-w-full rounded-lg hover:cursor-pointer scale-105 hover:scale-125 transition-transform duration-300" |
| 245 | + src="images/photo4.jpg" |
| 246 | + alt="C4TBuTS4D team celebrating victory atHITB" |
| 247 | + /> |
| 248 | + </div> |
| 249 | + <div className="grid col-span-2 order-4"> |
| 250 | + <p className="uppercase font-horizon text-xl md:text-2xl lg:text-3xl xl:text-4xl text-center theme-highlight absolute z-10 px-8 py-2 -mt-12 -ml-24 md:-ml-16 lg:-ml-8 rounded-3xl rounded-tr-none hover:cursor-pointer hover:scale-110 transition-transform duration-300">OUR WINS <FaArrowTurnUp className="opacity-90 inline"/></p> |
| 251 | + <Image className="h-auto max-w-full rounded-lg hover:cursor-pointer hover:scale-110 transition-transform duration-300" |
| 252 | + src="images/photo2.jpg" |
| 253 | + alt="C4TBuTS4D team celebrating top 1 at GoogleCTF" |
| 254 | + /> |
| 255 | + </div> |
| 256 | + <div className="grid col-span-3 md:col-span-2 order-7 md:order-6 float-right text-right"> |
| 257 | + <ul className="list-none font-sans font-light md:text-md lg:text-lg xl:text-xl pt-0 md:pt-16 landing-achievements"> |
| 258 | + <li className="mb-2 border border-1 border-theme px-1 md:px-4 lg:px-8 py-1 w-fit landing-highlight"><b>Attacks on Crypto Wallets</b>, SECCON <span className="opacity-60">@ Japan</span></li> |
| 259 | + <li className="mb-2 border border-1 border-theme px-1 md:px-4 lg:px-8 py-1 w-fit landing-highlight"><b>Cybercrime</b>, Security Analyst Summit <span className="opacity-60">@ Indonesia</span></li> |
| 260 | + <li className="mb-2 border border-1 border-theme px-1 md:px-4 lg:px-8 py-1 w-fit landing-highlight"><b>Chrome Security</b>, Positive Hack Talks <span className="opacity-60">@ India</span></li> |
| 261 | + <li className="mb-2 border border-1 border-theme px-1 md:px-4 lg:px-8 py-1 w-fit landing-highlight"><b>Attacks on Email Services</b>, PHDays <span className="opacity-60">@ Russia</span></li> |
| 262 | + <li className="mr-16">. . .</li> |
| 263 | + </ul> |
| 264 | + </div> |
| 265 | + <div className="grid col-span-2 md:col-span-1 order-5"> |
| 266 | + <Image className="h-auto max-w-full rounded-lg hover:cursor-pointer hover:scale-110 md:scale-105 md:hover:scale-125 transition-transform duration-300 mt-0 md:-mt-16" |
| 267 | + src="images/photo3.jpg" |
| 268 | + alt="C4TBuTS4D at another CTF" |
| 269 | + /> |
| 270 | + </div> |
| 271 | + <div className="grid col-span-1 md:col-span-2 order-5 md:order-7"> |
| 272 | + <p className="uppercase font-horizon text-xl md:text-2xl lg:text-3xl xl:text-4xl text-center theme-highlight absolute z-10 px-8 py-2 -mt-2 -ml-48 md:-ml-40 lg:-ml-36 rounded-3xl rounded-bl-none hover:cursor-pointer hover:scale-110 transition-transform duration-300"><FaArrowTurnDown className="opacity-90 inline -scale-x-100"/> OUR RESEARCH</p> |
| 273 | + <Image className="h-auto max-w-full rounded-lg hover:cursor-pointer scale-105 hover:scale-125 md:hover:scale-110 md:scale-100 transition-transform duration-300 mt-10 md:mt-0" |
| 274 | + src="images/photo.jpg" |
| 275 | + alt="Slonser and Elizabeth giving a talk about email security" |
| 276 | + /> |
| 277 | + </div> |
| 278 | + </div> |
| 279 | + </div> |
| 280 | + <div className="mt-20 pb-8"> |
| 281 | + <h1 className="uppercase text-2xl text-center mb-6">Contact us</h1> |
| 282 | + <form action="#" className="mx-auto space-y-4 max-w-md md:max-w-lg lg:max-w-xl xl:max-w-2xl"> |
| 283 | + <div> |
| 284 | + <label className="font-sans font-light text-md lg:text-lg xl:text-xl">Subject</label> |
| 285 | + <select id="subject" className="mt-2 block px-4 py-3 w-full text-sm lg:text-md xl:text-lg text-gray-900 bg-gray-50 rounded-xl outline outline-gray-300 focus:ring-theme-500 focus:outline-theme-500 dark:bg-gray-700 dark:outline-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-theme-500 dark:focus:outline-theme-500 dark:shadow-sm-light border border-transparent border-0 border-r-8 hover:cursor-pointer" onChange={(e) => {setSubject(subjectHint[e.target.value as keyof typeof subjectHint])}} defaultValue="" required> |
| 286 | + <option value="" disabled>Let us know how we can help you</option> |
| 287 | + <option value="audit">Neplox, audit our product</option> |
| 288 | + <option value="event">Neplox, help us organize an event</option> |
| 289 | + <option value="invite">Neplox, participate in our event</option> |
| 290 | + <option value="collaboration">Neplox, let's team up</option> |
| 291 | + <option value="conversation">Neplox, we've got questions</option> |
| 292 | + <option value="else">Neplox, it's not that simple</option> |
| 293 | + </select> |
| 294 | + <p className="mt-2 font-sans font-light text-sm lg:text-md xl:text-lg opacity-60" dangerouslySetInnerHTML={{__html: subject}}></p> |
| 295 | + </div> |
| 296 | + <div className="sm:col-span-2"> |
| 297 | + <label className="font-sans font-light text-md lg:text-lg xl:text-xl">Your message</label> |
| 298 | + <textarea id="message" className="mt-2 block px-4 py-3 w-full text-sm lg:text-md xl:text-lg text-gray-900 bg-gray-50 rounded-xl border border-gray-300 focus:ring-theme-500 focus:border-theme-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-theme-500 dark:focus:border-theme-500 h-32" placeholder="Leave a comment, a link to the repository or anything else that you find useful." required></textarea> |
| 299 | + </div> |
| 300 | + <div> |
| 301 | + <label className="font-sans font-light text-md lg:text-lg xl:text-xl">Your contacts</label> |
| 302 | + <p className="font-sans font-light text-sm lg:text-md xl:text-lg opacity-60">How can we message you back?</p> |
| 303 | + <input type="text" id="contacts" className="mt-2 bg-gray-50 border border-gray-300 text-gray-900 text-sm lg:text-md xl:text-lg rounded-xl focus:ring-theme-500 focus:border-theme-500 block w-full px-4 py-3 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-theme-500 dark:focus:border-theme-500 dark:shadow-sm-light" placeholder="Crazy Man, [email protected]" required/> |
| 304 | + </div> |
| 305 | + <div className="text-right"> |
| 306 | + <button type="submit" className="uppercase font-sans font-normal text-md lg:text-lg xl:text-xl bg-theme py-2 px-4 text-background hover:scale-110 transition-transform duration-300 rounded-3xl rounded-tl-none hover:cursor-pointer">Send message</button> |
| 307 | + </div> |
| 308 | + </form> |
| 309 | + </div> |
| 310 | + |
| 311 | + {/* Footer */} |
| 312 | + <Footer /> |
| 313 | + </> |
87 | 314 | );
|
88 | 315 | }
|
0 commit comments