Skip to content

Conversation

@ArthurGamby
Copy link
Contributor

@ArthurGamby ArthurGamby commented Dec 29, 2025

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive Vibe Coding tutorial for building TweetSmith, covering setup, local LLM integration, UI, image uploads, persistence, theming, previews, prompts, and deployment guidance.
  • Documentation
    • Updated site navigation to include the new tutorial under AI > Prompts > Vibe Coding Tutorials.

✏️ Tip: You can customize this high-level summary in your review settings.

@github-actions
Copy link
Contributor

Dangerous URL check

No absolute URLs to prisma.io/docs found.
No local URLs found.

@github-actions
Copy link
Contributor

Redirect check

This PR probably requires the following redirects to be added to static/_redirects:

  • This PR does not change any pages in a way that would require a redirect.

@github-actions
Copy link
Contributor

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 29, 2025

Walkthrough

A new Vibe Coding tutorial MDX (TweetSmith — AI-powered tweet polishing) was added and registered in the AI > Prompts > Vibe Coding Tutorials sidebar; cSpell vocabulary was updated to allow new terms.

Changes

Cohort / File(s) Summary
New tutorial documentation
content/900-ai/tutorials/typefully-clone.mdx
Adds a full end-to-end tutorial for building TweetSmith: setup, UI prompts, local Ollama LLM wiring, filtering/context, Prisma/Postgres integration, image uploads (UploadThing), saved tweets library, theming, animations, and deployment notes with prompts and code snippets.
Sidebar registration
sidebars.ts
Inserts "ai/tutorials/typefully-clone" into the Vibe Coding Tutorials list alongside the existing ai/tutorials/linktree-clone.
Spelling config
cSpell.json
Adds the words Ollama and Typefully to the allowed words list.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically identifies the main change: adding a Typefully clone guide to the documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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.

@github-actions
Copy link
Contributor

🍈 Lychee Link Check Report

Note: Links are cached for 5 minutes. Failed links (timeouts, rate limits) are retried in a second run with longer timeout.

📊 Results Overview

Status Count
🔍 Total 2295
✅ Successful 2262
⏳ Timeouts 0
🔀 Redirected 6
👻 Excluded 25
❓ Unknown 0
🚫 Errors 1
⛔ Unsupported 1

Errors per input

Errors in 800-guides/380-vercel-app-deployment.mdx

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Dec 29, 2025

Deploying docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6e6660b
Status: ✅  Deploy successful!
Preview URL: https://c9ee7e3a.docs-51g.pages.dev
Branch Preview URL: https://dr-6671-tweet-saas-guide.docs-51g.pages.dev

View logs

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (2)
content/900-ai/tutorials/typefully-clone.mdx (2)

573-592: Clarify the file location or adjust the import path.

The import path "../app/generated/prisma/client" implies lib/prisma.ts sits at the project root alongside app/. However, the instruction says "Create lib/prisma.ts" without specifying the location relative to the project structure.

Consider either:

  1. Explicitly stating the file should be at <project-root>/lib/prisma.ts, or
  2. Using @/app/generated/prisma/client with the configured alias for clarity

This prevents confusion for developers who might place lib inside app/.


163-163: Minor: Redundant phrasing.

"a TweetSmith app called 'TweetSmith'" reads awkwardly. Consider simplifying to:

-I need you to create a minimalist single-page UI for a TweetSmith app called "TweetSmith". 
+I need you to create a minimalist single-page UI for a tweet polishing app called "TweetSmith". 
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0fe247a and 25ee4fc.

📒 Files selected for processing (2)
  • content/900-ai/tutorials/typefully-clone.mdx
  • sidebars.ts
🧰 Additional context used
🪛 GitHub Actions: Documentation Checks
content/900-ai/tutorials/typefully-clone.mdx

[error] 2-2: cspell: Unknown word 'Ollama'.


[error] 3-3: cspell: Unknown word 'Ollama'.


[error] 4-4: cspell: Unknown word 'Ollama'.


[error] 5-5: cspell: Unknown word 'Typefully'.


[error] 21-21: cspell: Unknown word 'Ollama'.


[error] 40-40: cspell: Unknown word 'Ollama'.

🪛 LanguageTool
content/900-ai/tutorials/typefully-clone.mdx

[style] ~298-~298: ‘exact same’ might be wordy. Consider a shorter alternative.
Context: ...y You might notice the LLM returns the exact same output every time. That's because LLMs ...

(EN_WORDINESS_PREMIUM_EXACT_SAME)


[style] ~326-~326: For conciseness, consider replacing this expression with an adverb.
Context: ...on" ``` --- ## 6. Add Filter Options Right now, every tweet gets the same treatment. B...

(AT_THE_MOMENT)


[style] ~702-~702: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... they're not ready to post yet, or they want to build a collection of polished content....

(REP_WANT_TO_VB)


[grammar] ~981-~981: Use a hyphen to join words.
Context: ...# Summary You've built a complete tweet polishing application with: - ✅ Local A...

