diff --git a/.gemini/settings.json b/.gemini/settings.json new file mode 100644 index 00000000..d2cfdda4 --- /dev/null +++ b/.gemini/settings.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "sanity": { + "url": "https://mcp.sanity.io/developer", + "type": "http" + } + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5d7f9079..1ce044c0 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,8 @@ next-env.d.ts .env.local # Sentry Config File .env.sentry-build-plugin + +.genkit/ +# Firebase debug files +firebase-debug.log +firebase-debug.*.log \ No newline at end of file diff --git a/GEMINI.md b/GEMINI.md new file mode 100644 index 00000000..2ab79132 --- /dev/null +++ b/GEMINI.md @@ -0,0 +1,34 @@ +# Project Overview + +This is a Next.js project for the CodingCat.dev website. It's a platform for podcasts, courses, and blog posts, built with a modern tech stack. + +## Key Technologies + +* **Framework:** [Next.js](https://nextjs.org/) (React framework) +* **CMS:** [Sanity.io](https://www.sanity.io/) (headless CMS) +* **Styling:** [Tailwind CSS](https://tailwindcss.com/) +* **UI Components:** [Radix UI](https://www.radix-ui.com/) +* **Search:** [Algolia](https://www.algolia.com/) +* **Deployment:** Vercel + +## Architecture + +The project follows a standard Next.js app directory structure. It uses Sanity for content management, with a dedicated Sanity Studio at the `/studio` route. The frontend is built with React and Tailwind CSS, and it uses various libraries for UI components, search, and more. + +# Building and Running + +## Key Commands + +* **`pnpm dev`**: Starts the development server. +* **`pnpm build`**: Builds the application for production. +* **`pnpm start`**: Starts the production server. +* **`pnpm lint`**: Lints the code. +* **`pnpm format`**: Formats the code with Biome. + +## Development Conventions + +* **Content Management:** All content is managed through Sanity. The schema is defined in the `sanity/schemas` directory. +* **Styling:** The project uses Tailwind CSS for styling. +* **UI Components:** The project uses Radix UI for accessible UI components. +* **Code Formatting:** The project uses Biome for code formatting. +* **Language:** All components should be React and TypeScript should be used everywhere. diff --git a/app/(main)/(course)/course/[courseSlug]/page.tsx b/app/(main)/(course)/course/[courseSlug]/page.tsx index dbd61676..cfef3e1e 100644 --- a/app/(main)/(course)/course/[courseSlug]/page.tsx +++ b/app/(main)/(course)/course/[courseSlug]/page.tsx @@ -18,7 +18,7 @@ import MoreHeader from "@/components/more-header"; import { BreadcrumbLinks } from "@/components/breadrumb-links"; import Link from "next/link"; import ShowPro from "./show-pro"; -import CarbonAdBanner from "@/components/carbon-ad-banner"; + type Params = Promise<{ courseSlug: string }>; @@ -115,7 +115,7 @@ export default async function CoursePage({ params }: { params: Params }) { /> )}
- +
diff --git a/app/(main)/(course)/courses/page.tsx b/app/(main)/(course)/courses/page.tsx index e5924c3f..fdfcf7da 100644 --- a/app/(main)/(course)/courses/page.tsx +++ b/app/(main)/(course)/courses/page.tsx @@ -11,7 +11,7 @@ import type { CoursesQueryResult } from "@/sanity/types"; import { sanityFetch } from "@/sanity/lib/live"; import { coursesQuery } from "@/sanity/lib/queries"; import MoreHeader from "@/components/more-header"; -import CarbonAdBanner from "@/components/carbon-ad-banner"; + function HeroCourse({ title, @@ -83,7 +83,7 @@ export default async function Page() { ) : ( )} - + {heroPost?._id && (