Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the content offering by introducing a suite of detailed guides on SEO and Generative Engine Optimization (GEO) strategies, replacing outdated articles with more current and actionable information. Concurrently, it refines the blog's visual presentation through styling updates and improves content interactivity by enabling custom components within blog posts, ensuring a more modern and engaging user experience. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
commit: |
There was a problem hiding this comment.
Code Review
This pull request introduces a significant amount of new content in the form of guides for SEO and GEO, replacing some older content. The changes also include refactoring the blog's styling to use theme variables for better dark mode support and consistency, which is a great improvement. While the new content is comprehensive, it contains numerous typos, grammatical errors, and several potentially broken links that need to be addressed before merging. The React component updates for injecting components into MDX are well-implemented.
|
|
||
| 1. Answers as soon as possible. | ||
| 2. Back up your claims (https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/?ref=404media.co), obviously don't keyword stuff. | ||
| 3. Schemas ?? (https://www.linkedin.com/posts/markseo_seo-share-7424067359088455680-vNFv/, https://searchengineland.com/schema-ai-overviews-structured-data-visibility-462353) |
| For the part on writing for humans and AI, we have a few guiding principles: | ||
|
|
||
| 1. Answers as soon as possible. | ||
| 2. Back up your claims (https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/?ref=404media.co), obviously don't keyword stuff. |
| * Compound branded: These are links that contain our brand name and the keyword we are targeting. (Fluid posts backlink guide, etc.) | ||
| * Generic: These are links that contain generic text. (Click here, read more, etc.) | ||
| * Naked URL: These are links that contain the URL of the website. (https://www.fluidposts.com, etc.) | ||
| * Image: These are links that contain an image. (These might links in the alt tags of images.) |
|
|
||
| Backlink matter because it's a fundamental piece in Google's Page Rank algorithm. So in theory backlinks done well = higher rankings. And since most AI systems today run a search to get the latest information, you also end up getting seen by AI systems. | ||
|
|
||
| In fact, in the world of AI search, the concept of back link is starting to evolve into the idea of entity association. I'll save that for the end, in the meantime, We'll get into that more at the end. |
There was a problem hiding this comment.
This sentence is repetitive and a bit confusing. It states the topic will be saved for the end, and then immediately repeats that it will be covered at the end. Consider rephrasing for better clarity.
In fact, in the world of AI search, the concept of a backlink is starting to evolve into the idea of entity association, which we'll cover in more detail later.
| * Tiered link strategy | ||
| * Entity Association | ||
|
|
||
| Backlink matter because it's a fundamental piece in Google's Page Rank algorithm. So in theory backlinks done well = higher rankings. And since most AI systems today run a search to get the latest information, you also end up getting seen by AI systems. |
There was a problem hiding this comment.
There's a grammatical error here. 'Backlink' should be plural to agree with the verb 'matter'.
Backlinks matter because it's a fundamental piece in Google's Page Rank algorithm. So in theory backlinks done well = higher rankings. And since most AI systems today run a search to get the latest information, you also end up getting seen by AI systems.
| 1. Answers as soon as possible. | ||
| 2. Back up your claims (https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/?ref=404media.co), obviously don't keyword stuff. | ||
| 3. Schemas ?? (https://www.linkedin.com/posts/markseo_seo-share-7424067359088455680-vNFv/, https://searchengineland.com/schema-ai-overviews-structured-data-visibility-462353) | ||
| 4. Stay focused. Put your primary targetted keyword in the title, the meta description, and in the opening paragraph of your article. |
| 3. Sentiment | ||
| 4. Citations | ||
|
|
||
| As a bonus, it'll also be nice to know how we fare in relations to other brands for the same reason as keywords. |
|
Cloudflare Preview URL for WWW 🎈 : https://pr-406.rectangularlabs.com (custom domain) |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8da3b24aa9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| 2. We can have our backlinks directed at a single URL making it cheaper for us to rank higher. | ||
|
|
||
| <Callout> | ||
| If you want to learn more about backlinks, I've written a [full guide on backlinks](/blog/guide/backlink-research) that you can use as a reference sheet. |
There was a problem hiding this comment.
Point backlink callout to existing guide slug
This link targets /blog/guide/backlink-research, but this commit only adds the backlink guide at /blog/guide/backlink-playbook; there is no page for the referenced slug. Users who click this callout will land on a 404, which breaks internal navigation and weakens SEO signal flow from one guide to another.
Useful? React with 👍 / 👎.
| The two main things to look out for here is writing in a way that's useful for both humans and AI and internal linking. | ||
|
|
||
| <Callout type="info"> | ||
| I have a [full guide on writing content](/blog/guide/content-writing) if you want all the edge and learn the full process that we use here at Fluid Posts. |
There was a problem hiding this comment.
Replace writing-guide link with a valid article URL
The callout links to /blog/guide/content-writing, but this commit does not add a corresponding page under apps/seo-www/content/guide, so the URL resolves to a 404. This creates a dead internal link directly in the main guide flow and will frustrate readers trying to continue to the referenced content.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
This PR introduces a set of new SEO/GEO content guides authored by "Winston" for the Fluid Posts blog, consolidates existing article types to use a uniform Callout type="info", and refactors the blog UI to use design token Tailwind classes instead of hardcoded colour values.
Changes:
- New content guides: Adds three new articles —
seo-geo-atuomation.mdx(main automation guide),keyword-research.mdx, andbacklink-playbook.mdx— plus removes two older placeholder articles (keyword-research.mdxandbacklink-experiment-results.mdxfrom the root content folder). - UI theming refactor: Migrates the blog index page and footer to semantic Tailwind design-token classes (
bg-background,text-foreground,text-muted-foreground, etc.) removing hardcoded light/dark colour pairs and simplifying the markup. - MDX feature additions: Wires
ButtonandWaitListDialogas injectable MDX components in the blog post route to enable interactive CTAs within article content.
Reviewed changes
Copilot reviewed 17 out of 22 changed files in this pull request and generated 20 comments.
Show a summary per file
| File | Description |
|---|---|
apps/seo-www/content/guide/seo-geo-atuomation.mdx |
New pillar guide covering SEO/GEO automation workflow end-to-end |
apps/seo-www/content/guide/keyword-research.mdx |
New guide for keyword research process with WaitListDialog CTA |
apps/seo-www/content/guide/backlink-playbook.mdx |
New guide for backlink building strategy with WaitListDialog CTA |
apps/seo-www/content/keyword-research.mdx |
Deleted (replaced by guide/keyword-research.mdx) |
apps/seo-www/content/backlink-experiment-results.mdx |
Deleted (replaced by guide/backlink-playbook.mdx) |
apps/seo-www/src/routes/blog/$.tsx |
Injects Button and WaitListDialog as MDX component overrides |
apps/seo-www/src/routes/blog/index.tsx |
Converts all inline neutral/dark colour classes to semantic design tokens |
apps/seo-www/src/routes/-components/footer.tsx |
Adds bg-background and relative z-10 to footer for correct layering |
packages/content/src/components/blog-post.tsx |
Adds mb-0 to DocsDescription to remove excess margin below post description |
packages/content/content-collections.ts |
Removes the "🔗" emoji appended to external link text |
packages/content/posts/react-performance-tanstack-patterns.mdx |
Changes Callout type from tip to info |
packages/content/posts/drizzle-postgres-turborepo.mdx |
Changes Callout type from note to info |
apps/seo-www/content/introducing-fluid-posts.mdx |
Changes Callout type from tip to info |
apps/seo-www/content/geo-seo-future.mdx |
Changes Callout type from note to info |
| 2. We can have our backlinks directed at a single URL making it cheaper for us to rank higher. | ||
|
|
||
| <Callout> | ||
| If you want to learn more about backlinks, I've written a [full guide on backlinks](/blog/guide/backlink-research) that you can use as a reference sheet. |
There was a problem hiding this comment.
The internal link points to /blog/guide/backlink-research, but the actual file added in this PR is backlink-playbook.mdx, which will be served at /blog/guide/backlink-playbook. This broken link will result in a 404 for readers who click it. The URL should be /blog/guide/backlink-playbook.
| If you want to learn more about backlinks, I've written a [full guide on backlinks](/blog/guide/backlink-research) that you can use as a reference sheet. | |
| If you want to learn more about backlinks, I've written a [full guide on backlinks](/blog/guide/backlink-playbook) that you can use as a reference sheet. |
| 2. Back up your claims (https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/?ref=404media.co), obviously don't keyword stuff. | ||
| 3. Schemas ?? (https://www.linkedin.com/posts/markseo_seo-share-7424067359088455680-vNFv/, https://searchengineland.com/schema-ai-overviews-structured-data-visibility-462353) |
There was a problem hiding this comment.
Line 98 contains raw, unrendered URLs inline in the numbered list (e.g., (https://www.pewresearch.org/...)) and an unfinished bullet point 3. Schemas ?? (links...) with two bare URLs and question marks, which reads as draft/incomplete content that was not meant to be published. This content should either be formatted as proper markdown links and completed, or removed before publishing.
| 2. Back up your claims (https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/?ref=404media.co), obviously don't keyword stuff. | |
| 3. Schemas ?? (https://www.linkedin.com/posts/markseo_seo-share-7424067359088455680-vNFv/, https://searchengineland.com/schema-ai-overviews-structured-data-visibility-462353) | |
| 2. Back up your claims ([research shows users click less when AI summaries appear in results](https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/?ref=404media.co)), obviously don't keyword stuff. | |
| 3. Use schema markup to help AI overviews and search features understand and surface your content better (see [this LinkedIn discussion](https://www.linkedin.com/posts/markseo_seo-share-7424067359088455680-vNFv/) and [Search Engine Land's overview](https://searchengineland.com/schema-ai-overviews-structured-data-visibility-462353)). |
| @@ -0,0 +1,190 @@ | |||
| --- | |||
| title: "The Ultimate guide to SEO/GEO Automation (2026)" | |||
There was a problem hiding this comment.
The file name seo-geo-atuomation.mdx contains a typo — "atuomation" should be "automation". This typo is published as part of the URL slug (/blog/guide/seo-geo-atuomation), which would look unprofessional and harm SEO. The filename, its URL slug, and all cross-references to it in keyword-research.mdx (lines 13 and 109) would need to be updated together.
| title: "The Ultimate guide to SEO/GEO Automation (2026)" | |
| title: "The Ultimate guide to SEO/GEO Automation (2026)" | |
| slug: "seo-geo-automation" |
| 3. Ranking keyword groups | ||
| 4. Gathering content briefs | ||
|
|
||
| With AI search and generative overviews changing the game, the old playbook of writing long-form top-of-funnel educational posts is losing steam. Those clicks and impressions are pretty much replace by AI overviews. |
There was a problem hiding this comment.
"replace" should be "replaced" — "Those clicks and impressions are pretty much replaced by AI overviews." The sentence requires the past participle form.
| With AI search and generative overviews changing the game, the old playbook of writing long-form top-of-funnel educational posts is losing steam. Those clicks and impressions are pretty much replace by AI overviews. | |
| With AI search and generative overviews changing the game, the old playbook of writing long-form top-of-funnel educational posts is losing steam. Those clicks and impressions are pretty much replaced by AI overviews. |
| * Tiered link strategy | ||
| * Entity Association | ||
|
|
||
| Backlink matter because it's a fundamental piece in Google's Page Rank algorithm. So in theory backlinks done well = higher rankings. And since most AI systems today run a search to get the latest information, you also end up getting seen by AI systems. |
There was a problem hiding this comment.
"Backlink matter" should be "Backlinks matter" — a plural subject requires the plural verb form.
| Backlink matter because it's a fundamental piece in Google's Page Rank algorithm. So in theory backlinks done well = higher rankings. And since most AI systems today run a search to get the latest information, you also end up getting seen by AI systems. | |
| Backlinks matter because it's a fundamental piece in Google's Page Rank algorithm. So in theory backlinks done well = higher rankings. And since most AI systems today run a search to get the latest information, you also end up getting seen by AI systems. |
| <Callout type="info"> | ||
| If this is something that you want done for you, we'll be more than happy to help! | ||
|
|
||
| <WaitListDialog trigger={<Button>Get the end to end automation today</Button>}/> |
There was a problem hiding this comment.
The WaitListDialog here is missing the source prop. Both other WaitListDialog usages in new MDX files added in this PR include a source prop (e.g., source="keyword_research_article" and source="backlink_article") for PostHog analytics tracking. Without it, signups from this article will be attributed as "unknown" in the tracking system, reducing the usefulness of your conversion analytics.
| <WaitListDialog trigger={<Button>Get the end to end automation today</Button>}/> | |
| <WaitListDialog source="seo_geo_automation_article" trigger={<Button>Get the end to end automation today</Button>}/> |
|
|
||
| ## Tiered link strategy | ||
|
|
||
| So you've did the analysis, you've got the backlinks, now what? |
There was a problem hiding this comment.
"you've got the backlinks, now what?" and "So you've did the analysis" — "you've did" is already covered in another comment, but "you've got the backlinks" follows immediately on this line. The real issue here is "you've did" from line 99: "So you've did the analysis, you've got the backlinks, now what?" — the two independent clauses should be comma-separated or use "and" before "you've got the backlinks".
| So you've did the analysis, you've got the backlinks, now what? | |
| So you've done the analysis and you've got the backlinks—now what? |
|
|
||
| Everyone already knows the stats. AI overviews in Google has led to some sites losing up to 79% of their traffic if their link came below an AI overview according to [Authoritas](https://www.theguardian.com/technology/2025/jul/24/ai-summaries-causing-devastating-drop-in-online-news-audiences-study-finds). | ||
|
|
||
| And it's likely only going to get worst. |
There was a problem hiding this comment.
"worst" should be "worse" here — "it's likely only going to get worse". "Worst" is the superlative form; "worse" is the comparative form and is grammatically correct in this sentence.
| And it's likely only going to get worst. | |
| And it's likely only going to get worse. |
|
|
||
| To start building your list, look at the language your customer use, what your competitors are ranking for, and what shows up in marketplaces or any relevant business listing sites. | ||
|
|
||
| SEO tools like [Ahrefs](https://ahrefs.com/), [SEMrush](https://semrush.com/), or cheaper data brokers like [DataForSEO](https://dataforseo.com/) and [Bishopi](https://www.bishopi.io) are also relevant to sieve through and get inspiration fo r keyword ideas. Filter out the noise and focus on queries where people are actually looking to buy or solve a specific problem. |
There was a problem hiding this comment.
"fo r" contains an extraneous space — it should be "for". This reads as "inspiration fo r keyword ideas".
| SEO tools like [Ahrefs](https://ahrefs.com/), [SEMrush](https://semrush.com/), or cheaper data brokers like [DataForSEO](https://dataforseo.com/) and [Bishopi](https://www.bishopi.io) are also relevant to sieve through and get inspiration fo r keyword ideas. Filter out the noise and focus on queries where people are actually looking to buy or solve a specific problem. | |
| SEO tools like [Ahrefs](https://ahrefs.com/), [SEMrush](https://semrush.com/), or cheaper data brokers like [DataForSEO](https://dataforseo.com/) and [Bishopi](https://www.bishopi.io) are also relevant to sieve through and get inspiration for keyword ideas. Filter out the noise and focus on queries where people are actually looking to buy or solve a specific problem. |
| 1. Answers as soon as possible. | ||
| 2. Back up your claims (https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/?ref=404media.co), obviously don't keyword stuff. | ||
| 3. Schemas ?? (https://www.linkedin.com/posts/markseo_seo-share-7424067359088455680-vNFv/, https://searchengineland.com/schema-ai-overviews-structured-data-visibility-462353) | ||
| 4. Stay focused. Put your primary targetted keyword in the title, the meta description, and in the opening paragraph of your article. |
There was a problem hiding this comment.
"targetted" should be "targeted" — English uses a single 't' in "targeted". Also note this same misspelling appears in the prompt code block on line 73 ("targetting").
| 4. Stay focused. Put your primary targetted keyword in the title, the meta description, and in the opening paragraph of your article. | |
| 4. Stay focused. Put your primary targeted keyword in the title, the meta description, and in the opening paragraph of your article. |
No description provided.