(QB_NEW_EN_HYPHEN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Check internal links
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (3)
sidebars.ts (1)

502-505: LGTM!

The new tutorial entry follows the established pattern and is correctly placed within the "Vibe Coding Tutorials" category alongside the existing linktree-clone entry.

content/900-ai/tutorials/typefully-clone.mdx (2)

940-950: LGTM!

The postinstall script for running prisma generate is the correct approach to ensure the Prisma Client is generated during Vercel's build process.


12-26: LGTM!

The introduction clearly explains what users will build and the technologies involved. The vibe coding info block is a helpful addition for users unfamiliar with the concept.

@github-actions
Copy link
Contributor

🍈 Lychee Link Check Report

Note: Links are cached for 5 minutes. Failed links (timeouts, rate limits) are retried in a second run with longer timeout.

📊 Results Overview

Status Count
🔍 Total 2294
✅ Successful 2261
⏳ Timeouts 0
🔀 Redirected 6
👻 Excluded 25
❓ Unknown 0
🚫 Errors 1
⛔ Unsupported 1

Errors per input

Errors in 800-guides/380-vercel-app-deployment.mdx

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
content/900-ai/tutorials/typefully-clone.mdx (2)

84-93: JSON example is simplified - consider noting this for readers.

This example omits fields from the actual Ollama /api/tags response (like modified_at, size, digest, and the nested details object). While this keeps the tutorial focused, developers may be surprised when their actual API response differs.

Consider adding a brief note like "(simplified for clarity)" or linking to Ollama's documentation for the full schema.


928-948: Consider adding a deployment note about Ollama's local-only limitation.

The tutorial builds an excellent local development experience, but the "What's Next?" section doesn't mention that deploying to Vercel (or any serverless platform) will break the AI transformation feature since Ollama runs on localhost:11434.

A brief note would help readers understand they'd need to either:

  • Switch to a cloud LLM API (OpenAI, Anthropic, Groq) for production
  • Self-host Ollama on a server and update the endpoint

This sets proper expectations before users attempt deployment.

🧹 Nitpick comments (1)
content/900-ai/tutorials/typefully-clone.mdx (1)

667-677: Consider using the @/ alias for cleaner imports.

The prompt suggests import prisma from "../../../lib/prisma", which works but is fragile if files move. Since the project uses the @/* alias (line 124), suggesting @/lib/prisma would be more maintainable and consistent with Next.js conventions.

Suggested prompt update
-Import prisma from "../../../lib/prisma"
+Import prisma from "@/lib/prisma"
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 25ee4fc and 6e6660b.

📒 Files selected for processing (2)
  • cSpell.json
  • content/900-ai/tutorials/typefully-clone.mdx
🧰 Additional context used
🪛 LanguageTool
content/900-ai/tutorials/typefully-clone.mdx

[style] ~298-~298: ‘exact same’ might be wordy. Consider a shorter alternative.
Context: ...y You might notice the LLM returns the exact same output every time. That's because LLMs ...

(EN_WORDINESS_PREMIUM_EXACT_SAME)


[style] ~326-~326: For conciseness, consider replacing this expression with an adverb.
Context: ...on" ``` --- ## 6. Add Filter Options Right now, every tweet gets the same treatment. B...

(AT_THE_MOMENT)


[style] ~702-~702: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... they're not ready to post yet, or they want to build a collection of polished content....

(REP_WANT_TO_VB)


[grammar] ~930-~930: Use a hyphen to join words.
Context: ...# Summary You've built a complete tweet polishing application with: - ✅ Local A...

(QB_NEW_EN_HYPHEN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Check internal links
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (6)
cSpell.json (1)

52-52: LGTM! New dictionary entries are correctly placed.

Both "Ollama" and "Typefully" are inserted in proper alphabetical order within the words array, which will allow the new tutorial content to pass spellcheck.

Side note: There are pre-existing duplicate entries in this file (e.g., Postico, CASL, serverful, autoscale, Tabnine appear twice). Consider cleaning those up in a separate PR if you'd like.

Also applies to: 87-87

content/900-ai/tutorials/typefully-clone.mdx (5)

1-10: Frontmatter looks well-structured.

The metadata includes all necessary fields for documentation rendering. The 60-minute completion time is appropriate given the tutorial's comprehensive scope.


573-592: Verify the import path for the generated Prisma client.

The import path "../app/generated/prisma/client" assumes lib/ is at the project root. Given the schema's output = "../app/generated/prisma" (line 553), the actual client would typically be imported from "@/app/generated/prisma" (using the configured alias) or "../app/generated/prisma" without the /client suffix, depending on how Prisma generates the output.

Double-check this path works correctly after running prisma generate. If users follow the tutorial verbatim, a mismatch here would cause a confusing import error.


869-924: Nice pattern for handling uploads.

The "preview locally, upload only on save" approach at lines 892-910 is smart - it prevents orphaned files when users select an image but don't complete the save. This is the kind of UX consideration that separates tutorials that just work from tutorials that work well.


12-26: Well-structured introduction with clear learning outcomes.

The introduction effectively sets expectations by listing the tech stack and end goals. The "What is Vibe Coding?" info box at lines 27-31 provides helpful context for readers unfamiliar with the concept.


951-959: Solid resources section.

Good practice linking to primary documentation for all major technologies used. These give readers clear paths for deeper learning.


:::

---
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's remove the dividers


---

## 1. Set Up Your Local LLM
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 1. Set Up Your Local LLM
## 1. Set up your local LLM

We try to use sentence casing

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.

3 participants