Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions app/src/app/about/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ import {
import { Section } from "@/components/ui/section";
import { ProfileCard } from "@/components/profile-card";
import { getOrganizers } from "@/lib/profiles";
import { community } from "@/lib/community";

const title = "About All Things Web";
const description =
"All Things Web is a community dedicated to organizing events for web developers in the Bay Area and San Francisco. Check out our organizers and join us!";
const description = community.mission;
const url = `${mainConfig.instance.origin}/about`;
const imageUrl = `${mainConfig.instance.origin}/api/v1/preview.png`;

Expand Down Expand Up @@ -66,16 +66,25 @@ export default async function AboutPage() {
<h1 className="text-4xl font-bold mb-8 text-foreground">
About All Things Web
</h1>
<p className="text-lg text-muted-foreground">
All Things Web is a community dedicated to organizing events for web
developers in the Bay Area and San Francisco. Our mission is to
bring together passionate developers, foster knowledge sharing, and
create networking opportunities in the ever-evolving world of web
technologies.
</p>
<p className="text-2xl font-semibold mb-6">{community.oneLiner}</p>
<div className="space-y-5 text-lg text-muted-foreground leading-relaxed">
<p>{community.mission}</p>
<p>{community.history}</p>
<p>{community.independence}</p>
</div>
</div>
</Section>
<Section background="muted">
<div className="container max-w-[800px]" id="hosting">
<h2 className="text-2xl font-semibold mb-6 text-foreground">
Hosting companies
</h2>
<p className="text-lg text-muted-foreground leading-relaxed">
{community.hosting}
</p>
</div>
</Section>
<Section>
<div className="container">
<h2 className="text-2xl font-semibold mb-6 text-foreground">
Organizers
Expand Down
32 changes: 25 additions & 7 deletions app/src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import {
} from "@/lib/images";
import { signImage } from "@/lib/image-signing";
import { getLumaUrl } from "@/lib/luma";
import { community } from "@/lib/community";
import NextImage from "next/image";

// Homepage metadata - the layout already provides the base metadata
Expand Down Expand Up @@ -250,8 +251,8 @@ export default async function HomePage() {

function LandingHero({ images }: { images: Image[] }) {
return (
<section className="w-full h-[80vh] overflow-hidden grid [&>*]:col-[1] [&>*]:row-[1]">
<div className="w-full h-full grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-1">
<section className="relative isolate w-full overflow-hidden">
<div className="absolute inset-0 -z-10 grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-1">
{images.map((image, index) => (
<div
key={image.url + index}
Expand All @@ -272,15 +273,32 @@ function LandingHero({ images }: { images: Image[] }) {
</div>

{/* Content */}
<div className="z-20 bg-gradient-to-b from-black/70 to-black/30 flex flex-col items-center pt-[30vh] text-center text-white px-4">
<div className="min-h-[70svh] bg-gradient-to-b from-black/80 to-black/60 flex flex-col justify-center items-center py-20 sm:py-28 text-center text-white px-4">
<h1 className="mb-4 text-4xl sm:text-5xl md:text-6xl font-bold tracking-tight">
All Things Web 🚀
</h1>
<p className="max-w-2xl text-lg sm:text-xl">
Discover exciting web development events in the Bay Area and San
Francisco. Join us for hackathons, hangouts, and meetups to connect
with fellow developers and web enthusiasts.
<p className="max-w-3xl text-2xl sm:text-3xl font-semibold mb-5">
{community.oneLiner}
</p>
<p className="max-w-2xl text-lg sm:text-xl leading-relaxed">
{community.introduction}
</p>
<div className="flex flex-wrap justify-center gap-4 mt-8">
<Button
asChild
className="bg-brand-yellow text-black hover:brightness-95"
>
<Link href="https://luma.com/allthingsweb">
Find your next event
</Link>
</Button>
<Link
href="/about"
className="inline-flex items-center px-4 py-2 font-medium underline underline-offset-4 rounded-md focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-white"
>
Meet the community
</Link>
</div>
</div>
</section>
);
Expand Down
13 changes: 13 additions & 0 deletions app/src/lib/community.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
export const community = {
oneLiner: "A hacker club for everyone building the web.",
introduction:
"Just starting out, leading a company, or creating tools the world uses every day? Here, we meet as peers. Come learn, share what you’re building, ask questions, and find your people.",
mission:
"All Things Web brings the San Francisco Bay Area tech community together on a level playing field. We make room to listen, learn, collaborate, connect, show off a project, and get support—whatever your experience or job title.",
history:
"Erik Thorelli and Andre Landgraf started this community to help rebuild San Francisco’s local tech meetup scene after COVID disrupted it. Our roots are in Remix Bay Area and React meetups: the spirit of an old hacker club, with the tools and ideas of today.",
independence:
"We have never taken money or paid sponsorship. Our events are community first, and our presentations are for sharing useful ideas and real work. No shilling. No sales pitches.",
hosting:
"We choose hosting companies whose tools and work we admire. They welcome the community by providing space, food, and a great place to spend time together. Hosting is an in-kind contribution to the community, not a paid sponsorship or a purchased speaking slot.",
} as const;
Loading