feat: configure Next.js for static export to CloudFlare Pages
Enable static site generation and set output directory to /out #VERCEL_SKIP Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
This commit is contained in:
parent
2a9dad0fe9
commit
fcbfd55b8c
|
|
@ -7,7 +7,7 @@ import Link from "next/link"
|
|||
|
||||
export const metadata = {
|
||||
title: "About | Soul Speaks Soil",
|
||||
description: "Learn about Sammy Davis and the Soul Speaks Soil podcast",
|
||||
description: "Learn about Sammy Davies and the Soul Speaks Soil podcast",
|
||||
}
|
||||
|
||||
export default function AboutPage() {
|
||||
|
|
@ -24,26 +24,40 @@ export default function AboutPage() {
|
|||
<div>
|
||||
<div className="aspect-square rounded-xl overflow-hidden bg-primary/5 shadow-lg">
|
||||
<img
|
||||
src="/sammy-davis-in-garden-with-plants-and-soil.jpg"
|
||||
alt="Sammy Davis in her garden"
|
||||
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_112209_994-Qtj9Sw0JJKHHgRB19y63rB4gvU3rBS.jpg"
|
||||
alt="Sammy Davies in moss-covered forest with composting structure"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h1 className="text-4xl sm:text-5xl font-bold text-foreground mb-6 text-balance">Meet Sammy Davis</h1>
|
||||
<h1 className="text-4xl sm:text-5xl font-bold text-foreground mb-6 text-balance">
|
||||
Meet Sammy Davies
|
||||
</h1>
|
||||
<div className="space-y-4 text-muted-foreground leading-relaxed">
|
||||
<p>
|
||||
Sammy Davis is a passionate advocate for sustainable living, regenerative agriculture, and the
|
||||
profound connection between human consciousness and the natural world.
|
||||
Sammy Davies is the Director of Sustainability and Brand at EcoSafe Zero Waste, based in Surrey,
|
||||
British Columbia. She is also an MBA Candidate in Sustainable Innovation at the Schulich School of
|
||||
Business, York University, where she continues to deepen her expertise in circular economy and
|
||||
regenerative business models.
|
||||
</p>
|
||||
<p>
|
||||
With a background in environmental science and a deep love for storytelling, Sammy created Soul
|
||||
Speaks Soil to bridge the gap between ancient wisdom and modern sustainability practices.
|
||||
With a diverse career spanning sustainability, social media, and entrepreneurship, Sammy has held
|
||||
roles including Manager of Sustainability Programs at EcoSafe Zero Waste, Manager of Social Media
|
||||
at Open Ocean Robotics, and Co-Founder of OneLoop.app—a venture focused on circular economy
|
||||
solutions. Her professional journey also includes experience at Aurora Cannabis, XE.com, Long
|
||||
Point Eco-Adventures, and the Grand River Conservation Authority.
|
||||
</p>
|
||||
<p>
|
||||
Through authentic conversations with farmers, activists, artists, and thought leaders, Sammy
|
||||
explores how we can cultivate a more harmonious relationship with the earth and each other.
|
||||
Sammy holds a Bachelor of Arts from Wilfrid Laurier University, a certificate from BrainStation,
|
||||
and has completed advanced training at Bear Waters Gathering. Her work focuses on soil health
|
||||
advocacy, composting education, systems thinking, and regenerative storytelling—translating
|
||||
sustainability goals into actionable business development while building trust across the
|
||||
composting and circular bioeconomy ecosystem.
|
||||
</p>
|
||||
<p>
|
||||
Through Soul Speaks Soil, Sammy shares her passion for building models that align policy, circular
|
||||
economy, and community resilience—rooted in place and designed for lasting impact.
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex gap-4 mt-8">
|
||||
|
|
@ -63,8 +77,33 @@ export default function AboutPage() {
|
|||
</div>
|
||||
</section>
|
||||
|
||||
{/* About the Podcast Section */}
|
||||
<section className="px-4 sm:px-6 lg:px-8 py-16 bg-muted/30 organic-texture">
|
||||
<div className="container mx-auto">
|
||||
<div className="max-w-5xl mx-auto">
|
||||
<div className="aspect-video rounded-xl overflow-hidden bg-primary/5 shadow-lg mb-8">
|
||||
<img
|
||||
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_112203_809-qlO7ndE3aT5sOPWioTlv9j69EyUiRF.jpg"
|
||||
alt="Sammy Davies working in her garden with composting systems and sustainable infrastructure"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
<div className="text-center max-w-3xl mx-auto">
|
||||
<h2 className="text-2xl sm:text-3xl font-bold text-foreground mb-4 text-balance">
|
||||
Living the Practice
|
||||
</h2>
|
||||
<p className="text-muted-foreground leading-relaxed text-pretty">
|
||||
Sammy doesn't just talk about sustainability—she lives it. Her homestead in Greater Victoria serves as
|
||||
a living laboratory for composting, regenerative practices, and circular systems. From hands-on
|
||||
composting education to building resilient food systems, Sammy bridges the gap between theory and
|
||||
practice.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* About the Podcast Section */}
|
||||
<section className="px-4 sm:px-6 lg:px-8 py-16 mycelial-pattern">
|
||||
<div className="container mx-auto">
|
||||
<div className="max-w-5xl mx-auto">
|
||||
<div className="text-center mb-12">
|
||||
|
|
@ -147,7 +186,7 @@ export default function AboutPage() {
|
|||
</section>
|
||||
|
||||
{/* Consulting Section */}
|
||||
<section className="px-4 sm:px-6 lg:px-8 py-16 mycelial-pattern">
|
||||
<section className="px-4 sm:px-6 lg:px-8 py-16 bg-muted/30 organic-texture">
|
||||
<div className="container mx-auto">
|
||||
<div className="max-w-3xl mx-auto text-center">
|
||||
<h2 className="text-3xl sm:text-4xl font-bold text-foreground mb-4 text-balance">Work with Sammy</h2>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { Mail, Instagram, Music, MessageSquare } from "lucide-react"
|
|||
|
||||
export const metadata = {
|
||||
title: "Contact | Soul Speaks Soil",
|
||||
description: "Get in touch with Sammy Davis for consulting, podcast collaborations, and more",
|
||||
description: "Get in touch with Sammy Davies for consulting, podcast collaborations, and more",
|
||||
}
|
||||
|
||||
export default function ContactPage() {
|
||||
|
|
|
|||
|
|
@ -86,6 +86,20 @@ export default function EpisodesPage() {
|
|||
<Navigation />
|
||||
|
||||
<main className="flex-1 pt-24 pb-16">
|
||||
<section className="px-4 sm:px-6 lg:px-8 pt-12 pb-8">
|
||||
<div className="container mx-auto">
|
||||
<div className="max-w-4xl mx-auto">
|
||||
<div className="aspect-video rounded-xl overflow-hidden bg-primary/5 shadow-lg mb-8">
|
||||
<img
|
||||
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_112213_925-XnDB5Tj5KFyS6c2Wr6RZVmZfqeQ1FG.jpg"
|
||||
alt="Stone sculpture with moss crown - where soul speaks soil"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Header Section with organic texture */}
|
||||
<section className="px-4 sm:px-6 lg:px-8 py-12 bg-muted/30 organic-texture">
|
||||
<div className="container mx-auto">
|
||||
|
|
|
|||
|
|
@ -77,8 +77,11 @@
|
|||
}
|
||||
|
||||
@theme inline {
|
||||
--font-sans: "Geist", "Geist Fallback";
|
||||
--font-mono: "Geist Mono", "Geist Mono Fallback";
|
||||
/* Updated font variables for stylized, organic typography */
|
||||
--font-display: "Playfair Display", "Playfair Display Fallback", serif;
|
||||
--font-body: "Crimson Text", "Crimson Text Fallback", serif;
|
||||
--font-serif: "Libre Baskerville", "Libre Baskerville Fallback", serif;
|
||||
--font-sans: var(--font-body);
|
||||
--color-background: var(--background);
|
||||
--color-foreground: var(--foreground);
|
||||
--color-card: var(--card);
|
||||
|
|
|
|||
|
|
@ -1,14 +1,29 @@
|
|||
import type React from "react"
|
||||
import type { Metadata } from "next"
|
||||
import { Geist, Geist_Mono } from "next/font/google"
|
||||
import { Crimson_Text, Libre_Baskerville, Playfair_Display } from "next/font/google"
|
||||
import { Analytics } from "@vercel/analytics/next"
|
||||
import "./globals.css"
|
||||
|
||||
const _geist = Geist({ subsets: ["latin"] })
|
||||
const _geistMono = Geist_Mono({ subsets: ["latin"] })
|
||||
const playfair = Playfair_Display({
|
||||
subsets: ["latin"],
|
||||
weight: ["400", "500", "600", "700", "800", "900"],
|
||||
variable: "--font-display",
|
||||
})
|
||||
|
||||
const crimson = Crimson_Text({
|
||||
subsets: ["latin"],
|
||||
weight: ["400", "600", "700"],
|
||||
variable: "--font-body",
|
||||
})
|
||||
|
||||
const libre = Libre_Baskerville({
|
||||
subsets: ["latin"],
|
||||
weight: ["400", "700"],
|
||||
variable: "--font-serif",
|
||||
})
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Soul Speaks Soil | A Podcast by Sammy Davis",
|
||||
title: "Soul Speaks Soil | A Podcast by Sammy Davies",
|
||||
description: "Exploring the connection between soul and soil through meaningful conversations",
|
||||
generator: "v0.app",
|
||||
}
|
||||
|
|
@ -20,7 +35,7 @@ export default function RootLayout({
|
|||
}>) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={`font-sans antialiased`}>
|
||||
<body className={`${playfair.variable} ${crimson.variable} ${libre.variable} font-body antialiased`}>
|
||||
{children}
|
||||
<Analytics />
|
||||
</body>
|
||||
|
|
|
|||
68
app/page.tsx
68
app/page.tsx
|
|
@ -18,12 +18,12 @@ export default function HomePage() {
|
|||
<Sprout className="h-4 w-4" />
|
||||
<span>Where Soul Meets Soil</span>
|
||||
</div>
|
||||
<h1 className="text-4xl sm:text-5xl lg:text-6xl font-bold text-foreground mb-6 text-balance">
|
||||
<h1 className="text-5xl sm:text-6xl lg:text-7xl font-display font-bold text-foreground mb-6 text-balance tracking-tight">
|
||||
Soul Speaks Soil
|
||||
</h1>
|
||||
<p className="text-xl text-muted-foreground mb-8 leading-relaxed text-pretty">
|
||||
Join host Sammy Davis for deep conversations exploring the profound connection between our inner world and
|
||||
the earth beneath our feet.
|
||||
Join host Sammy Davies for deep conversations exploring the profound connection between our inner world
|
||||
and the earth beneath our feet.
|
||||
</p>
|
||||
<div className="flex flex-col sm:flex-row gap-4 justify-center">
|
||||
<Button asChild size="lg" className="text-lg">
|
||||
|
|
@ -40,23 +40,59 @@ export default function HomePage() {
|
|||
</div>
|
||||
</section>
|
||||
|
||||
{/* Featured Image Section with soil and moss imagery */}
|
||||
<section className="py-12 px-4 sm:px-6 lg:px-8 bg-muted/30 organic-texture">
|
||||
<div className="container mx-auto">
|
||||
<div className="max-w-5xl mx-auto">
|
||||
<div className="aspect-video rounded-xl overflow-hidden bg-primary/5 shadow-lg">
|
||||
<img
|
||||
src="/close-up-of-rich-dark-soil-with-green-moss-and-f.jpg"
|
||||
alt="Rich soil with moss and ferns - Soul Speaks Soil Podcast"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
<div className="max-w-3xl mx-auto">
|
||||
<div className="flex flex-col md:flex-row gap-8 items-center">
|
||||
<div className="w-48 h-48 rounded-full overflow-hidden bg-primary/5 shadow-lg flex-shrink-0">
|
||||
<img
|
||||
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/images%20%281%29-olhoH5SYKWP3oh7CsSHrhNrGws8GFU.jpeg"
|
||||
alt="Sammy Davies - Host of Soul Speaks Soil"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
<div className="text-center md:text-left">
|
||||
<h2 className="text-2xl sm:text-3xl font-display font-bold text-foreground mb-3 text-balance">
|
||||
Hosted by Sammy Davies
|
||||
</h2>
|
||||
<p className="text-muted-foreground leading-relaxed text-pretty">
|
||||
Director of Sustainability & Brand at EcoSafe Zero Waste, MBA Candidate in Sustainable Innovation, and
|
||||
passionate advocate for soil health, composting education, and regenerative storytelling.
|
||||
</p>
|
||||
<Button asChild variant="outline" className="mt-4 bg-transparent">
|
||||
<Link href="/about">Learn More About Sammy</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="py-16 px-4 sm:px-6 lg:px-8 mycelial-pattern">
|
||||
<div className="container mx-auto">
|
||||
<div className="max-w-6xl mx-auto">
|
||||
<div className="grid md:grid-cols-2 gap-6">
|
||||
<div className="aspect-square rounded-xl overflow-hidden bg-primary/5 shadow-lg">
|
||||
<img
|
||||
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_112213_925-XnDB5Tj5KFyS6c2Wr6RZVmZfqeQ1FG.jpg"
|
||||
alt="Stone sculpture with moss crown - embodying the soul speaks soil philosophy"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
<div className="aspect-square rounded-xl overflow-hidden bg-primary/5 shadow-lg">
|
||||
<img
|
||||
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_112207_223-IXghjBiGqE5Eu3b7U3lVXN1spTvTgn.jpg"
|
||||
alt="Vibrant green moss growing on decaying wood - the cycle of life and soil"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* About Preview Section with organic texture background */}
|
||||
<section className="py-16 px-4 sm:px-6 lg:px-8 mycelial-pattern">
|
||||
<section className="py-16 px-4 sm:px-6 lg:px-8 bg-muted/30 organic-texture">
|
||||
<div className="container mx-auto">
|
||||
<div className="max-w-4xl mx-auto">
|
||||
<div className="grid md:grid-cols-3 gap-8">
|
||||
|
|
@ -66,7 +102,7 @@ export default function HomePage() {
|
|||
<div className="h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center mb-4">
|
||||
<Heart className="h-6 w-6 text-primary" />
|
||||
</div>
|
||||
<h3 className="text-lg font-semibold text-foreground mb-2">Authentic Conversations</h3>
|
||||
<h3 className="text-lg font-display font-semibold text-foreground mb-2">Authentic Conversations</h3>
|
||||
<p className="text-muted-foreground leading-relaxed">
|
||||
Real, unfiltered discussions about sustainability, growth, and connection.
|
||||
</p>
|
||||
|
|
@ -80,7 +116,7 @@ export default function HomePage() {
|
|||
<div className="h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center mb-4">
|
||||
<Users className="h-6 w-6 text-primary" />
|
||||
</div>
|
||||
<h3 className="text-lg font-semibold text-foreground mb-2">Diverse Guests</h3>
|
||||
<h3 className="text-lg font-display font-semibold text-foreground mb-2">Diverse Guests</h3>
|
||||
<p className="text-muted-foreground leading-relaxed">
|
||||
Featuring farmers, activists, artists, and thought leaders.
|
||||
</p>
|
||||
|
|
@ -94,7 +130,7 @@ export default function HomePage() {
|
|||
<div className="h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center mb-4">
|
||||
<Sprout className="h-6 w-6 text-primary" />
|
||||
</div>
|
||||
<h3 className="text-lg font-semibold text-foreground mb-2">Rooted in Nature</h3>
|
||||
<h3 className="text-lg font-display font-semibold text-foreground mb-2">Rooted in Nature</h3>
|
||||
<p className="text-muted-foreground leading-relaxed">
|
||||
Exploring our relationship with the earth and each other.
|
||||
</p>
|
||||
|
|
@ -121,7 +157,7 @@ export default function HomePage() {
|
|||
</div>
|
||||
<div className="container mx-auto relative z-10">
|
||||
<div className="max-w-3xl mx-auto text-center">
|
||||
<h2 className="text-3xl sm:text-4xl font-bold mb-4 text-balance">Join the Conversation</h2>
|
||||
<h2 className="text-3xl sm:text-4xl font-display font-bold mb-4 text-balance">Join the Conversation</h2>
|
||||
<p className="text-lg mb-8 opacity-90 leading-relaxed text-pretty">
|
||||
Follow us on Instagram for behind-the-scenes content, episode updates, and community discussions.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export function Navigation() {
|
|||
<nav className="fixed top-0 left-0 right-0 z-50 bg-background/85 backdrop-blur-lg border-b border-border">
|
||||
<div className="container mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="flex items-center justify-between h-16">
|
||||
<Link href="/" className="text-xl font-bold text-foreground">
|
||||
<Link href="/" className="text-xl sm:text-2xl font-display font-bold text-foreground tracking-tight">
|
||||
Soul Speaks Soil
|
||||
</Link>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
output: 'export',
|
||||
distDir: 'out',
|
||||
eslint: {
|
||||
ignoreDuringBuilds: true,
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue