Skip to content

Rename Applirank to Reqcore throughout the codebase, updating documentation, configuration files, and error messages to reflect the new branding. Adjust Docker Compose setup and environment variables accordingly to ensure consistency with the new name.#48

Merged
JoachimLK merged 1 commit intomainfrom
rebrand/change-name-reqcore
Feb 26, 2026

Conversation

@JoachimLK
Copy link
Copy Markdown
Contributor

@JoachimLK JoachimLK commented Feb 26, 2026

Summary

  • What does this PR change?
  • Why is this needed?

Type of change

  • Bug fix
  • Feature
  • Refactor
  • Docs
  • Chore

Validation

  • I tested locally
  • I added/updated relevant documentation
  • I verified multi-tenant scoping and auth behavior for affected API paths

DCO

  • All commits in this PR are signed off (Signed-off-by) via git commit -s

Summary by CodeRabbit

  • Chores
    • Rebranded the product from Applirank to Reqcore across site UI, docs, blog, and catalog content.
    • Updated site metadata, SEO titles, publisher/author info, and public URLs to reqcore.com.
    • Switched repository, demo, and example links/credentials to Reqcore (demo email, env examples, preview defaults).
    • Updated container and deployment identifiers, local storage keys, seed/demo data, and user-facing modal/text strings to Reqcore.

…tation, configuration files, and error messages to reflect the new branding. Adjust Docker Compose setup and environment variables accordingly to ensure consistency with the new name.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 26, 2026

📝 Walkthrough

Walkthrough

This PR performs a broad rebranding: replacing Applirank with Reqcore across docs, config, env vars, UI text, server logs, seed data, and container names. Most edits are textual substitutions; the seed script adds idempotent upsert/link logic. No public API signatures were materially changed.

Changes

