This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
notJust.dev — a content platform for React Native & Expo tutorials. Built with Next.js 15 (App Router), TypeScript, and Tailwind CSS. Content is managed in Notion and rendered as MDX. Deployed on AWS Amplify.
npm run dev # Start dev server (localhost:3000)
npm run build # Production build
npm run lint # ESLint check
npm run lint-fix # ESLint auto-fixNo test runner is configured. Prettier runs via Husky pre-commit hook.
Uses Next.js App Router with route groups for layout separation:
(main)/— Blog posts (/blog/[slug]), projects (/projects/[slug]), case studies, events, tags(landings)/— Landing pages (incubator, react-native-mastery, partnerships, podcast, newsletter) with minimal layouts(tools)/— Interactive tools (app-revenue-calculator)(legal)/— Legal/policy pagesbootcamp/— Bootcamp section
- Notion database →
src/lib/notion/queries posts, projects, case studies via@notionhq/client - notion-to-md converts Notion blocks to markdown
- MDX compilation with rehype-slug, rehype-autolink-headings, remark-mdx-images
- Images are copied from Notion's expiring URLs to S3 (
src/lib/s3Client.ts) - Pages use ISR with 10–60 second revalidation
Content types are defined by PostType: 'Blog' | 'Project' | 'Case study' — all stored in the same Notion database, distinguished by a Type select property.
src/lib/notion/— Notion client, page parsing, MDX conversionsrc/lib/convertkit/— ConvertKit/Kit newsletter API integrationsrc/lib/authors.ts— Author details from Notion relationssrc/lib/s3Client.ts— S3 media upload (copies Notion images to persistent storage)src/lib/config.ts— Site-wide constants (SEO defaults, social links, ConvertKit config)src/components/ServerLayout.tsx— Shared layout wrapper (Navbar, Footer, MaxWidthWrapper)src/views/— Page-specific view components composed in route pages
All in src/types/ as .d.ts files: Post, PostMeta, Author, Event, Broadcast, SocialMediaPlatform.
@/*→./src/*@images/*→./public/images/*
Tailwind CSS with custom theme:
- Primary:
#ffe031(yellow) | Secondary:#8bd2bd(teal) - Fonts: Space Grotesk (headings,
font-display), Inter (body,font-body) - Dark background theme (
#0e0b00) - MDX-specific styles in
src/styles/mdx.css
Required (see .env.example):
NOTION_KEY,NOTION_DATABASE,NOTION_EVENTS_DATABASE— Notion CMS accessAWS_REGION,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,S3_BUCKET— S3 media storageKIT_API_KEY— ConvertKit/Kit APINEXT_PUBLIC_CONVERTKIT_FORM_*— Newsletter form embeddingNEXT_PUBLIC_GTM— Google Tag Manager ID