jaygriff-v2 — File Tree

Complete annotated file tree documentation for the jaygriff-v2 project architecture

April 5, 2026
jaygriff-v2/
│
├── .cline/
│   └── skills/
│       └── build-ui/
│           └── SKILL.md                          # Cline AI skill — UI assembly instructions
│
├── .clinerules                                   # Cline AI assistant rules (mirrors copilot-instructions)
│
├── .github/
│   └── copilot-instructions.md                   # GitHub Copilot project rules — stack, golden rules, conventions
│
├── .vscode/
│   ├── settings.json                             # VS Code workspace settings
│   └── tailwind.css-data.json                    # Tailwind CSS IntelliSense custom data
│
├── content/
│   └── md/
│       ├── admin-auth-plan.md                    # Doc: passkey auth design (passwordless.dev + jose)
│       ├── admin-ui-plan.md                      # Doc: admin UI plan (simple password → passkeys roadmap)
│       ├── block-model-architecture.md           # Doc: block model schema, WYSIWYG, vector search plan
│       ├── content-pipeline-deep-dive.md         # Doc: how the file → Turso sync pipeline works
│       ├── market-statistic.md                   # Post: market statistics content
│       ├── notes.md                              # Doc: early architecture notes
│       ├── projects-architecture.md              # Doc: projects-as-first-class-entities design
│       └── styling-conventions.md                # Doc: CSS module patterns and cn() usage
│
├── public/
│   ├── favicon.ico                               # Site favicon
│   └── Sekuya-Regular.ttf                        # Custom display font
│
├── raw/
│   └── notes.md                                  # Scratch notes — filesystem → Turso pipeline planning
│
├── scripts/
│   ├── generate-metadata.ts                      # Uses Claude API + Zod to generate title/slug/tags from markdown
│   ├── inspect-dates.ts                          # Debug script — dumps slug + updated_dates from Turso
│   ├── migrate.ts                                # Creates/migrates the content table schema in Turso
│   └── sync-content.ts                           # Walks content/md/, diffs against Turso, inserts/updates rows
│
├── src/
│   ├── site-config.ts                            # Single source of truth — site name, URL, logo, SEO metadata
│   ├── middleware.ts                             # JWT auth check on /admin/* routes, redirects to login
│   │
│   ├── actions/
│   │   ├── auth.ts                               # Server Action: verify password → sign JWT → set cookie
│   │   └── content.ts                            # Server Action: toggle content status (draft/published/archived)
│   │
│   ├── app/
│   │   ├── fonts.ts                              # Font definitions (Geist, Geist Mono, JetBrains Mono, Sekuya)
│   │   ├── globals.css                           # Tailwind v4 config, oklch theme variables, base styles
│   │   ├── layout.tsx                            # Root layout — ThemeProvider, SidebarProvider, fonts
│   │   ├── page.tsx                              # Homepage (minimal)
│   │   │
│   │   ├── admin/
│   │   │   ├── admin.module.css                  # Admin layout styles
│   │   │   ├── layout.tsx                        # Admin shell — header bar with sign out button
│   │   │   ├── page.tsx                          # Redirects /admin → /admin/content
│   │   │   ├── content/
│   │   │   │   ├── content.module.css            # Content list page styles
│   │   │   │   ├── page.tsx                      # All content table — title, type, status, date
│   │   │   │   └── status-badge.tsx              # Clickable status badge — toggles draft/published/archived
│   │   │   └── login/
│   │   │       ├── login.module.css              # Login page styles
│   │   │       └── page.tsx                      # Password form — authenticates admin
│   │   │
│   │   ├── api/
│   │   │   └── auth/
│   │   │       └── signout/
│   │   │           └── route.ts                  # POST handler — clears session cookie
│   │   │
│   │   ├── docs/
│   │   │   ├── page.tsx                          # Docs listing — all published docs from Turso
│   │   │   └── [slug]/
│   │   │       ├── doc.module.css                # Doc detail page styles
│   │   │       └── page.tsx                      # Single doc page — fetches by slug, renders markdown
│   │   │
│   │   ├── posts/
│   │   │   ├── page.tsx                          # Posts listing — all published posts from Turso
│   │   │   └── [slug]/
│   │   │       ├── post.module.css               # Post detail page styles
│   │   │       └── page.tsx                      # Single post page — fetches by slug, renders markdown
│   │   │
│   │   ├── examples/
│   │   │   ├── page.tsx                          # Examples index — links to all demo pages
│   │   │   ├── article/
│   │   │   │   └── page.tsx                      # Example: article layout demo
│   │   │   ├── blocks/
│   │   │   │   └── page.tsx                      # Example: UI component showcase (cards, badges, alerts)
│   │   │   ├── design/
│   │   │   │   └── page.tsx                      # Example: design system demo
│   │   │   ├── gallery/
│   │   │   │   └── page.tsx                      # Example: image gallery layout
│   │   │   ├── gallery2/
│   │   │   │   └── page.tsx                      # Example: alternate gallery layout
│   │   │   ├── landing/
│   │   │   │   └── page.tsx                      # Example: landing page layout
│   │   │   ├── math-revolution/
│   │   │   │   ├── decks.ts                      # Flashcard deck data for math demo
│   │   │   │   └── page.tsx                      # Example: interactive math flashcard game
│   │   │   ├── shadcn/
│   │   │   │   └── page.tsx                      # Example: shadcn/ui component catalog
│   │   │   ├── skill-test/
│   │   │   │   ├── interactive-playground.tsx     # Client component: interactive skill test widget
│   │   │   │   └── page.tsx                      # Example: AI skill test page
│   │   │   └── typography/
│   │   │       └── page.tsx                      # Example: typography system showcase
│   │   │
│   │   └── og/
│   │       └── route.tsx                         # Dynamic OG image generation (social previews)
│   │
│   ├── components/
│   │   ├── mode-toggle.tsx                       # Light/dark/system dropdown toggle (next-themes)
│   │   ├── theme-provider.tsx                    # next-themes ThemeProvider wrapper
│   │   │
│   │   ├── layout/
│   │   │   ├── Container.module.css              # Container styles — max-width, padding, margins
│   │   │   └── Container.tsx                     # Content width wrapper used by all pages
│   │   │
│   │   ├── markdown-renderer/
│   │   │   ├── markdown-renderer.module.css      # Markdown renderer styles
│   │   │   └── MarkdownRenderer.tsx              # Maps react-markdown to custom typography components
│   │   │
│   │   ├── navbar/
│   │   │   ├── index.tsx                         # Navbar component (replaced by sidebar, still exists)
│   │   │   ├── nav-menu.tsx                      # Hamburger dropdown menu with nav routes + theme toggle
│   │   │   ├── navbar.module.css                 # Navbar styles
│   │   │   └── routes.ts                         # Nav link definitions (Home, Posts, Docs, Examples)
│   │   │
│   │   ├── sidebar/
│   │   │   ├── index.tsx                         # App sidebar — collapsible icon/expanded modes, nav items
│   │   │   └── sidebar.module.css                # Sidebar styles
│   │   │
│   │   ├── typography/
│   │   │   ├── index.ts                          # Barrel export for all typography components
│   │   │   ├── Blockquote.tsx                    # <blockquote> with left border, italic
│   │   │   ├── Bold.tsx                          # <strong> font-bold
│   │   │   ├── H1.tsx                            # <h1> heading
│   │   │   ├── H2.tsx                            # <h2> heading
│   │   │   ├── H3.tsx                            # <h3> heading
│   │   │   ├── H4.tsx                            # <h4> heading
│   │   │   ├── H5.tsx                            # <h5> heading
│   │   │   ├── H6.tsx                            # <h6> heading
│   │   │   ├── Highlight.tsx                     # <mark> with primary background tint
│   │   │   ├── InlineCode.tsx                    # <code> JetBrains Mono, bg-muted, border
│   │   │   ├── Italic.tsx                        # <em> italic
│   │   │   ├── Link.tsx                          # Next.js Link wrapper — text-primary, underline
│   │   │   ├── List.tsx                          # <ul>/<ol> — pass ordered for numbered
│   │   │   ├── ListItem.tsx                      # <li> list item
│   │   │   ├── Paragraph.tsx                     # <p> text-base leading-relaxed
│   │   │   ├── Small.tsx                         # <small> text-sm text-muted-foreground
│   │   │   ├── Strikethrough.tsx                 # <s> line-through
│   │   │   ├── Text.tsx                          # <span> no default styles, inline fragment
│   │   │   └── Underline.tsx                     # <span> underline with offset
│   │   │
│   │   └── ui/                                   # shadcn/ui components (Radix-based, new-york style)
│   │       ├── accordion.tsx                     # Collapsible accordion
│   │       ├── alert-dialog.tsx                  # Modal confirmation dialog
│   │       ├── alert.tsx                         # Inline alert banner
│   │       ├── aspect-ratio.tsx                  # Fixed aspect ratio container
│   │       ├── avatar.tsx                        # User avatar with fallback
│   │       ├── badge.tsx                         # Small label/tag
│   │       ├── breadcrumb.tsx                    # Breadcrumb navigation
│   │       ├── button-group.tsx                  # Grouped button row
│   │       ├── button.tsx                        # Button with variants (default, outline, ghost, etc.)
│   │       ├── calendar.tsx                      # Date picker calendar
│   │       ├── card.tsx                          # Card container with header/content/footer
│   │       ├── carousel.tsx                      # Scrollable carousel
│   │       ├── chart.tsx                         # Chart wrapper (recharts)
│   │       ├── checkbox.tsx                      # Checkbox input
│   │       ├── collapsible.tsx                   # Collapsible section
│   │       ├── combobox.tsx                      # Searchable select dropdown
│   │       ├── command.tsx                       # Command palette (⌘K style)
│   │       ├── context-menu.tsx                  # Right-click context menu
│   │       ├── dialog.tsx                        # Modal dialog
│   │       ├── direction.tsx                     # RTL/LTR direction provider
│   │       ├── drawer.tsx                        # Slide-out drawer panel
│   │       ├── dropdown-menu.tsx                 # Dropdown menu
│   │       ├── empty.tsx                         # Empty state placeholder
│   │       ├── field.tsx                         # Form field wrapper
│   │       ├── form.tsx                          # Form with react-hook-form + zod
│   │       ├── hover-card.tsx                    # Hover-triggered popover card
│   │       ├── input-group.tsx                   # Input with prefix/suffix addons
│   │       ├── input-otp.tsx                     # One-time password input
│   │       ├── input.tsx                         # Text input
│   │       ├── item.tsx                          # Generic list item
│   │       ├── kbd.tsx                           # Keyboard shortcut badge
│   │       ├── label.tsx                         # Form label
│   │       ├── menubar.tsx                       # Horizontal menu bar
│   │       ├── native-select.tsx                 # Native <select> dropdown
│   │       ├── navigation-menu.tsx               # Multi-level navigation menu
│   │       ├── pagination.tsx                    # Page navigation controls
│   │       ├── popover.tsx                       # Click-triggered popover
│   │       ├── progress.tsx                      # Progress bar
│   │       ├── radio-group.tsx                   # Radio button group
│   │       ├── resizable.tsx                     # Resizable panel layout
│   │       ├── scroll-area.tsx                   # Custom scrollbar container
│   │       ├── select.tsx                        # Styled select dropdown
│   │       ├── separator.tsx                     # Horizontal/vertical divider
│   │       ├── sheet.tsx                         # Slide-out sheet (mobile-friendly drawer)
│   │       ├── sidebar.tsx                       # Sidebar container with collapsible + cookie persistence
│   │       ├── skeleton.tsx                      # Loading skeleton placeholder
│   │       ├── slider.tsx                        # Range slider
│   │       ├── sonner.tsx                        # Toast notifications (sonner)
│   │       ├── spinner.tsx                       # Loading spinner
│   │       ├── switch.tsx                        # Toggle switch
│   │       ├── table.tsx                         # Data table
│   │       ├── tabs.tsx                          # Tab panels
│   │       ├── textarea.tsx                      # Multi-line text input
│   │       ├── toggle-group.tsx                  # Grouped toggle buttons
│   │       ├── toggle.tsx                        # Single toggle button
│   │       └── tooltip.tsx                       # Hover tooltip
│   │
│   ├── hooks/
│   │   └── use-mobile.ts                         # Hook: detects mobile viewport (< 768px)
│   │
│   └── lib/
│       ├── content.ts                            # DB queries — getContentBySlug, getAllPublished, getAllContent
│       ├── registry.ts                           # Component registry — source of truth for AI agents
│       ├── turso.ts                              # Turso (libsql) client initialization
│       └── utils.ts                              # cn() utility — clsx + tailwind-merge
│
├── .env.local                                    # Environment variables (gitignored)
├── .gitignore                                    # Git ignore rules
├── components.json                               # shadcn/ui configuration
├── eslint.config.mjs                             # ESLint flat config
├── next-env.d.ts                                 # Next.js TypeScript declarations (auto-generated)
├── next.config.ts                                # Next.js configuration
├── package.json                                  # Dependencies and scripts
├── package-lock.json                             # Lockfile
├── postcss.config.mjs                            # PostCSS config (Tailwind plugin)
├── README.md                                     # Project readme
└── tsconfig.json                                 # TypeScript configuration