+ );
+}
diff --git a/components/community/Header.js b/components/community/Header.js
new file mode 100644
index 000000000000..be4cf8af8ca8
--- /dev/null
+++ b/components/community/Header.js
@@ -0,0 +1,47 @@
+import React from 'react'
+import IconRocket from '../icons/Rocket';
+import Heading from '../typography/Heading';
+import Button from '../buttons/Button';
+
+export default function Header({className = ''}) {
+ return (
+
+
+ AsyncAPI Community
+
+
+
+
+ Welcome to the
+ AsyncAPI Community
+
+
+
+
+
+ We're an OSS community that's passionate about AsyncAPI. Join us in
+ building the future of Event Driven APIs by asking questions,
+ sharing ideas, and building connections.
+
+
+
+ }
+ />
+
+
+ );
+}
diff --git a/components/community/Hero.js b/components/community/Hero.js
new file mode 100644
index 000000000000..2efe879338f8
--- /dev/null
+++ b/components/community/Hero.js
@@ -0,0 +1,37 @@
+import orbitData from '../../config/orbitData.json';
+import Header from './Header';
+
+export default function Hero({ className = '' }) {
+ return (
+ <>
+
+
+
+ {orbitData[0].map((orbit) => (
+
+
+
+ ))}
+
+
+
+
+
+ {orbitData[1].map((orbit) => (
+
+
+
+ ))}
+
+
+ {orbitData[2].map((orbit) => (
+
+
+
+ ))}
+
+
+
+ >
+ );
+}
diff --git a/components/community/HomeCard.js b/components/community/HomeCard.js
new file mode 100644
index 000000000000..5a3394d32424
--- /dev/null
+++ b/components/community/HomeCard.js
@@ -0,0 +1,40 @@
+import React from 'react'
+import Heading from '../typography/Heading';
+import Button from '../buttons/Button';
+
+export default function HomeCards({headline, title, description, btnText, link, className}) {
+ return (
+
+
+
+
+ {headline}
+
+
+
+
+ {title}
+
+
+ {description}
+
+
+
+
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/components/icons/Ambassador.js b/components/icons/Ambassador.js
new file mode 100644
index 000000000000..2afa0d2c816a
--- /dev/null
+++ b/components/icons/Ambassador.js
@@ -0,0 +1,31 @@
+export default function IconArrowDown({ className = '' }) {
+ return (
+
+ );
+}
diff --git a/components/icons/ArrowUp.js b/components/icons/ArrowUp.js
new file mode 100644
index 000000000000..db8c2b7854d0
--- /dev/null
+++ b/components/icons/ArrowUp.js
@@ -0,0 +1,11 @@
+export default function IconArrowUp({ className }) {
+ return (
+
+ );
+}
diff --git a/components/icons/AsyncAPI.js b/components/icons/AsyncAPI.js
new file mode 100644
index 000000000000..1ae01753922b
--- /dev/null
+++ b/components/icons/AsyncAPI.js
@@ -0,0 +1,22 @@
+export default function IconAsyncAPI({ className }) {
+ return (
+
+ );
+}
diff --git a/components/icons/Calendar copy.js b/components/icons/Calendar copy.js
new file mode 100644
index 000000000000..bf97576f5f23
--- /dev/null
+++ b/components/icons/Calendar copy.js
@@ -0,0 +1,9 @@
+export default function IconCalendar() {
+ return (
+
+ )
+}
+
+
+
+
diff --git a/components/icons/Community.js b/components/icons/Community.js
new file mode 100644
index 000000000000..7b301c19dcac
--- /dev/null
+++ b/components/icons/Community.js
@@ -0,0 +1,8 @@
+export default function Community({ className }) {
+ return (
+
+ );
+}
diff --git a/components/icons/Conference.js b/components/icons/Conference.js
new file mode 100644
index 000000000000..eb3cfefaff8b
--- /dev/null
+++ b/components/icons/Conference.js
@@ -0,0 +1,34 @@
+export default function Conference({ className }) {
+ return (
+
+ );
+}
diff --git a/components/icons/Webinar.js b/components/icons/Webinar.js
new file mode 100644
index 000000000000..e2fcb1873d45
--- /dev/null
+++ b/components/icons/Webinar.js
@@ -0,0 +1,66 @@
+export default function Webinar({ className }) {
+ return (
+
+ );
+}
diff --git a/components/layout/GenericLayout.js b/components/layout/GenericLayout.js
index 40e909694303..b5882f3e7a5e 100644
--- a/components/layout/GenericLayout.js
+++ b/components/layout/GenericLayout.js
@@ -1,35 +1,38 @@
-import Head from '../Head'
-import NavBar from '../navigation/NavBar'
-import Container from './Container'
-import Footer from '../Footer'
-import AnnouncementHero from '../campaigns/AnnoucementHero'
-import StickyNavbar from '../navigation/StickyNavbar'
+import Head from '../Head';
+import NavBar from '../navigation/NavBar';
+import Container from './Container';
+import Footer from '../Footer';
+import AnnouncementHero from '../campaigns/AnnoucementHero';
+import StickyNavbar from '../navigation/StickyNavbar';
export default function GenericLayout({
title,
description,
image,
children,
- wide = true
+ wide = true,
+ hideBanner = false,
}) {
- if (!title || !description || !image) throw new Error('Props `title`, `description`, and `image` are required at GenericLayout component.')
-
+ if (!title || !description || !image)
+ throw new Error(
+ 'Props `title`, `description`, and `image` are required at GenericLayout component.'
+ );
+
return (
<>
-
-
-
-
+