@@ -16,8 +16,15 @@ import EventPreview from "../components/EventPreview";
1616import TwoUp from "../components/TwoUp";
1717import { getAllPosts, getAllEvents, generateRealtimeDate } from "../lib/lib";
1818import { eventKeys } from "../lib/constants";
19+import IndexCard from "../components/ecosystem/IndexCard";
1920
20−export default function Home({ posts, events, grantNumbers, search }) {
21+export default function Home({
22+ posts,
23+ ecosystem,
24+ events,
25+ grantNumbers,
26+ search,
27+}) {
2128 return (
2229 <Container>
2330 <Head>
@@ -69,9 +76,9 @@ export default function Home({ posts, events, grantNumbers, search }) {
6976 computer from scratch. Good thing we started over a decade ago.
7077 </p>
7178 <p className="max-w-prose">
72− Today, Urbit is a real system with thousands of users that are building
73− all kinds of communities, software, DAOs, and more. And it’s getting
74− better every day.{" "}
79+ Today, Urbit is a real system with thousands of users that are
80+ building all kinds of communities, software, DAOs, and more. And
81+ it’s getting better every day.{" "}
7582 </p>
7683 <Link href="/overview" passHref>
7784 <a className="button-lg bg-green-400 text-white type-ui max-w-fit">
@@ -79,7 +86,38 @@ export default function Home({ posts, events, grantNumbers, search }) {
7986 </a>
8087 </Link>
8188 </Section>
82−
89+ {/* Ecosystem */}
90+ <Section>
91+ <div className="flex flex-col space-y-8 pb-12">
92+ <h2 className="m-0 p-0 mr-4">Ecosystem</h2>
93+ <p>
94+ The Urbit ecosystem is comprised of a wide variety of individuals
95+ and organizations, including developers, DAOs, podcasters, and
96+ more.
97+ </p>
98+ <div className="flex flex-col space-y-4 md:space-y-0 md:flex-row md:space-x-4">
99+ {["featured-1", "featured-2", "featured-3"].map((feat) => {
100+ if (ecosystem?.[feat]) {
101+ return (
102+ <IndexCard
103+ slug={
104+ ecosystem[feat].type === "Application"
105+ ? `/ids/${ecosystem[feat].URL}`
106+ : ecosystem[feat].URL
107+ }
108+ feat={ecosystem[feat]}
109+ />
110+ );
111+ }
112+ })}
113+ </div>
114+ <Link href="/ecosystem" passHref>
115+ <a className="button-lg bg-green-400 text-white w-fit">
116+ Explore Ecosystem
117+ </a>
118+ </Link>
119+ </div>
120+ </Section>
83121 {
84122 // Grants
85123 }
@@ -222,7 +260,6 @@ export default function Home({ posts, events, grantNumbers, search }) {
222260 <Contact emphasize />
223261 </Section>
224262 </SingleColumn>
225−
226263 <Footer />
227264 </Container>
228265 );
@@ -235,6 +272,12 @@ export async function getStaticProps() {
235272 "date"
236273 );
237274
275+ const ecosystem = getAllPosts(
276+ ["featured-1", "featured-2", "featured-3"],
277+ "ecosystem/spotlight",
278+ "date"
279+ )[0];
280+
238281 const events = getAllEvents(eventKeys, "events");
239282
240283 const grants = getAllPosts(["extra", "taxonomies"], "grants", "date");
@@ -291,6 +334,7 @@ export async function getStaticProps() {
291334 return {
292335 props: {
293336 posts,
337+ ecosystem,
294338 grantNumbers,
295339 events: happeningNow.concat(futureEvents).concat(pastEvents),
296340 },