This commit is contained in:
commit
08d6605fcc
7 changed files with 142 additions and 149 deletions
1
.husky/pre-commit
Normal file
1
.husky/pre-commit
Normal file
|
@ -0,0 +1 @@
|
||||||
|
npm run lint
|
21
package-lock.json
generated
21
package-lock.json
generated
|
@ -59,9 +59,10 @@
|
||||||
"aws-cdk-lib": "^2.189.1",
|
"aws-cdk-lib": "^2.189.1",
|
||||||
"constructs": "^10.4.2",
|
"constructs": "^10.4.2",
|
||||||
"esbuild": "^0.25.5",
|
"esbuild": "^0.25.5",
|
||||||
"eslint": "9.30.0",
|
"eslint": "^9.30.0",
|
||||||
"eslint-config-next": "15.3.4",
|
"eslint-config-next": "15.3.4",
|
||||||
"genkit-cli": "^1.13.0",
|
"genkit-cli": "^1.13.0",
|
||||||
|
"husky": "^9.1.7",
|
||||||
"postcss": "^8",
|
"postcss": "^8",
|
||||||
"tailwindcss": "^3.4.1",
|
"tailwindcss": "^3.4.1",
|
||||||
"tsx": "^4.20.3",
|
"tsx": "^4.20.3",
|
||||||
|
@ -6355,6 +6356,8 @@
|
||||||
},
|
},
|
||||||
"node_modules/eslint": {
|
"node_modules/eslint": {
|
||||||
"version": "9.30.0",
|
"version": "9.30.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.30.0.tgz",
|
||||||
|
"integrity": "sha512-iN/SiPxmQu6EVkf+m1qpBxzUhE12YqFLOSySuOyVLJLEF9nzTf+h/1AJYc1JWzCnktggeNrjvQGLngDzXirU6g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -8044,6 +8047,22 @@
|
||||||
"node": ">= 14"
|
"node": ">= 14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/husky": {
|
||||||
|
"version": "9.1.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
|
||||||
|
"integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"husky": "bin.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/typicode"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/iconv-lite": {
|
"node_modules/iconv-lite": {
|
||||||
"version": "0.4.24",
|
"version": "0.4.24",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
156
package.json
156
package.json
|
@ -1,77 +1,79 @@
|
||||||
{
|
{
|
||||||
"name": "nextn",
|
"name": "nextn",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev --turbopack -p 9002",
|
"dev": "next dev --turbopack -p 9002",
|
||||||
"genkit:dev": "genkit start -- tsx src/ai/dev.ts",
|
"genkit:dev": "genkit start -- tsx src/ai/dev.ts",
|
||||||
"genkit:watch": "genkit start -- tsx --watch src/ai/dev.ts",
|
"genkit:watch": "genkit start -- tsx --watch src/ai/dev.ts",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"build:static": "next build",
|
"build:static": "next build",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
"lint": "next lint",
|
"lint": "next lint",
|
||||||
"typecheck": "tsc --noEmit",
|
"typecheck": "tsc --noEmit",
|
||||||
"deploy:s3": "npm run build:static && aws s3 sync out/ s3://$S3_BUCKET_NAME --delete --no-cli-pager",
|
"deploy:s3": "npm run build:static && aws s3 sync out/ s3://$S3_BUCKET_NAME --delete --no-cli-pager",
|
||||||
"create-s3-bucket": "node scripts/create-s3-bucket.js"
|
"create-s3-bucket": "node scripts/create-s3-bucket.js",
|
||||||
},
|
"prepare": "husky install"
|
||||||
"dependencies": {
|
},
|
||||||
"@genkit-ai/googleai": "^1.13.0",
|
"dependencies": {
|
||||||
"@genkit-ai/next": "^1.13.0",
|
"@genkit-ai/googleai": "^1.13.0",
|
||||||
"@hookform/resolvers": "^4.1.3",
|
"@genkit-ai/next": "^1.13.0",
|
||||||
"@radix-ui/react-accordion": "^1.2.3",
|
"@hookform/resolvers": "^4.1.3",
|
||||||
"@radix-ui/react-alert-dialog": "^1.1.6",
|
"@radix-ui/react-accordion": "^1.2.3",
|
||||||
"@radix-ui/react-avatar": "^1.1.3",
|
"@radix-ui/react-alert-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-checkbox": "^1.1.4",
|
"@radix-ui/react-avatar": "^1.1.3",
|
||||||
"@radix-ui/react-collapsible": "^1.1.11",
|
"@radix-ui/react-checkbox": "^1.1.4",
|
||||||
"@radix-ui/react-dialog": "^1.1.6",
|
"@radix-ui/react-collapsible": "^1.1.11",
|
||||||
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
"@radix-ui/react-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-label": "^2.1.2",
|
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
||||||
"@radix-ui/react-menubar": "^1.1.6",
|
"@radix-ui/react-label": "^2.1.2",
|
||||||
"@radix-ui/react-popover": "^1.1.6",
|
"@radix-ui/react-menubar": "^1.1.6",
|
||||||
"@radix-ui/react-progress": "^1.1.2",
|
"@radix-ui/react-popover": "^1.1.6",
|
||||||
"@radix-ui/react-radio-group": "^1.2.3",
|
"@radix-ui/react-progress": "^1.1.2",
|
||||||
"@radix-ui/react-scroll-area": "^1.2.3",
|
"@radix-ui/react-radio-group": "^1.2.3",
|
||||||
"@radix-ui/react-select": "^2.1.6",
|
"@radix-ui/react-scroll-area": "^1.2.3",
|
||||||
"@radix-ui/react-separator": "^1.1.2",
|
"@radix-ui/react-select": "^2.1.6",
|
||||||
"@radix-ui/react-slider": "^1.2.3",
|
"@radix-ui/react-separator": "^1.1.2",
|
||||||
"@radix-ui/react-slot": "^1.2.3",
|
"@radix-ui/react-slider": "^1.2.3",
|
||||||
"@radix-ui/react-switch": "^1.1.3",
|
"@radix-ui/react-slot": "^1.2.3",
|
||||||
"@radix-ui/react-tabs": "^1.1.3",
|
"@radix-ui/react-switch": "^1.1.3",
|
||||||
"@radix-ui/react-toast": "^1.2.6",
|
"@radix-ui/react-tabs": "^1.1.3",
|
||||||
"@radix-ui/react-tooltip": "^1.1.8",
|
"@radix-ui/react-toast": "^1.2.6",
|
||||||
"class-variance-authority": "^0.7.1",
|
"@radix-ui/react-tooltip": "^1.1.8",
|
||||||
"clsx": "^2.1.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"date-fns": "^3.6.0",
|
"clsx": "^2.1.1",
|
||||||
"dotenv": "^16.5.0",
|
"date-fns": "^3.6.0",
|
||||||
"embla-carousel-react": "^8.6.0",
|
"dotenv": "^16.5.0",
|
||||||
"firebase": "^11.9.1",
|
"embla-carousel-react": "^8.6.0",
|
||||||
"genkit": "^1.13.0",
|
"firebase": "^11.9.1",
|
||||||
"lucide-react": "^0.475.0",
|
"genkit": "^1.13.0",
|
||||||
"next": "15.3.3",
|
"lucide-react": "^0.475.0",
|
||||||
"next-themes": "^0.3.0",
|
"next": "15.3.3",
|
||||||
"patch-package": "^8.0.0",
|
"next-themes": "^0.3.0",
|
||||||
"react": "^18.3.1",
|
"patch-package": "^8.0.0",
|
||||||
"react-day-picker": "^8.10.1",
|
"react": "^18.3.1",
|
||||||
"react-dom": "^18.3.1",
|
"react-day-picker": "^8.10.1",
|
||||||
"react-hook-form": "^7.54.2",
|
"react-dom": "^18.3.1",
|
||||||
"recharts": "^2.15.1",
|
"react-hook-form": "^7.54.2",
|
||||||
"tailwind-merge": "^3.0.1",
|
"recharts": "^2.15.1",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwind-merge": "^3.0.1",
|
||||||
"zod": "^3.24.2"
|
"tailwindcss-animate": "^1.0.7",
|
||||||
},
|
"zod": "^3.24.2"
|
||||||
"devDependencies": {
|
},
|
||||||
"@types/node": "^20",
|
"devDependencies": {
|
||||||
"@types/react": "^18",
|
"@types/node": "^20",
|
||||||
"@types/react-dom": "^18",
|
"@types/react": "^18",
|
||||||
"aws-cdk-lib": "^2.189.1",
|
"@types/react-dom": "^18",
|
||||||
"constructs": "^10.4.2",
|
"aws-cdk-lib": "^2.189.1",
|
||||||
"esbuild": "^0.25.5",
|
"constructs": "^10.4.2",
|
||||||
"eslint": "9.30.0",
|
"esbuild": "^0.25.5",
|
||||||
"eslint-config-next": "15.3.4",
|
"eslint": "^9.30.0",
|
||||||
"genkit-cli": "^1.13.0",
|
"eslint-config-next": "15.3.4",
|
||||||
"postcss": "^8",
|
"genkit-cli": "^1.13.0",
|
||||||
"tailwindcss": "^3.4.1",
|
"husky": "^9.1.7",
|
||||||
"tsx": "^4.20.3",
|
"postcss": "^8",
|
||||||
"typescript": "^5.8.3"
|
"tailwindcss": "^3.4.1",
|
||||||
}
|
"tsx": "^4.20.3",
|
||||||
}
|
"typescript": "^5.8.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ import type { Metadata } from 'next';
|
||||||
import { Button } from '@/components/ui/button';
|
import { Button } from '@/components/ui/button';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { ExternalLink } from 'lucide-react';
|
import { ExternalLink } from 'lucide-react';
|
||||||
|
import { Footer } from '@/components/Footer';
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Video Gallery - Community Coverage of Chelsea Smallwood",
|
title: "Video Gallery - Community Coverage of Chelsea Smallwood",
|
||||||
|
@ -130,29 +131,7 @@ export default async function GalleryPage() {
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer className="text-center py-6 text-sm text-muted-foreground">
|
<Footer />
|
||||||
<div className="container mx-auto">
|
|
||||||
<p>
|
|
||||||
This website, cheatingchelsea.com, is dedicated to raising
|
|
||||||
awareness and supporting the victims.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
For questions, comments, or concerns, please email:{' '}
|
|
||||||
<a
|
|
||||||
href="mailto:notacheater@cheatingchelsea.com"
|
|
||||||
className="text-primary hover:underline"
|
|
||||||
>
|
|
||||||
notacheater@cheatingchelsea.com
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
<p className="mt-4 italic">
|
|
||||||
Disclaimer: This website is independently operated by a snarky
|
|
||||||
Michigander and is not affiliated with or endorsed by Kristen
|
|
||||||
Jacobs.
|
|
||||||
</p>
|
|
||||||
<p className="mt-2">© 2025 Cheating Chelsea Exposed. All Rights Reserved.</p>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,10 @@ import { Button } from '@/components/ui/button';
|
||||||
import {
|
import {
|
||||||
Card,
|
Card,
|
||||||
CardContent,
|
CardContent,
|
||||||
CardHeader
|
CardHeader,
|
||||||
} from '@/components/ui/card';
|
} from '@/components/ui/card';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
|
import { Footer } from '@/components/Footer';
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "The Full Story: Chelsea Smallwood's Controversial Empire",
|
title: "The Full Story: Chelsea Smallwood's Controversial Empire",
|
||||||
description: "A deep dive into how Chelsea Smallwood built a business on monetizing infidelity, the controversy surrounding 'The Other Woman and the Wife,' and the serious allegations of cyberbullying and harassment in the Kristen Jacobs lawsuit.",
|
description: "A deep dive into how Chelsea Smallwood built a business on monetizing infidelity, the controversy surrounding 'The Other Woman and the Wife,' and the serious allegations of cyberbullying and harassment in the Kristen Jacobs lawsuit.",
|
||||||
|
@ -202,29 +202,7 @@ export default function LongStoryPage() {
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer className="text-center py-6 text-sm text-muted-foreground">
|
<Footer />
|
||||||
<div className="container mx-auto">
|
|
||||||
<p>
|
|
||||||
This website, cheatingchelsea.com, is dedicated to raising
|
|
||||||
awareness and supporting the victims.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
For questions, comments, or concerns, please email:{' '}
|
|
||||||
<a
|
|
||||||
href="mailto:notacheater@cheatingchelsea.com"
|
|
||||||
className="text-primary hover:underline"
|
|
||||||
>
|
|
||||||
notacheater@cheatingchelsea.com
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
<p className="mt-4 italic">
|
|
||||||
Disclaimer: This website is independently operated by a snarky
|
|
||||||
Michigander and is not affiliated with or endorsed by Kristen
|
|
||||||
Jacobs.
|
|
||||||
</p>
|
|
||||||
<p className="mt-2">© 2025 Cheating Chelsea Exposed. All Rights Reserved.</p>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import {
|
||||||
CardHeader,
|
CardHeader,
|
||||||
} from '@/components/ui/card';
|
} from '@/components/ui/card';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
|
import { Footer } from '@/components/Footer';
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
return (
|
return (
|
||||||
|
@ -176,29 +177,7 @@ export default function Home() {
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer className="text-center py-6 text-sm text-muted-foreground">
|
<Footer />
|
||||||
<div className="container mx-auto">
|
|
||||||
<p>
|
|
||||||
This website, cheatingchelsea.com, is dedicated to raising
|
|
||||||
awareness and supporting the victims.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
For questions, comments, or concerns, please email:{' '}
|
|
||||||
<a
|
|
||||||
href="mailto:notacheater@cheatingchelsea.com"
|
|
||||||
className="text-primary hover:underline"
|
|
||||||
>
|
|
||||||
notacheater@cheatingchelsea.com
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
<p className="mt-4 italic">
|
|
||||||
Disclaimer: This website is independently operated by a snarky
|
|
||||||
Michigander and is not affiliated with or endorsed by Kristen
|
|
||||||
Jacobs.
|
|
||||||
</p>
|
|
||||||
<p className="mt-2">© 2025 Cheating Chelsea Exposed. All Rights Reserved.</p>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
35
src/components/Footer.tsx
Normal file
35
src/components/Footer.tsx
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
export function Footer() {
|
||||||
|
return (
|
||||||
|
<footer className="text-center py-6 text-sm text-muted-foreground">
|
||||||
|
<div className="container mx-auto">
|
||||||
|
<p>
|
||||||
|
This website, cheatingchelsea.com, is dedicated to raising
|
||||||
|
awareness and supporting the victims.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
For questions, comments, or concerns, please email:{' '}
|
||||||
|
<a
|
||||||
|
href="mailto:notacheater@cheatingchelsea.com"
|
||||||
|
className="text-primary hover:underline"
|
||||||
|
>
|
||||||
|
notacheater@cheatingchelsea.com
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p className="mt-4 italic">
|
||||||
|
Disclaimer: This website is independently operated by a{' '}
|
||||||
|
<a
|
||||||
|
href="https://angrymichigander.com"
|
||||||
|
className="text-primary hover:underline"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
aria-label="snarky Michigander (opens in a new tab)"
|
||||||
|
>
|
||||||
|
snarky Michigander
|
||||||
|
</a>{' '}
|
||||||
|
and is not affiliated with or endorsed by Kristen Jacobs.
|
||||||
|
</p>
|
||||||
|
<p className="mt-2">© {new Date().getFullYear()} Cheating Chelsea Exposed. All Rights Reserved.</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
);
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue