Skip to content

Add cli#48

Merged
Arjun544 merged 19 commits into
mainfrom
add_cli
Jun 20, 2026
Merged

Add cli#48
Arjun544 merged 19 commits into
mainfrom
add_cli

Conversation

@Arjun544

@Arjun544 Arjun544 commented Jun 20, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

Release Notes

  • New Features

    • Added comprehensive blog system with articles, guides, filtering, pagination, and search functionality
    • Added table of contents with anchor navigation for blog posts
    • Added related posts recommendations
    • Added author bylines with metadata, publication dates, and social links
  • Documentation

    • Added "Blog & Guides" section to README with refreshed support matrix and tech stack tables
    • Added complete blog implementation documentation
  • Chores

    • Bumped CLI version to 1.0.0
    • Added MDX rendering and component libraries

Arjun544 added 18 commits June 5, 2026 23:49
…figuration utilities with associated test suites
…g, UI components, and the initial launch announcement.
@vercel

vercel Bot commented Jun 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
flutter-init Ready Ready Preview, Comment Jun 20, 2026 10:59am

@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7db820ba-34a7-4c0d-afe1-aa0efd43eae6

📥 Commits

Reviewing files that changed from the base of the PR and between 9705bf6 and f2dfe2b.

⛔ Files ignored due to path filters (2)
  • bun.lock is excluded by !**/*.lock
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (44)
  • .github/workflows/test-tier1.yml
  • README.md
  • app/blog/[...slug]/page.tsx
  • app/blog/components/AuthorByline.tsx
  • app/blog/components/BlogFilters.tsx
  • app/blog/components/FeaturedPost.tsx
  • app/blog/components/GuideConfigBlock.tsx
  • app/blog/components/MDXComponents.tsx
  • app/blog/components/PostCard.tsx
  • app/blog/components/RelatedPosts.tsx
  • app/blog/components/TableOfContents.tsx
  • app/blog/components/TagPill.tsx
  • app/blog/layout.tsx
  • app/blog/page.tsx
  • app/components/landing/CliCommand.tsx
  • app/components/landing/Footer.tsx
  • app/components/landing/Navbar.tsx
  • app/components/wizard/WizardShell.tsx
  • app/sitemap.ts
  • cli/package.json
  • components.json
  • components/animate-ui/components/animate/code.tsx
  • components/animate-ui/components/animate/tabs.tsx
  • components/animate-ui/components/radix/files.tsx
  • components/animate-ui/primitives/animate/code-block.tsx
  • components/animate-ui/primitives/animate/tabs.tsx
  • components/animate-ui/primitives/radix/accordion.tsx
  • components/animate-ui/primitives/radix/files.tsx
  • components/ui/pagination.tsx
  • components/ui/tabs.tsx
  • content/blog/guides/.generated/riverpod-clean-firebase.tree.json
  • content/blog/guides/state-management/riverpod-clean-firebase.mdx
  • content/blog/updates/introducing-cli.mdx
  • content/blog/updates/welcome-to-flutterinit.mdx
  • docs/blog.md
  • lib/blog/authors.ts
  • lib/blog/getAllPosts.ts
  • lib/blog/getPostBySlug.ts
  • lib/blog/getRelatedPosts.ts
  • lib/blog/types.ts
  • lib/get-strict-context.tsx
  • next.config.ts
  • package.json
  • scripts/generate-guide-trees.ts

📝 Walkthrough

Walkthrough

Adds a complete blog/guides system to the FlutterInit Next.js app: data-layer types and MDX post-fetching utilities, animate-ui primitives (accordion, tabs, files, code-block), blog UI components, paginated index and post-detail pages with shiki MDX rendering and sticky ToC, a guide-tree generation script with CI stale-artifact enforcement, CLI v1.0.0 bump, three initial blog posts, and landing page blog integration.

Changes

Blog System Launch

Layer / File(s) Summary
Blog data contracts and lib utilities
lib/blog/types.ts, lib/blog/authors.ts, lib/blog/getAllPosts.ts, lib/blog/getPostBySlug.ts, lib/blog/getRelatedPosts.ts, lib/get-strict-context.tsx
Defines Kind, StackConfig, Post, Author types, the AUTHORS registry, recursive MDX file discovery, reading-time computation, getAllPosts/getPostBySlug/getRelatedPosts implementations, and the getStrictContext generic React context helper.
Animate-UI primitives
components/animate-ui/primitives/radix/accordion.tsx, components/animate-ui/primitives/radix/files.tsx, components/animate-ui/primitives/animate/tabs.tsx, components/animate-ui/primitives/animate/code-block.tsx
Client-side primitives: Radix accordion with AnimatePresence height/mask animation, files/folders tree backed by accordion with controlled open state, animated tabs with ResizeObserver height and horizontal translation, and a code-block with optional typewriter effect and dynamic shiki highlighting.
Animate-UI component wrappers
components/animate-ui/components/animate/code.tsx, components/animate-ui/components/animate/tabs.tsx, components/animate-ui/components/radix/files.tsx, components.json
Styled wrappers over primitives: Code/CodeHeader/CodeBlock with context-shared code string and theme-aware highlighting, Tailwind-styled tab wrappers, and file-tree wrappers with GitStatus display (color classes and U/M/D letter indicators).
Blog UI building-block components
app/blog/components/TagPill.tsx, app/blog/components/AuthorByline.tsx, app/blog/components/PostCard.tsx, app/blog/components/FeaturedPost.tsx, app/blog/components/RelatedPosts.tsx, app/blog/components/GuideConfigBlock.tsx
TagPill with per-Kind styling, AuthorByline with avatar/date/reading-time, animated PostCard with cover-or-gradient placeholder, FeaturedPost hero card, RelatedPosts grid, and GuideConfigBlock stack-config badge grid with icon/label mapping.
MDX rendering, TableOfContents, and BlogFilters
app/blog/components/MDXComponents.tsx, app/blog/components/TableOfContents.tsx, app/blog/components/BlogFilters.tsx
mdxComponents map with shiki fenced-code highlighting (filename extraction), GFM callout blockquotes, heading anchor links, and styled table/image/link overrides; IntersectionObserver-backed sticky ToC with hash/visibility tracking; client-side BlogFilters with URL-param-driven kind/sort/category/year/month selects.
Blog pages, layout, and infra
app/blog/layout.tsx, app/blog/page.tsx, app/blog/[...slug]/page.tsx, components/ui/pagination.tsx, app/sitemap.ts, next.config.ts, package.json
Blog layout with metadata template; ISR index page with filtering/sorting/pagination/featured-post; detail page with generateStaticParams, generateMetadata, MDX rendering, guide-only blocks, ToC, and related posts; PaginationLink switched to next/link; sitemap extended with blog entries; next.config adds MDX extensions and GitHub avatar domain.
Guide-tree generation and CI enforcement
scripts/generate-guide-trees.ts, package.json, .github/workflows/test-tier1.yml, content/blog/guides/.generated/riverpod-clean-firebase.tree.json
Script scans guide MDX files, generates deterministic StackConfig-based .tree.json artifacts, reports errors, and exits non-zero on failure; generate:guide-trees npm script; CI step regenerates trees and fails if committed artifacts are stale.
Landing integration, content, CLI bump, and docs
app/components/landing/Navbar.tsx, app/components/landing/Footer.tsx, app/components/landing/CliCommand.tsx, app/components/wizard/WizardShell.tsx, cli/package.json, content/blog/..., docs/blog.md, README.md
Blog link added to Navbar/Footer; CliCommand simplified to single static command; WizardShell uses dynamic CLI version from package.json; CLI bumped to v1.0.0 with main/bin fields; three MDX posts published; docs/blog.md implementation reference added; README refreshed with blog section, updated support matrix, and tech-stack table.

Sequence Diagram(s)

sequenceDiagram
  participant Browser
  participant BlogPage
  participant getAllPosts
  participant BlogPostPage
  participant getPostBySlug
  participant getRelatedPosts
  participant MDXRemote
  participant TableOfContents

  rect rgba(99, 102, 241, 0.5)
    note over Browser,getAllPosts: /blog index
    Browser->>BlogPage: GET /blog?kind=&sort=&page=
    BlogPage->>getAllPosts: fetch all posts
    getAllPosts-->>BlogPage: Post[]
    BlogPage->>BlogPage: filter / sort / paginate
    BlogPage-->>Browser: FeaturedPost + PostCard grid + BlogFilters
  end

  rect rgba(16, 185, 129, 0.5)
    note over Browser,TableOfContents: /blog/[...slug] detail
    Browser->>BlogPostPage: GET /blog/guides/state-management/riverpod-clean-firebase
    BlogPostPage->>getPostBySlug: slug segments
    getPostBySlug-->>BlogPostPage: Post
    BlogPostPage->>getAllPosts: fetch all for related
    getAllPosts-->>BlogPostPage: Post[]
    BlogPostPage->>getRelatedPosts: score by tags/category/kind
    getRelatedPosts-->>BlogPostPage: Post[] (max 3)
    BlogPostPage->>MDXRemote: render MDX + shiki + rehype-slug
    MDXRemote-->>BlogPostPage: highlighted JSX
    BlogPostPage->>TableOfContents: h2/h3 items from extractTocItems
    TableOfContents->>Browser: sticky ToC + IntersectionObserver
  end
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

  • Arjun544/flutter_init#35: Established the Tier 1 CI workflow that this PR extends with the conditional generate:guide-trees stale-artifact check.
  • Arjun544/flutter_init#39: Also modified .github/workflows/test-tier1.yml; this PR adds an additional guide-tree validation step on top of that workflow.

Poem

🐇 Hop, hop — the blog is born today,
MDX guides light the Flutter way.
Shiki gleams on every code block bright,
A tree.json check keeps artifacts right.
The rabbit types fast — one command, first run,
Clean architecture guides, v1.0 begun! 🌿

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add_cli

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Arjun544 Arjun544 merged commit 1424a4c into main Jun 20, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant