fix: remove Vercel Analytics for static export compatibility

Remove Vercel Analytics due to static export incompatibility.

#VERCEL_SKIP

Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
This commit is contained in:
v0 2025-11-02 21:58:23 +00:00
parent 85a2853d4e
commit 52639621f4
8 changed files with 119 additions and 71 deletions

View File

@ -28,8 +28,8 @@ export default function About() {
</div>
<div className="relative h-[400px] rounded-lg overflow-hidden">
<img
src="/rustic-log-cabin-in-forest-with-dog.jpg"
alt="John's log cabin in the woods"
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122853_047-GiNIS8BNoexGmhj8mowW475waeD9TL.jpg"
alt="John standing next to massive old growth tree"
className="w-full h-full object-cover"
/>
</div>
@ -199,8 +199,8 @@ export default function About() {
</div>
<div className="relative h-[400px] rounded-lg overflow-hidden">
<img
src="/shiitake-mushrooms-growing-on-logs-in-forest.jpg"
alt="Shiitake cultivation"
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122710_780-7GtAuktkY0yLGu87XmHgdeYN8ZiWf1.jpg"
alt="John working with logs for shiitake cultivation"
className="w-full h-full object-cover"
/>
</div>

View File

@ -33,14 +33,25 @@ export default function EventsPage() {
<Navigation />
{/* Hero Section */}
<section className="py-16 px-4 bg-muted/30">
<div className="container mx-auto max-w-4xl text-center">
<h1 className="text-5xl font-bold text-foreground mb-6 text-balance">Mushroom Cultivation Courses</h1>
<section className="py-16 px-4 bg-muted/30 forest-texture">
<div className="container mx-auto max-w-6xl">
<div className="grid md:grid-cols-2 gap-12 items-center">
<div>
<h1 className="text-5xl font-bold text-foreground mb-6 text-balance">Courses and Events</h1>
<p className="text-xl text-muted-foreground leading-relaxed text-pretty">
Learn the ancient art of shiitake cultivation in the heart of a working forest. Hands-on courses taught by
someone who lives and breathes mushroom farming.
Learn the ancient art of shiitake cultivation in the heart of a working forest. Hands-on courses taught
by someone who lives and breathes mushroom farming.
</p>
</div>
<div className="relative h-[400px] rounded-lg overflow-hidden">
<img
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122911_830-2Q0ZOzzzL4YAfdfMMCFpHnOyoCy87p.jpg"
alt="Vibrant coral mushrooms in the forest"
className="w-full h-full object-cover"
/>
</div>
</div>
</div>
</section>
{/* Courses Section */}
@ -79,9 +90,33 @@ export default function EventsPage() {
</section>
{/* Experience Section */}
<section className="py-16 px-4 bg-muted/30">
<section className="py-16 px-4 bg-muted/30 moss-texture">
<div className="container mx-auto max-w-6xl">
<h2 className="text-3xl font-bold text-foreground mb-12 text-center">The Learning Experience</h2>
<h2 className="text-3xl font-bold text-foreground mb-8 text-center">The Learning Experience</h2>
<div className="grid md:grid-cols-3 gap-6 mb-12">
<div className="relative h-[250px] rounded-lg overflow-hidden">
<img
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122707_376-AQekit9vQDRnqWMpzrQY4xP8WvC8vI.jpg"
alt="Morel mushroom in the forest"
className="w-full h-full object-cover"
/>
</div>
<div className="relative h-[250px] rounded-lg overflow-hidden">
<img
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122907_932-LpmXYCIUZszbpOlB2dHqAv8nJGCtZU.jpg"
alt="Yellow coral mushrooms on moss"
className="w-full h-full object-cover"
/>
</div>
<div className="relative h-[250px] rounded-lg overflow-hidden">
<img
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122904_554-FMaSl7fxVmpFdmsHaZEX3E5Vh0NqGN.jpg"
alt="Ghost pipe plant in the forest"
className="w-full h-full object-cover"
/>
</div>
</div>
<div className="grid md:grid-cols-2 gap-8">
<Card className="border-border">

View File

@ -158,6 +158,7 @@
position: relative;
}
/* Increased overlay opacity and ensured text is above overlay */
.forest-texture::before {
content: "";
position: absolute;
@ -165,8 +166,16 @@
left: 0;
right: 0;
bottom: 0;
background-color: rgba(250, 245, 235, 0.85);
background-color: rgba(250, 245, 235, 0.92);
pointer-events: none;
z-index: 0;
}
/* Ensure all content is above the overlay with full opacity */
.forest-texture > * {
position: relative;
z-index: 1;
opacity: 1;
}
.moss-texture {

View File

@ -1,15 +1,15 @@
import type { Metadata } from 'next'
import { Geist, Geist_Mono } from 'next/font/google'
import { Analytics } from '@vercel/analytics/next'
import './globals.css'
import type React from "react"
import type { Metadata } from "next"
import { Geist, Geist_Mono } from "next/font/google"
import "./globals.css"
const _geist = Geist({ subsets: ["latin"] });
const _geistMono = Geist_Mono({ subsets: ["latin"] });
const _geist = Geist({ subsets: ["latin"] })
const _geistMono = Geist_Mono({ subsets: ["latin"] })
export const metadata: Metadata = {
title: 'v0 App',
description: 'Created with v0',
generator: 'v0.app',
title: "Shiitake John's Woodlot",
description: "Homegrown shiitake mushrooms from 20 acres of old growth forest on Texada Island",
generator: "v0.app",
}
export default function RootLayout({
@ -19,10 +19,7 @@ export default function RootLayout({
}>) {
return (
<html lang="en">
<body className={`font-sans antialiased`}>
{children}
<Analytics />
</body>
<body className={`font-sans antialiased`}>{children}</body>
</html>
)
}

View File

@ -39,8 +39,8 @@ export default function Home() {
</div>
<div className="relative h-[400px] rounded-lg overflow-hidden">
<img
src="/shiitake-mushrooms-growing-on-logs-in-forest.jpg"
alt="Shiitake mushrooms on logs"
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122857_357-qnZHfuPlKuvI6Qb5G9QucUFgve1FZk.jpg"
alt="Turkey tail mushrooms growing on mossy log"
className="w-full h-full object-cover"
/>
</div>
@ -110,6 +110,7 @@ export default function Home() {
endangered fish depend on for survival. Our careful stewardship ensures clean water flows into nearby
lakes, preserving habitat for these unique evolutionary treasures.
</p>
<div className="flex flex-col sm:flex-row gap-4">
<Button
variant="outline"
className="border-primary text-primary hover:bg-primary/10 bg-transparent"
@ -120,16 +121,30 @@ export default function Home() {
target="_blank"
rel="noopener noreferrer"
>
Learn more about the Endangered Stickleback
Learn About the Stickleback
</a>
</Button>
<Button
variant="outline"
className="border-primary text-primary hover:bg-primary/10 bg-transparent"
asChild
>
<a
href="https://texada.org/texada-island-stickleback-society/"
target="_blank"
rel="noopener noreferrer"
>
Texada Stickleback Society
</a>
</Button>
</div>
<div className="relative h-[400px] rounded-lg overflow-hidden bg-muted/50 flex items-center justify-center">
<div className="text-center p-8">
<div className="text-6xl mb-4">🐟</div>
<p className="text-lg font-semibold text-foreground mb-2">Texada Island Stickleback</p>
<p className="text-sm text-muted-foreground">One of Earth's youngest and rarest species</p>
</div>
<div className="relative h-[400px] rounded-lg overflow-hidden bg-muted/50 flex items-center justify-center">
<img
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122900_435-wb8VPiXxn7UUctygqQDrIINgVJkDZF.jpg"
alt="Moss and lichen in the forest watershed"
className="w-full h-full object-cover"
/>
</div>
</div>
</div>
@ -141,8 +156,8 @@ export default function Home() {
<div className="grid md:grid-cols-2 gap-12 items-center">
<div className="relative h-[350px] rounded-lg overflow-hidden">
<img
src="/rustic-log-cabin-in-forest-with-dog.jpg"
alt="Log cabin in the woods"
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/IMG_20251102_122849_429-trLTSHlz0FNvU5yO4XhGqSk8PakrO2.jpg"
alt="Una the dog in the mossy forest"
className="w-full h-full object-cover"
/>
</div>

View File

@ -16,7 +16,7 @@ export function Navigation() {
About Shiitake John
</Link>
<Link href="/events" className="text-foreground hover:text-primary transition-colors">
Events
Courses and Events
</Link>
<Link href="/sponsor">
<Button className="bg-[#1a4d2e] hover:bg-[#153d24] text-white">Sponsor the Old Growth</Button>

View File

@ -37,7 +37,7 @@
"@radix-ui/react-toggle": "1.1.1",
"@radix-ui/react-toggle-group": "1.1.1",
"@radix-ui/react-tooltip": "1.1.6",
"@vercel/analytics": "latest",
"@vercel/analytics": "1.3.1",
"autoprefixer": "^10.4.20",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",

View File

@ -93,8 +93,8 @@ importers:
specifier: 1.1.6
version: 1.1.6(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@vercel/analytics':
specifier: latest
version: 1.5.0(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)
specifier: 1.3.1
version: 1.3.1(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)
autoprefixer:
specifier: ^10.4.20
version: 10.4.20(postcss@8.5.0)
@ -1201,31 +1201,16 @@ packages:
'@types/react@19.0.0':
resolution: {integrity: sha512-MY3oPudxvMYyesqs/kW1Bh8y9VqSmf+tzqw3ae8a9DZW68pUe3zAdHeI1jc6iAysuRdACnVknHP8AhwD4/dxtg==}
'@vercel/analytics@1.5.0':
resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==}
'@vercel/analytics@1.3.1':
resolution: {integrity: sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==}
peerDependencies:
'@remix-run/react': ^2
'@sveltejs/kit': ^1 || ^2
next: '>= 13'
react: ^18 || ^19 || ^19.0.0-rc
svelte: '>= 4'
vue: ^3
vue-router: ^4
react: ^18 || ^19
peerDependenciesMeta:
'@remix-run/react':
optional: true
'@sveltejs/kit':
optional: true
next:
optional: true
react:
optional: true
svelte:
optional: true
vue:
optional: true
vue-router:
optional: true
aria-hidden@1.2.6:
resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
@ -1634,6 +1619,9 @@ packages:
engines: {node: '>=10'}
hasBin: true
server-only@0.0.1:
resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==}
sharp@0.34.4:
resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@ -2720,7 +2708,9 @@ snapshots:
dependencies:
csstype: 3.1.3
'@vercel/analytics@1.5.0(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)':
'@vercel/analytics@1.3.1(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)':
dependencies:
server-only: 0.0.1
optionalDependencies:
next: 16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react: 19.2.0
@ -3086,6 +3076,8 @@ snapshots:
semver@7.7.3:
optional: true
server-only@0.0.1: {}
sharp@0.34.4:
dependencies:
'@img/colour': 1.0.0