diff --git a/apps/www/components/LaunchWeek/8/LW8CalloutsSection.tsx b/apps/www/components/LaunchWeek/8/LW8CalloutsSection.tsx
new file mode 100644
index 00000000000..737d2a14a89
--- /dev/null
+++ b/apps/www/components/LaunchWeek/8/LW8CalloutsSection.tsx
@@ -0,0 +1,54 @@
+import React from 'react'
+import SectionContainer from '../../Layouts/SectionContainer'
+import { SmallCard } from '../8/Releases/components'
+import Link from 'next/link'
+import Image from 'next/image'
+
+const LW8CalloutsSection = () => {
+ return (
+
+
+
+ )
+}
+
+export default LW8CalloutsSection
diff --git a/apps/www/components/LaunchWeek/8/Releases/components/index.tsx b/apps/www/components/LaunchWeek/8/Releases/components/index.tsx
new file mode 100644
index 00000000000..58a6ab51863
--- /dev/null
+++ b/apps/www/components/LaunchWeek/8/Releases/components/index.tsx
@@ -0,0 +1,337 @@
+import { Badge } from 'ui'
+
+import Link from 'next/link'
+import CountdownComponent from '../../Countdown'
+
+export const PencilSvg = () => (
+
+)
+export const DocsSvg = () => (
+
+)
+export const PlaySvg = () => (
+
+)
+export const GithubSvg = () => (
+
+)
+export const LinkSvg = () => (
+
+)
+export const ArrowTopRightSvg = () => (
+
+)
+export const HackernewsSvg = () => (
+
+)
+
+export const SmallCard = ({ className, children }: { className?: string; children: any }) => (
+
+)
+
+export const StyledArticleBadge = ({
+ className,
+ children,
+}: {
+ className?: string
+ children: any
+}) => (
+
+)
+
+export const AccordionHeader = ({
+ date,
+ day,
+ title,
+ shipped,
+ publishedAt,
+ shippable = true,
+}: {
+ date: string
+ day: string
+ title: string
+ shipped?: boolean
+ publishedAt: string
+ shippable?: boolean
+}) => {
+ return (
+
+
+
+ {day}
+ {date && (
+
+ ・ {date}
+
+ )}
+
+
+ {shippable && shipped && (
+
+
+ Shipped
+
+
+ )}
+ {shipped &&
{title}}
+ {shippable && !shipped && (
+
+
+
+
+
+ )}
+
+ )
+}
+export const MultistepSectionHeader = ({ title, blog }: any) => {
+ return (
+
+
+ {title &&
{title}}
+ {!!blog && (
+
+ Blog post
+
+
+ )}
+
+
+ )
+}
+
+export const ChipLink = ({
+ href,
+ uiOnly,
+ className,
+ target,
+ children,
+}: {
+ href?: string
+ className?: string
+ uiOnly?: boolean
+ target?: '_blank' | '_self' | '_parent' | '_top' | 'framename'
+ children: any
+}) =>
+ uiOnly ? (
+
+ {children}
+
+ ) : !!href ? (
+
+
+ {children}
+
+
+ ) : null
+
+export const SectionButtons = ({
+ blog,
+ docs,
+ video,
+ github,
+ url,
+ hackernews,
+ mobileGrid,
+}: {
+ blog?: string
+ docs?: string
+ video?: string
+ github?: string
+ url?: string
+ hackernews?: string
+ mobileGrid?: boolean
+}) => {
+ return (
+
+ {!!blog && (
+
+ Blog post
+
+
+ )}
+ {!!docs && (
+
+ Docs
+
+
+
+
+ )}
+ {!!video && (
+
+ Video
+
+
+ )}
+ {!!github && (
+
+ Github
+
+
+
+
+ )}
+ {!!url && (
+
+ Read
+
+
+
+
+ )}
+ {hackernews && (
+
+ Hackernews
+
+
+
+
+ )}
+
+ )
+}
+
+export const CartTitle = ({ children }: { children: any }) => (
+
+ {children}
+
+
+)
+
+export default {
+ AccordionHeader,
+ DocsSvg,
+ PencilSvg,
+ PlaySvg,
+ CartTitle,
+ ChipLink,
+ SectionButtons,
+ SmallCard,
+ StyledArticleBadge,
+}
diff --git a/apps/www/pages/launch-week/index.tsx b/apps/www/pages/launch-week/index.tsx
index ba868c312e2..e9b4930eb22 100644
--- a/apps/www/pages/launch-week/index.tsx
+++ b/apps/www/pages/launch-week/index.tsx
@@ -17,6 +17,7 @@ import { useTheme } from 'common/Providers'
import 'swiper/swiper.min.css'
import Head from 'next/head'
+import LW8CalloutsSection from '../../components/LaunchWeek/8/LW8CalloutsSection'
const AnimatedParticles = dynamic(
() => import('~/components/LaunchWeek/8/AnimatedParticles/ParticlesCanvas')
@@ -165,6 +166,10 @@ export default function TicketHome({ users, meetups }: Props) {
+
+
+
+