Cohort / File(s) Summary
Docs & Guides
ARCHITECTURE.md, CHANGELOG.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, PRODUCT.md, README.md, ROADMAP.md, SECURITY.md, TOPICAL-AUTHORITY-MAP.md, CHANGELOG.md
Replaced Applirank branding, domains, contact emails, and repo links with Reqcore across docs and policies.
Agent Skills
.agents/skills/.../SKILL.md
Updated brand, audience, and schema URLs in skill docs (Applirank → Reqcore); no logic changes.
GitHub Templates & Prompts
.github/ISSUE_TEMPLATE/*, .github/prompts/master-seo-prompt.prompt.md
Updated template copy, contact link, and prompt branding to Reqcore.
Environment & Runtime Config
.env.example, nuxt.config.ts, package.json, docker-compose.yml, Dockerfile, setup.sh
Renamed env defaults, package name, site metadata, container names, demo defaults, and URLs to Reqcore.
Public Pages & SEO
app/pages/index.vue, app/pages/blog/*, app/pages/catalog/*, app/pages/roadmap.vue, many app/pages/*
Rebranded site title, schema.org metadata, SEO strings, CTAs, and GitHub links to Reqcore across public pages.
UI Components & Layout
app/components/*, app/layouts/*, app/assets/css/main.css
Updated logo text, modal copy, Giscus repo, preview modal links, and design-system comment to Reqcore.
Dashboard & Auth Pages
app/pages/auth/*, app/pages/dashboard/*, app/pages/jobs/*, app/pages/onboarding/*
Replaced Applirank with Reqcore in SEO titles, headings, empty-state text, and links.
Composables & Plugins
app/composables/useColorMode.ts, app/plugins/color-mode.client.ts
Changed localStorage keys from applirank-color-modereqcore-color-mode.
Content / Blog / Catalog
content/blog/*, content/catalog/*
Rebranded article authorship, product mentions, links, and catalog descriptions; one catalog page extended comparison table rows.
Server Code & Logs
server/api/*, server/middleware/demo-guard.ts, server/plugins/*, server/utils/*
Updated log prefixes, demo org slug defaults, and console messages to Reqcore; no API surface changes.
Seed Script
server/scripts/seed.ts
Significant edits: rebranded seed data, added idempotent upsert and membership re-linking, and early-exit when demo org exists.
Build & CI / Workflows
.github/workflows/docker-readme-validation.yml
Updated container names, healthcheck assertions, and test payloads to use reqcore identifiers and demo email.
Misc Infra
docker-compose.yml, Dockerfile, setup.sh
Renamed container names, user/group, and env defaults to Reqcore; adjusted ownership and runtime user in Dockerfile.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 I hopped through files with nimble paws,

Swapped names and links without a pause.
Docs and seeds and containers too,
I stitched the brand from old to new.
A little hop — Reqcore greets you!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description follows the required template structure but all checklist items remain unchecked and the Summary section is incomplete with placeholder text. Fill in the Summary section with specific details about what changed and why, and check the applicable Type of change boxes and Validation steps performed.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main objective: renaming Applirank to Reqcore throughout the codebase with updates to documentation, configuration, and error messages.
Docstring Coverage ✅ Passed Docstring coverage is 80.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rebrand/change-name-reqcore

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.

@railway-app railway-app Bot temporarily deployed to applirank / applirank-pr-48 February 26, 2026 15:12 Destroyed
@railway-app
Copy link
Copy Markdown

railway-app Bot commented Feb 26, 2026

🚅 Deployed to the applirank-pr-48 environment in applirank

Service Status Web Updated (UTC)
applirank ✅ Success (View Logs) Web Feb 26, 2026 at 4:22 pm

Copy link
Copy Markdown

@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: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
app/layouts/dashboard.vue (1)

30-35: ⚠️ Potential issue | 🔴 Critical

Fix the broken GitHub repository link before deployment.

The repository URL https://github.com/reqcore/reqcore does not exist (404 error on both direct and API access). Users clicking this link in preview mode will encounter a broken page. Either create the repository with this name or update the link to point to an existing, accessible repository.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/layouts/dashboard.vue` around lines 30 - 35, The anchor element with text
"Deploy your own instance →" has a broken href value
"https://github.com/reqcore/reqcore"; update the href to a valid, existing
GitHub repository or organization URL (or create the repo) so the link no longer
404s; locate the anchor in dashboard.vue (the <a> with class "ml-1 font-semibold
underline..." and update its href to the correct repository URL or an
alternative valid destination.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.agents/skills/4-technical-seo/SKILL.md:
- Line 42: The markdown table cell contains a code span with a leading space
inside the backticks (` — Reqcore`) which triggers markdownlint MD038; edit the
SKILL.md table entry so the code span has no leading space (e.g., change ` —
Reqcore` to `— Reqcore` or move the space outside the backticks like ` — `—
Reqcore` -> ` — ` + `— Reqcore`) ensuring the visible text remains the same but
the code span has no internal leading space.

In `@app/composables/useColorMode.ts`:
- Around line 28-29: The change replaces the stored color-mode key and will
reset existing users' themes; update the useColorMode composable to perform a
one-time migration from the legacy key to the new 'reqcore-color-mode' key: when
initializing (where you read or set localStorage and where
localStorage.setItem('reqcore-color-mode', colorMode.value) is used) check for
the old key (e.g., 'color-mode' or the previous key name), read its value if
present, apply it to colorMode.value, then write that value to
'reqcore-color-mode' and remove the legacy key so migration runs only once;
apply the same fallback/migration logic to the other setItem/read locations
referenced around the useColorMode initialization and the blocks at the other
noted call sites (the places using localStorage.setItem(...) and reading
colorMode.value) to ensure backward compatibility.

In `@app/pages/blog/index.vue`:
- Around line 45-47: The external anchor elements that use target="_blank" (the
anchors with attributes href="https://github.com/joachimhorsworthy/reqcore" and
the other anchor later in the file) must include rel="noopener noreferrer" to
prevent opener access and improve security; update the anchor tags that
currently have target="_blank" (the ones with class="transition
hover:text-white") to add rel="noopener noreferrer" so both external links
include this attribute.

In `@app/pages/catalog/index.vue`:
- Around line 541-543: Add rel="noopener noreferrer" to the external anchor that
has href="https://github.com/reqcore/reqcore" and target="_blank" in
app/pages/catalog/index.vue; locate the anchor element (the one with class
"inline-flex items-center gap-1 text-white/50 hover:text-white transition") and
update it to include rel="noopener noreferrer" to match other external GitHub
links and prevent window.opener security/privacy issues.
- Line 224: The page still shows the old monogram character 'A' above "Reqcore";
locate the template element that renders the monogram (the element immediately
above the "Reqcore" text in app/pages/catalog/index.vue) and replace the
hardcoded 'A' with the correct brand initial 'R' (or bind it to the centralized
brand variable/prop used across the app, e.g., a BRAND_MONOGRAM or computed
property) so the monogram matches "Reqcore".

In `@app/pages/index.vue`:
- Line 79: The avatar/logo badges adjacent to the "Reqcore" headings still
render the letter "A"; update each badge instance to show the new brand initial
"R". Locate the avatar elements or components (e.g., any <Avatar>, <div
class="avatar">, or inline badge nodes) that currently contain the literal "A"
near the "Reqcore" text (three occurrences corresponding to the three headings)
and change the inner text/content to "R" (or bind to a brandInitial variable set
to "R" if already using a prop). Ensure any hardcoded alt/title attributes or
aria-labels that reference the old initial are also updated to "R" for
accessibility.
- Line 108: Replace all occurrences of the broken repo URL
"https://github.com/reqcore/reqcore" in app/pages/index.vue with the active
repository URL "https://github.com/reqcore-inc/applirank"; specifically update
the anchor href attributes (e.g., the instance shown as
href="https://github.com/reqcore/reqcore") and the git clone command string so
links and the clone command point to "https://github.com/reqcore-inc/applirank"
instead.

In `@app/pages/roadmap.vue`:
- Line 419: The anchor href "https://github.com/reqcore/reqcore" used in the
roadmap.vue template is a broken link (404); locate the occurrences of that
exact string in the file (the anchor elements in the template) and either update
each href to the correct existing GitHub repository URL or remove the
anchor/replace it with plain text if there is no valid repo; ensure you update
all instances of "https://github.com/reqcore/reqcore" so no broken links remain
(search for that string to find the affected <a> tags).

In `@app/plugins/color-mode.client.ts`:
- Line 10: The rename of the localStorage key in the color-mode client causes
existing users to lose their preference; update the logic around the stored
variable and localStorage access to preserve/migrate old values by first
checking for the legacy key 'applirank-color-mode' before falling back to the
new 'reqcore-color-mode' (or read legacy and write it to the new key on load),
i.e., adjust the getItem calls and any subsequent writes that reference stored
to perform a fallback/migration so existing preferences are retained (look for
the const stored = localStorage.getItem(...) expression and the code path that
writes the color-mode back to localStorage).

In `@CONTRIBUTING.md`:
- Around line 14-15: Update the repository clone command in CONTRIBUTING.md:
replace the incorrect git clone URL "https://github.com/reqcore/reqcore" with
the correct "https://github.com/reqcore-inc/applirank.git" and change the
subsequent directory command from "cd reqcore" to "cd applirank" so new
contributors can successfully clone and enter the project.

In `@README.md`:
- Line 7: Update broken external links in README: replace the demo and GitHub
links referenced as "Live Demo" and "Report Bug" (currently pointing to
https://demo.reqcore.com and https://github.com/reqcore/reqcore/issues/new) with
the correct targets under the reqcore-inc/applirank repo (e.g., update any
occurrences of github.com/reqcore/reqcore and archive/refs/heads/main.zip to
github.com/reqcore-inc/applirank and the corresponding archive URL), and point
the "Live Demo" link to the actual deployed demo URL (or a working placeholder
if not yet deployed); change all README link targets that include the old
org/repo to the new org/repo to ensure users can reach documentation and issue
reporting.

---

Outside diff comments:
In `@app/layouts/dashboard.vue`:
- Around line 30-35: The anchor element with text "Deploy your own instance →"
has a broken href value "https://github.com/reqcore/reqcore"; update the href to
a valid, existing GitHub repository or organization URL (or create the repo) so
the link no longer 404s; locate the anchor in dashboard.vue (the <a> with class
"ml-1 font-semibold underline..." and update its href to the correct repository
URL or an alternative valid destination.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 885674c and 172a2ca.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (90)
  • .agents/skills/1-topic-research/SKILL.md
  • .agents/skills/2-source-gathering/SKILL.md
  • .agents/skills/4-technical-seo/SKILL.md
  • .agents/skills/5-review-quality/SKILL.md
  • .agents/skills/seo-skill/SKILL.md
  • .env.example
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/ISSUE_TEMPLATE/feature_request.yml
  • .github/prompts/master-seo-prompt.prompt.md
  • .github/workflows/docker-readme-validation.yml
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • Dockerfile
  • PRODUCT.md
  • README.md
  • ROADMAP.md
  • SECURITY.md
  • TOPICAL-AUTHORITY-MAP.md
  • app/assets/css/main.css
  • app/components/AppSidebar.vue
  • app/components/FeedbackModal.vue
  • app/components/GiscusComments.vue
  • app/components/PreviewUpsellModal.vue
  • app/composables/useColorMode.ts
  • app/layouts/auth.vue
  • app/layouts/dashboard.vue
  • app/layouts/public.vue
  • app/pages/auth/sign-in.vue
  • app/pages/auth/sign-up.vue
  • app/pages/blog/[...slug].vue
  • app/pages/blog/index.vue
  • app/pages/catalog/index.vue
  • app/pages/dashboard/applications/[id].vue
  • app/pages/dashboard/applications/index.vue
  • app/pages/dashboard/candidates/[id].vue
  • app/pages/dashboard/candidates/index.vue
  • app/pages/dashboard/candidates/new.vue
  • app/pages/dashboard/index.vue
  • app/pages/dashboard/jobs/[id]/application-form.vue
  • app/pages/dashboard/jobs/[id]/candidates.vue
  • app/pages/dashboard/jobs/[id]/index.vue
  • app/pages/dashboard/jobs/[id]/pipeline.vue
  • app/pages/dashboard/jobs/[id]/swipe.vue
  • app/pages/dashboard/jobs/index.vue
  • app/pages/dashboard/jobs/new.vue
  • app/pages/index.vue
  • app/pages/jobs/[slug]/apply.vue
  • app/pages/jobs/[slug]/confirmation.vue
  • app/pages/jobs/[slug]/index.vue
  • app/pages/jobs/index.vue
  • app/pages/onboarding/create-org.vue
  • app/pages/roadmap.vue
  • app/plugins/color-mode.client.ts
  • content/blog/best-open-source-applicant-tracking-systems.md
  • content/blog/self-hosted-vs-cloud-ats.md
  • content/blog/total-cost-of-ownership-saas-ats-vs-self-hosted.md
  • content/catalog/ai-intelligence/ai-ranking/index.md
  • content/catalog/ai-intelligence/index.md
  • content/catalog/ai-intelligence/local-ai/index.md
  • content/catalog/ai-intelligence/resume-parsing/index.md
  • content/catalog/collaboration/index.md
  • content/catalog/collaboration/interview-scheduling/index.md
  • content/catalog/mobile-support/responsive-dashboard/index.md
  • content/catalog/pipeline-management/index.md
  • content/catalog/pipeline-management/job-management/index.md
  • content/catalog/pipeline-management/kanban-board/index.md
  • content/catalog/platform/deployment/index.md
  • content/catalog/platform/index.md
  • content/catalog/recruitment-tools/document-storage/index.md
  • content/catalog/recruitment-tools/index.md
  • content/catalog/recruitment-tools/public-job-board/index.md
  • content/catalog/security-compliance/gdpr/index.md
  • content/catalog/security-compliance/index.md
  • docker-compose.yml
  • nuxt.config.ts
  • package.json
  • server/api/auth/[...all].ts
  • server/api/candidates/[id]/documents/index.post.ts
  • server/api/documents/[id].delete.ts
  • server/api/public/jobs/[slug]/apply.post.ts
  • server/middleware/demo-guard.ts
  • server/plugins/migrations.ts
  • server/plugins/s3-bucket.ts
  • server/scripts/seed.ts
  • server/utils/auth.ts
  • server/utils/env.ts
  • setup.sh

| # | Check | Rule |
|---|-------|------|
| 1.1 | Character count | 50–60 chars (account for ` — Applirank` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
| 1.1 | Character count | 50–60 chars (account for ` — Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix markdownlint MD038 violation on Line 42.

The code span includes a leading space inside backticks, which triggers no-space-in-code.

Suggested fix
-| 1.1 | Character count | 50–60 chars (account for ` — Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
+| 1.1 | Character count | 50–60 chars (account for `— Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| 1.1 | Character count | 50–60 chars (account for ` — Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
| 1.1 | Character count | 50–60 chars (account for `— Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 42-42: Spaces inside code span elements

(MD038, no-space-in-code)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.agents/skills/4-technical-seo/SKILL.md at line 42, The markdown table cell
contains a code span with a leading space inside the backticks (` — Reqcore`)
which triggers markdownlint MD038; edit the SKILL.md table entry so the code
span has no leading space (e.g., change ` — Reqcore` to `— Reqcore` or move the
space outside the backticks like ` — `— Reqcore` -> ` — ` + `— Reqcore`)
ensuring the visible text remains the same but the code span has no internal
leading space.

Comment on lines +28 to 29
localStorage.setItem('reqcore-color-mode', colorMode.value)
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Preserve existing users’ saved theme during key rename.

Switching the storage key without legacy fallback resets color mode for existing users. Add one-time fallback/migration from the old key.

🔁 Proposed backward-compatible migration
 export function useColorMode() {
+  const STORAGE_KEY = 'reqcore-color-mode'
+  const LEGACY_STORAGE_KEY = 'applirank-color-mode'
   const colorMode = useState<'light' | 'dark'>('color-mode', () => 'light')
@@
     if (import.meta.client) {
-      localStorage.setItem('reqcore-color-mode', colorMode.value)
+      localStorage.setItem(STORAGE_KEY, colorMode.value)
     }
@@
     if (import.meta.client) {
-      localStorage.setItem('reqcore-color-mode', mode)
+      localStorage.setItem(STORAGE_KEY, mode)
     }
@@
-      const stored = localStorage.getItem('reqcore-color-mode') as 'light' | 'dark' | null
+      const stored = (localStorage.getItem(STORAGE_KEY)
+        ?? localStorage.getItem(LEGACY_STORAGE_KEY)) as 'light' | 'dark' | null
       if (stored) {
         colorMode.value = stored
+        localStorage.setItem(STORAGE_KEY, stored)
+        localStorage.removeItem(LEGACY_STORAGE_KEY)
       } else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
         colorMode.value = 'dark'
       }

Also applies to: 37-38, 44-47

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/composables/useColorMode.ts` around lines 28 - 29, The change replaces
the stored color-mode key and will reset existing users' themes; update the
useColorMode composable to perform a one-time migration from the legacy key to
the new 'reqcore-color-mode' key: when initializing (where you read or set
localStorage and where localStorage.setItem('reqcore-color-mode',
colorMode.value) is used) check for the old key (e.g., 'color-mode' or the
previous key name), read its value if present, apply it to colorMode.value, then
write that value to 'reqcore-color-mode' and remove the legacy key so migration
runs only once; apply the same fallback/migration logic to the other
setItem/read locations referenced around the useColorMode initialization and the
blocks at the other noted call sites (the places using localStorage.setItem(...)
and reading colorMode.value) to ensure backward compatibility.

Comment thread app/pages/blog/index.vue
Comment on lines +45 to 47
href="https://github.com/joachimhorsworthy/reqcore"
target="_blank"
class="transition hover:text-white"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# Find and check if the file exists
git ls-files app/pages/blog/index.vue

Repository: reqcore-inc/applirank

Length of output: 89


🏁 Script executed:

# Get file size and line count
wc -l app/pages/blog/index.vue

Repository: reqcore-inc/applirank

Length of output: 93


🏁 Script executed:

# Read the relevant sections around lines 45-47 and 143-145
sed -n '40,50p' app/pages/blog/index.vue

Repository: reqcore-inc/applirank

Length of output: 610


🏁 Script executed:

# Check the second mentioned location
sed -n '138,150p' app/pages/blog/index.vue

Repository: reqcore-inc/applirank

Length of output: 581


Add rel safeguards on external links opened in new tabs.

Both anchors at lines 45-47 and 143-145 use target="_blank" without rel="noopener noreferrer". Add it to prevent opener access and harden link security.

🔧 Proposed fix
           <a
             href="https://github.com/joachimhorsworthy/reqcore"
             target="_blank"
+            rel="noopener noreferrer"
             class="transition hover:text-white"
           >
@@
           <a
             href="https://github.com/joachimhorsworthy/reqcore"
             target="_blank"
+            rel="noopener noreferrer"
             class="transition hover:text-white/60"
           >
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
href="https://github.com/joachimhorsworthy/reqcore"
target="_blank"
class="transition hover:text-white"
href="https://github.com/joachimhorsworthy/reqcore"
target="_blank"
rel="noopener noreferrer"
class="transition hover:text-white"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/pages/blog/index.vue` around lines 45 - 47, The external anchor elements
that use target="_blank" (the anchors with attributes
href="https://github.com/joachimhorsworthy/reqcore" and the other anchor later
in the file) must include rel="noopener noreferrer" to prevent opener access and
improve security; update the anchor tags that currently have target="_blank"
(the ones with class="transition hover:text-white") to add rel="noopener
noreferrer" so both external links include this attribute.

<NuxtLink to="/" class="flex items-center gap-2.5 text-[15px] font-semibold tracking-tight text-white">
<span class="flex h-7 w-7 items-center justify-center rounded-md bg-brand-500 text-xs font-black text-white">A</span>
Applirank
Reqcore
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Brand monogram is still the old initial.

At Line 224 the text is now “Reqcore”, but Line 223 still renders A, which breaks rebrand consistency.

🎨 Suggested fix
-          <span class="flex h-7 w-7 items-center justify-center rounded-md bg-brand-500 text-xs font-black text-white">A</span>
+          <span class="flex h-7 w-7 items-center justify-center rounded-md bg-brand-500 text-xs font-black text-white">R</span>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/pages/catalog/index.vue` at line 224, The page still shows the old
monogram character 'A' above "Reqcore"; locate the template element that renders
the monogram (the element immediately above the "Reqcore" text in
app/pages/catalog/index.vue) and replace the hardcoded 'A' with the correct
brand initial 'R' (or bind it to the centralized brand variable/prop used across
the app, e.g., a BRAND_MONOGRAM or computed property) so the monogram matches
"Reqcore".

Comment on lines +541 to 543
href="https://github.com/reqcore/reqcore"
target="_blank"
class="inline-flex items-center gap-1 text-white/50 hover:text-white transition"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Add rel="noopener noreferrer" to the footer external link.

target="_blank" is present, but this anchor is missing rel, unlike your other external GitHub links.

🔒 Suggested fix
           <a
             href="https://github.com/reqcore/reqcore"
             target="_blank"
+            rel="noopener noreferrer"
             class="inline-flex items-center gap-1 text-white/50 hover:text-white transition"
           >
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
href="https://github.com/reqcore/reqcore"
target="_blank"
class="inline-flex items-center gap-1 text-white/50 hover:text-white transition"
href="https://github.com/reqcore/reqcore"
target="_blank"
rel="noopener noreferrer"
class="inline-flex items-center gap-1 text-white/50 hover:text-white transition"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/pages/catalog/index.vue` around lines 541 - 543, Add rel="noopener
noreferrer" to the external anchor that has
href="https://github.com/reqcore/reqcore" and target="_blank" in
app/pages/catalog/index.vue; locate the anchor element (the one with class
"inline-flex items-center gap-1 text-white/50 hover:text-white transition") and
update it to include rel="noopener noreferrer" to match other external GitHub
links and prevent window.opener security/privacy issues.

Comment thread app/pages/index.vue
</NuxtLink>
<a
href="https://github.com/applirank/applirank"
href="https://github.com/reqcore/reqcore"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

urls=(
  "https://github.com/reqcore/reqcore"
  "https://github.com/reqcore/reqcore/blob/main/README.md"
  "https://github.com/reqcore/reqcore/blob/main/LICENSE"
  "https://github.com/reqcore-inc/applirank"
)

for u in "${urls[@]}"; do
  code=$(curl -s -o /dev/null -w "%{http_code}" -L "$u")
  echo "Status: $code | URL: $u"
done

Repository: reqcore-inc/applirank

Length of output: 324


🏁 Script executed:

# Check current file content to confirm the links
git ls-files app/pages/index.vue

Repository: reqcore-inc/applirank

Length of output: 84


🏁 Script executed:

# Read the file to see the actual content at the flagged lines
cat -n app/pages/index.vue | sed -n '100,120p'
cat -n app/pages/index.vue | sed -n '155,175p'
cat -n app/pages/index.vue | sed -n '205,220p'
cat -n app/pages/index.vue | sed -n '575,635p'

Repository: reqcore-inc/applirank

Length of output: 6208


Update all GitHub repository references to match the active project repository.

All seven instances contain broken links pointing to https://github.com/reqcore/reqcore (404 Not Found), including the git clone command on line 211. The active repository exists at https://github.com/reqcore-inc/applirank (200 OK). Users will encounter broken links and the clone command will fail until these URLs are corrected.

Affected lines: 108, 163, 211, 583, 610, 618, 626

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/pages/index.vue` at line 108, Replace all occurrences of the broken repo
URL "https://github.com/reqcore/reqcore" in app/pages/index.vue with the active
repository URL "https://github.com/reqcore-inc/applirank"; specifically update
the anchor href attributes (e.g., the instance shown as
href="https://github.com/reqcore/reqcore") and the git clone command string so
links and the clone command point to "https://github.com/reqcore-inc/applirank"
instead.

Comment thread app/pages/roadmap.vue
</NuxtLink>
<a
href="https://github.com/applirank/applirank"
href="https://github.com/reqcore/reqcore"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify the new GitHub repository URL is accessible
curl -s -I -L https://github.com/reqcore/reqcore | head -1

Repository: reqcore-inc/applirank

Length of output: 76


The GitHub repository https://github.com/reqcore/reqcore does not exist (HTTP 404).

The URL at lines 419, 612, and 774 points to a non-existent repository. Either correct the URL to an existing repository or remove these broken links before merging.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/pages/roadmap.vue` at line 419, The anchor href
"https://github.com/reqcore/reqcore" used in the roadmap.vue template is a
broken link (404); locate the occurrences of that exact string in the file (the
anchor elements in the template) and either update each href to the correct
existing GitHub repository URL or remove the anchor/replace it with plain text
if there is no valid repo; ensure you update all instances of
"https://github.com/reqcore/reqcore" so no broken links remain (search for that
string to find the affected <a> tags).

if (import.meta.server) return

const stored = localStorage.getItem('applirank-color-mode') as 'light' | 'dark' | null
const stored = localStorage.getItem('reqcore-color-mode') as 'light' | 'dark' | null
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Existing users will lose their saved color mode preference.

Renaming the localStorage key from applirank-color-mode to reqcore-color-mode means users who previously set a preference will fall back to OS preference after this deploy. This is acceptable for a rebrand but worth noting for release communications.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/plugins/color-mode.client.ts` at line 10, The rename of the localStorage
key in the color-mode client causes existing users to lose their preference;
update the logic around the stored variable and localStorage access to
preserve/migrate old values by first checking for the legacy key
'applirank-color-mode' before falling back to the new 'reqcore-color-mode' (or
read legacy and write it to the new key on load), i.e., adjust the getItem calls
and any subsequent writes that reference stored to perform a fallback/migration
so existing preferences are retained (look for the const stored =
localStorage.getItem(...) expression and the code path that writes the
color-mode back to localStorage).

Comment thread CONTRIBUTING.md
Comment on lines +14 to +15
git clone https://github.com/reqcore/reqcore.git
cd reqcore
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

curl -sI "https://github.com/reqcore/reqcore" | head -n 1

Repository: reqcore-inc/applirank

Length of output: 76


🏁 Script executed:

curl -sI "https://github.com/reqcore-inc/applirank" | head -n 1

Repository: reqcore-inc/applirank

Length of output: 76


Update the git clone URL to the correct repository location.

The clone URL on lines 14-15 uses https://github.com/reqcore/reqcore, which returns a 404. The correct repository is at https://github.com/reqcore-inc/applirank:

Corrected lines 14-15
git clone https://github.com/reqcore-inc/applirank.git
cd applirank

This must be fixed before merge to prevent new contributors from encountering a 404 error.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CONTRIBUTING.md` around lines 14 - 15, Update the repository clone command in
CONTRIBUTING.md: replace the incorrect git clone URL
"https://github.com/reqcore/reqcore" with the correct
"https://github.com/reqcore-inc/applirank.git" and change the subsequent
directory command from "cd reqcore" to "cd applirank" so new contributors can
successfully clone and enter the project.

Comment thread README.md
**The open-source ATS you own. No per-seat fees. No data lock-in. No secret algorithms.**

[Live Demo](https://demo.applirank.com) · [Documentation](ARCHITECTURE.md) · [Roadmap](ROADMAP.md) · [Report Bug](https://github.com/applirank/applirank/issues/new)
[Live Demo](https://demo.reqcore.com) · [Documentation](ARCHITECTURE.md) · [Roadmap](ROADMAP.md) · [Report Bug](https://github.com/reqcore/reqcore/issues/new)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# First, let's check the README.md file to see the context
cat -n README.md | head -90

Repository: reqcore-inc/applirank

Length of output: 4497


🏁 Script executed:

#!/bin/bash
# Validate key rebrand URLs from README.
urls=(
  "https://demo.reqcore.com"
  "https://github.com/reqcore/reqcore/issues/new"
  "https://github.com/reqcore/reqcore.git"
  "https://github.com/reqcore/reqcore/archive/refs/heads/main.zip"
)

for u in "${urls[@]}"; do
  code=$(curl -s -o /dev/null -w "%{http_code}" -L "$u" --connect-timeout 5 --max-time 10)
  echo "$code  $u"
done

Repository: reqcore-inc/applirank

Length of output: 257


Fix broken URLs in README — all external links are unreachable.

The rebrand URLs are not live and must be corrected before merge:

  • https://demo.reqcore.com (000 — connection/DNS failed)
  • https://github.com/reqcore/reqcore/issues/new (404)
  • https://github.com/reqcore/reqcore.git (404)
  • https://github.com/reqcore/reqcore/archive/refs/heads/main.zip (404)

The actual repository is at reqcore-inc/applirank. Update all GitHub links to use the correct organization and repository path, and ensure the demo site is deployed and reachable before users encounter broken onboarding or bug-reporting paths.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 7, Update broken external links in README: replace the
demo and GitHub links referenced as "Live Demo" and "Report Bug" (currently
pointing to https://demo.reqcore.com and
https://github.com/reqcore/reqcore/issues/new) with the correct targets under
the reqcore-inc/applirank repo (e.g., update any occurrences of
github.com/reqcore/reqcore and archive/refs/heads/main.zip to
github.com/reqcore-inc/applirank and the corresponding archive URL), and point
the "Live Demo" link to the actual deployed demo URL (or a working placeholder
if not yet deployed); change all README link targets that include the old
org/repo to the new org/repo to ensure users can reach documentation and issue
reporting.

@railway-app railway-app Bot temporarily deployed to applirank / applirank-pr-48 February 26, 2026 15:38 Destroyed
Copy link
Copy Markdown

@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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@server/scripts/seed.ts`:
- Around line 375-387: The current flow assumes a credential account exists for
an existing user and blindly runs update on schema.account (using existingUser,
userId, hashedPassword, providerId 'credential') then logs success for
DEMO_EMAIL even if zero rows were affected; modify the logic to first check
whether a credential account row exists for that user and if not insert a new
credential account (populate userId, providerId 'credential', password:
hashedPassword, createdAt/updatedAt), otherwise perform the update and verify
the number of affected rows before logging; ensure the console.log for
DEMO_EMAIL only runs after either a successful update or a successful insert.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 172a2ca and 584af3c.

📒 Files selected for processing (1)
  • server/scripts/seed.ts

Comment thread server/scripts/seed.ts Outdated
Comment on lines +375 to +387
if (existingUser.length > 0 && existingUser[0]) {
// User exists — ensure their credential password is current
userId = existingUser[0].id
await db
.update(schema.account)
.set({ password: hashedPassword, updatedAt: new Date() })
.where(
and(
eq(schema.account.userId, userId),
eq(schema.account.providerId, 'credential'),
),
)
console.log(`✅ Demo user verified/updated: ${DEMO_EMAIL}`)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Handle existing users who are missing a credential account.

If the user exists but their credential account row does not, the update affects zero rows and the script still logs success. That leaves demo sign-in broken in a state this flow is intended to repair.

💡 Proposed fix
   if (existingUser.length > 0 && existingUser[0]) {
     // User exists — ensure their credential password is current
     userId = existingUser[0].id
-    await db
-      .update(schema.account)
-      .set({ password: hashedPassword, updatedAt: new Date() })
-      .where(
-        and(
-          eq(schema.account.userId, userId),
-          eq(schema.account.providerId, 'credential'),
-        ),
-      )
+    const existingCredential = await db
+      .select({ id: schema.account.id })
+      .from(schema.account)
+      .where(
+        and(
+          eq(schema.account.userId, userId),
+          eq(schema.account.providerId, 'credential'),
+        ),
+      )
+      .limit(1)
+
+    if (existingCredential.length > 0) {
+      await db
+        .update(schema.account)
+        .set({ password: hashedPassword, updatedAt: new Date() })
+        .where(eq(schema.account.id, existingCredential[0]!.id))
+    }
+    else {
+      await db.insert(schema.account).values({
+        id: id(),
+        userId,
+        accountId: userId,
+        providerId: 'credential',
+        password: hashedPassword,
+        createdAt: new Date(),
+        updatedAt: new Date(),
+      })
+    }
     console.log(`✅ Demo user verified/updated: ${DEMO_EMAIL}`)
   }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if (existingUser.length > 0 && existingUser[0]) {
// User exists — ensure their credential password is current
userId = existingUser[0].id
await db
.update(schema.account)
.set({ password: hashedPassword, updatedAt: new Date() })
.where(
and(
eq(schema.account.userId, userId),
eq(schema.account.providerId, 'credential'),
),
)
console.log(`✅ Demo user verified/updated: ${DEMO_EMAIL}`)
if (existingUser.length > 0 && existingUser[0]) {
// User exists — ensure their credential password is current
userId = existingUser[0].id
const existingCredential = await db
.select({ id: schema.account.id })
.from(schema.account)
.where(
and(
eq(schema.account.userId, userId),
eq(schema.account.providerId, 'credential'),
),
)
.limit(1)
if (existingCredential.length > 0) {
await db
.update(schema.account)
.set({ password: hashedPassword, updatedAt: new Date() })
.where(eq(schema.account.id, existingCredential[0]!.id))
}
else {
await db.insert(schema.account).values({
id: id(),
userId,
accountId: userId,
providerId: 'credential',
password: hashedPassword,
createdAt: new Date(),
updatedAt: new Date(),
})
}
console.log(`✅ Demo user verified/updated: ${DEMO_EMAIL}`)
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@server/scripts/seed.ts` around lines 375 - 387, The current flow assumes a
credential account exists for an existing user and blindly runs update on
schema.account (using existingUser, userId, hashedPassword, providerId
'credential') then logs success for DEMO_EMAIL even if zero rows were affected;
modify the logic to first check whether a credential account row exists for that
user and if not insert a new credential account (populate userId, providerId
'credential', password: hashedPassword, createdAt/updatedAt), otherwise perform
the update and verify the number of affected rows before logging; ensure the
console.log for DEMO_EMAIL only runs after either a successful update or a
successful insert.

@railway-app railway-app Bot temporarily deployed to applirank / applirank-pr-48 February 26, 2026 15:58 Destroyed
Copy link
Copy Markdown

@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: 2

♻️ Duplicate comments (1)
server/scripts/seed.ts (1)

375-387: ⚠️ Potential issue | 🟠 Major

Existing-user path still skips credential backfill.

If the user exists but has no credential account row, the update on Line 378–Line 386 affects zero rows and Line 387 still logs success. This leaves demo sign-in broken.

💡 Proposed fix
   if (existingUser.length > 0 && existingUser[0]) {
     // User exists — ensure their credential password is current
     userId = existingUser[0].id
-    await db
-      .update(schema.account)
-      .set({ password: hashedPassword, updatedAt: new Date() })
-      .where(
-        and(
-          eq(schema.account.userId, userId),
-          eq(schema.account.providerId, 'credential'),
-        ),
-      )
+    const existingCredential = await db
+      .select({ id: schema.account.id })
+      .from(schema.account)
+      .where(
+        and(
+          eq(schema.account.userId, userId),
+          eq(schema.account.providerId, 'credential'),
+        ),
+      )
+      .limit(1)
+
+    if (existingCredential.length > 0 && existingCredential[0]) {
+      await db
+        .update(schema.account)
+        .set({ password: hashedPassword, updatedAt: new Date() })
+        .where(eq(schema.account.id, existingCredential[0].id))
+    }
+    else {
+      await db.insert(schema.account).values({
+        id: id(),
+        userId,
+        accountId: userId,
+        providerId: 'credential',
+        password: hashedPassword,
+        createdAt: new Date(),
+        updatedAt: new Date(),
+      })
+    }
     console.log(`✅ Demo user verified/updated: ${DEMO_EMAIL}`)
   }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@server/scripts/seed.ts` around lines 375 - 387, The existing-user branch uses
existingUser and updates schema.account rows filtering by schema.account.userId
and schema.account.providerId === 'credential', but if no credential row exists
the update affects zero rows while the script still logs success; modify the
logic in the block handling existingUser (where userId, hashedPassword are
available) to check whether a credential account row exists for that user after
the update (or query directly for providerId 'credential'), and if missing
insert a new account row for that user with providerId 'credential', password:
hashedPassword, and updatedAt/createdAt timestamps before logging the "Demo user
verified/updated" message so demo sign-in is guaranteed to have a credential
entry.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@nuxt.config.ts`:
- Around line 46-50: The plausible analytics script is hardcoded in
nuxt.config.ts causing all deployments to send data to a fixed endpoint; make it
opt-in by gating the script inclusion on an environment/runtime config variable
(e.g., ENABLE_PLAUSIBLE or PLAUSIBLE_DOMAIN). Update the config that adds the
script (the object with keys defer, 'data-domain', src) so it is only pushed
into head/scripts when the env var is truthy, and read the domain and src from
env/runtime config instead of a literal string; ensure you reference the same
object keys ('defer', 'data-domain', 'src') and the nuxt config export
(defineNuxtConfig / runtimeConfig) when implementing the conditional logic.
- Line 110: Update the schemaOrg.identity.sameAs value to the canonical
repository URL: locate the schemaOrg.identity.sameAs array in nuxt.config.ts and
replace 'https://github.com/reqcore/reqcore' with
'https://github.com/reqcore-inc/applirank' so the sameAs entry points to the
valid repository URL.

---

Duplicate comments:
In `@server/scripts/seed.ts`:
- Around line 375-387: The existing-user branch uses existingUser and updates
schema.account rows filtering by schema.account.userId and
schema.account.providerId === 'credential', but if no credential row exists the
update affects zero rows while the script still logs success; modify the logic
in the block handling existingUser (where userId, hashedPassword are available)
to check whether a credential account row exists for that user after the update
(or query directly for providerId 'credential'), and if missing insert a new
account row for that user with providerId 'credential', password:
hashedPassword, and updatedAt/createdAt timestamps before logging the "Demo user
verified/updated" message so demo sign-in is guaranteed to have a credential
entry.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 584af3c and e9220b9.

📒 Files selected for processing (2)
  • nuxt.config.ts
  • server/scripts/seed.ts

Comment thread nuxt.config.ts
Comment on lines 46 to 50
{
defer: true,
'data-domain': 'applirank.com',
'data-domain': 'reqcore.com',
src: 'https://test-plausible.kjadfu.easypanel.host/js/script.js',
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Make analytics script opt-in instead of hardcoded.

This injects a third-party analytics script/domain for every deployment. In shared/open-source deployments, that can unintentionally send usage data to a fixed endpoint.

🔒 Suggested change
-      script: [
-        {
-          defer: true,
-          'data-domain': 'reqcore.com',
-          src: 'https://test-plausible.kjadfu.easypanel.host/js/script.js',
-        },
-      ],
+      script:
+        process.env.NUXT_PUBLIC_PLAUSIBLE_SCRIPT_SRC && process.env.NUXT_PUBLIC_PLAUSIBLE_DOMAIN
+          ? [{
+              defer: true,
+              'data-domain': process.env.NUXT_PUBLIC_PLAUSIBLE_DOMAIN,
+              src: process.env.NUXT_PUBLIC_PLAUSIBLE_SCRIPT_SRC,
+            }]
+          : [],
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{
defer: true,
'data-domain': 'applirank.com',
'data-domain': 'reqcore.com',
src: 'https://test-plausible.kjadfu.easypanel.host/js/script.js',
},
script:
process.env.NUXT_PUBLIC_PLAUSIBLE_SCRIPT_SRC && process.env.NUXT_PUBLIC_PLAUSIBLE_DOMAIN
? [{
defer: true,
'data-domain': process.env.NUXT_PUBLIC_PLAUSIBLE_DOMAIN,
src: process.env.NUXT_PUBLIC_PLAUSIBLE_SCRIPT_SRC,
}]
: [],
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@nuxt.config.ts` around lines 46 - 50, The plausible analytics script is
hardcoded in nuxt.config.ts causing all deployments to send data to a fixed
endpoint; make it opt-in by gating the script inclusion on an
environment/runtime config variable (e.g., ENABLE_PLAUSIBLE or
PLAUSIBLE_DOMAIN). Update the config that adds the script (the object with keys
defer, 'data-domain', src) so it is only pushed into head/scripts when the env
var is truthy, and read the domain and src from env/runtime config instead of a
literal string; ensure you reference the same object keys ('defer',
'data-domain', 'src') and the nuxt config export (defineNuxtConfig /
runtimeConfig) when implementing the conditional logic.

Comment thread nuxt.config.ts
name: 'Reqcore',
url: 'https://reqcore.com',
logo: 'https://reqcore.com/og-image.png',
sameAs: ['https://github.com/reqcore/reqcore'],
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

for url in \
  "https://github.com/reqcore/reqcore" \
  "https://github.com/reqcore-inc/applirank" \
  "https://github.com/reqcore-inc/reqcore"
do
  code=$(curl -s -o /dev/null -w "%{http_code}" -L "$url")
  echo "$code $url"
done

Repository: reqcore-inc/applirank

Length of output: 191


🏁 Script executed:

# Check the actual repository configuration
git config --get remote.origin.url
git remote -v

Repository: reqcore-inc/applirank

Length of output: 240


🏁 Script executed:

# Check nuxt.config.ts to see the context and verify the line
head -120 nuxt.config.ts | tail -15

Repository: reqcore-inc/applirank

Length of output: 473


Update schemaOrg.identity.sameAs to the canonical repository URL.

The current URL https://github.com/reqcore/reqcore returns a 404. Update it to https://github.com/reqcore-inc/applirank, which is the actual canonical repository (confirmed by the git remote and returns HTTP 200).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@nuxt.config.ts` at line 110, Update the schemaOrg.identity.sameAs value to
the canonical repository URL: locate the schemaOrg.identity.sameAs array in
nuxt.config.ts and replace 'https://github.com/reqcore/reqcore' with
'https://github.com/reqcore-inc/applirank' so the sameAs entry points to the
valid repository URL.

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