Skip to content

Comments

Chore: Improve Project Template#2

Merged
dandedotdev merged 20 commits intomainfrom
chore/improve-project-template
Feb 19, 2026
Merged

Chore: Improve Project Template#2
dandedotdev merged 20 commits intomainfrom
chore/improve-project-template

Conversation

@dandedotdev
Copy link
Owner

@dandedotdev dandedotdev commented Feb 19, 2026

Description

Update the project template and content based on the Next.js template.

Summary by CodeRabbit

  • New Features
    • Added a landing page with personal profile information and social media links.

@dandedotdev dandedotdev self-assigned this Feb 19, 2026
@dandedotdev dandedotdev added the enhancement New feature or request label Feb 19, 2026
@dandedotdev
Copy link
Owner Author

@coderabbitai help

@coderabbitai
Copy link

coderabbitai bot commented Feb 19, 2026

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

CodeRabbit commands

These commands are invoked using PR/Issue comments.

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai evaluate custom pre-merge check --instructions <custom-checks-instructions> --name <custom-checks-title> [--mode <error|warning>] to validate the custom pre-merge checks instructions. Defaults to error when --mode is omitted.
    • @coderabbitai ignore pre-merge checks to override pre-merge checks and get an approval on PR.
    • @coderabbitai run pre-merge checks to run pre-merge checks on the pull request.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve to resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai generate configuration to create a PR that adds the current resolved configuration as .coderabbit.yaml (or show it if already present).
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit configuration file (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, support, documentation and community

  • Visit our status page to check the current availability of CodeRabbit.
  • Create a ticket on our support page for assistance with any issues or questions.
  • Visit our documentation site for detailed information on how to use CodeRabbit.
  • Join our Discord community to connect with other users and get help from the community.
  • Follow us on X/Twitter for updates and announcements.

@dandedotdev
Copy link
Owner Author

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Feb 19, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link

coderabbitai bot commented Feb 19, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR establishes a comprehensive Next.js development environment with tooling configurations, CI/CD workflows, and a custom landing page. It adds ESLint, Prettier, TypeScript, GitHub Actions workflows, VS Code settings, EditorConfig, and supporting tool configurations. The existing starter page is replaced with a personalized landing page featuring social links. Dependencies and build scripts are updated accordingly.

Changes

Cohort / File(s) Summary
Cursor & Editor Integration
.cursor/mcp.json, .cursor/worktrees.json, .vscode/extensions.json, .vscode/settings.json
Adds Cursor MCP server configuration for next-devtools and worktree setup tasks. VS Code settings expanded with code action triggers, ESLint config flags, and editor customizations.
Development Configuration Standards
.editorconfig, .markdownlint.json, .markdownlintignore, prettier.config.mjs
Adds EditorConfig for consistent formatting rules (LF line endings, 2-space indents, 80-char max), Markdown linting rules, and Prettier configuration with import sorting and Tailwind plugin integration.
GitHub & CI/CD Setup
.github/CODEOWNERS, .github/dependabot.yml, .github/workflows/check-secrets.yml, .github/workflows/pr.yml
Configures code ownership, automated dependency updates, and two workflows: secret scanning on PRs and comprehensive CI pipeline with caching for lint and type-check jobs.
Root Project Configuration
LICENSE, .gitignore, .mise.toml, .prettierignore
Adds MIT license, extends gitignore with AI/dependency patterns while preserving cursor configs, sets Node/pnpm versions via mise, and configures Prettier exclusions.
Build & Package Management
package.json, next.config.ts, tsconfig.json, open-next.config.ts, postcss.config.mjs, wrangler.jsonc
Substantially updates package.json with new dev tools and scripts; enables React Compiler in Next.js config; expands TypeScript strictness flags and path aliases; minor formatting adjustments to other configs.
ESLint Configuration
eslint.config.mjs
Rewrites from FlatCompat-based to modern defineConfig approach, consolidating Next.js, TypeScript, Prettier, and custom rules with explicit parser config, plugin management, and global ignores.
Global Styling
src/app/globals.css (deleted), styles/globals.css (added)
Removes old global styles from src directory; adds new centralized styles with Tailwind import, CSS variables, theme mapping, and body base styles.
App Structure Migration
app/layout.tsx (new), app/page.tsx (new), src/app/layout.tsx (deleted), src/app/page.tsx (deleted)
Migrates from src/app to app directory; replaces default Next.js starter with custom RootLayout providing fonts/metadata and Home landing page with avatar and social links (Instagram, GitHub).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Configurations dancing in neat little rows,
ESLint and Prettier, where the formatter goes,
Workflows and tooling all in their place,
A fresh landing page with style and grace,
The burrow's now organized, ready to grow! 🌱

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Chore: Improve Project Template' accurately summarizes the main objective of the changeset, which involves comprehensive template improvements including configuration files, tooling setup, CI/CD workflows, and project structure updates.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/improve-project-template

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.

Copy link

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

🧹 Nitpick comments (15)
.markdownlintignore (1)

1-1: Consider ignoring build output directories.

/node_modules is covered, but .next and .open-next (the Cloudflare build output) will also be scanned unless explicitly excluded.

🧹 Proposed additions
 /node_modules
+/.next
+/.open-next
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.markdownlintignore at line 1, Add build output directories to
.markdownlintignore so generated files aren't lint-scanned: update the ignore
file to include .next and .open-next (alongside the existing /node_modules) by
adding lines for ".next" and ".open-next" (or "/.next" and "/.open-next") so the
Markdown linter skips Next.js and Cloudflare build outputs.
next.config.ts (1)

4-4: Remove the leftover template placeholder comment.

/* config options here */ is a copy-paste artifact from the Next.js starter template and should be removed now that a real option (reactCompiler) has been added.

🧹 Proposed fix
 const nextConfig: NextConfig = {
-	/* config options here */
   reactCompiler: true,
 };
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@next.config.ts` at line 4, Remove the leftover template comment "/* config
options here */" from next.config.ts; locate the comment near the exported
config where reactCompiler is defined and delete that placeholder line so only
the real configuration (including reactCompiler) remains.
wrangler.jsonc (1)

1-8: Remove the duplicate comment block.

The JSDoc header referencing the Wrangler docs appears twice (lines 1–4 and 5–8). One copy should be removed.

🧹 Proposed fix
-/**
- * For more details on how to configure Wrangler, refer to:
- * https://developers.cloudflare.com/workers/wrangler/configuration/
- */
 /**
  * For more details on how to configure Wrangler, refer to:
  * https://developers.cloudflare.com/workers/wrangler/configuration/
  */
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@wrangler.jsonc` around lines 1 - 8, Remove the duplicated JSDoc header block
that repeats "For more details on how to configure Wrangler, refer to:
https://developers.cloudflare.com/workers/wrangler/configuration/" so only one
instance remains at the top of wrangler.jsonc; locate the two identical comment
blocks and delete one of them to eliminate the redundancy.
tsconfig.json (1)

14-22: isolatedModules is redundant alongside verbatimModuleSyntax.

TypeScript recommends combining erasableSyntaxOnly with verbatimModuleSyntax, which ensures a module contains the appropriate import syntax and that import elision does not take place. verbatimModuleSyntax: true already enforces all the constraints of isolatedModules: true, making the latter redundant. Removing it reduces noise in the config.

♻️ Proposed fix
-    "isolatedModules": true,
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tsconfig.json` around lines 14 - 22, Remove the redundant "isolatedModules":
true setting from tsconfig since "verbatimModuleSyntax": true already enforces
the same constraints; update the tsconfig.json by deleting the isolatedModules
entry so only "verbatimModuleSyntax": true (and related flags like
"erasableSyntaxOnly") remain to avoid duplicate configuration.
.prettierignore (1)

29-30: Consider removing next.config.ts from the Prettier ignore list.

next.config.ts is a regular TypeScript file with no reason to opt out of formatting. Excluding it means future edits to the config file won't be auto-formatted, which could produce noisy diffs.

♻️ Proposed fix
-next.config.ts
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.prettierignore around lines 29 - 30, The .prettierignore currently lists
"next.config.ts", preventing Prettier from formatting that TypeScript config
file; remove the "next.config.ts" entry from .prettierignore so Prettier will
format the file on save/CI, then run Prettier (or prettier --check) to ensure
the config file is properly formatted; reference the ".prettierignore" entry and
the "next.config.ts" filename when making the change and commit the update.
.gitignore (1)

17-23: Yarn-specific entries are unnecessary for a pnpm project.

Since the project uses pnpm (per .mise.toml and commit messages), the .pnp.*, .yarn/*, and !.yarn/* negation entries are dead rules. They're harmless, but cleaning them out keeps the .gitignore focused.

♻️ Proposed fix
 /node_modules
 /.pnp
-.pnp.*
-.yarn/*
-!.yarn/patches
-!.yarn/plugins
-!.yarn/releases
-!.yarn/versions
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.gitignore around lines 17 - 23, Remove Yarn-specific ignore rules from
.gitignore: delete the entries matching .pnp, .pnp.*, .yarn/* and the negations
like !.yarn/patches, !.yarn/plugins, !.yarn/releases, !.yarn/versions since this
repo uses pnpm; keep only pnpm-relevant ignores to avoid dead/gitignore noise
and ensure future maintenance is clear (look for the exact symbols ".pnp",
".pnp.*", ".yarn/*", "!.yarn/patches", "!.yarn/plugins", "!.yarn/releases",
"!.yarn/versions" in the file).
styles/globals.css (1)

10-10: Stylelint scss/at-rule-no-unknown error on @theme is a false positive — update the Stylelint config.

@theme is a valid Tailwind CSS v4 directive. The linter is applying SCSS rules to this file and doesn't recognise the Tailwind v4 @theme at-rule. Add @theme to the ignore list in the Stylelint configuration to suppress the false positive:

{
  "rules": {
    "scss/at-rule-no-unknown": [true, { "ignoreAtRules": ["theme", "source"] }]
  }
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@styles/globals.css` at line 10, Stylelint is flagging the Tailwind v4 at-rule
`@theme` as unknown due to the SCSS rule `scss/at-rule-no-unknown`; update the
Stylelint config to add `"theme"` (and `"source"` if needed) to the
`ignoreAtRules` array for `scss/at-rule-no-unknown` so the linter accepts
Tailwind directives like `@theme`; modify the rule entry
(`scss/at-rule-no-unknown`) in your Stylelint configuration to include the
ignoreAtRules option with the necessary at-rule names.
package.json (1)

28-43: Minor version pinning inconsistency between tailwindcss and @tailwindcss/postcss.

tailwindcss is pinned to exact 4.2.0 while @tailwindcss/postcss uses ^4 (any 4.x). These are tightly coupled packages — a wide range on one but exact on the other could cause version mismatches after updates. Consider aligning them (e.g., both ^4.2.0 or both exact).

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

In `@package.json` around lines 28 - 43, The package version pinning for tailwind
is inconsistent: update either "tailwindcss" or "@tailwindcss/postcss" so both
use the same range to avoid mismatches; for example change "tailwindcss":
"4.2.0" to "tailwindcss": "^4.2.0" or change "@tailwindcss/postcss": "^4" to
"@tailwindcss/postcss": "4.2.0" (make the choice consistent across the two
package entries).
app/page.tsx (1)

7-11: Consider adding aria-hidden="true" to decorative SVG icons.

Each link already has a visible text label, making the SVGs purely decorative. Adding aria-hidden="true" prevents screen readers from announcing the SVG contents.

Example fix (apply to both SVGs)
-      <svg className="size-4" fill="currentColor" viewBox="0 0 24 24">
+      <svg aria-hidden="true" className="size-4" fill="currentColor" viewBox="0 0 24 24">

Also applies to: 16-20

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

In `@app/page.tsx` around lines 7 - 11, The SVGs used as the "icon" property in
app/page.tsx are decorative and should not be announced by screen readers;
update each SVG element (the JSX node inside the icon: (...) blocks) to include
aria-hidden="true" so assistive tech ignores them, and keep the visible text
labels on the links unchanged; apply the same change to both SVG occurrences
referenced by the icon property.
eslint.config.mjs (2)

111-116: .ts extension in jsx-filename-extension allows JSX in non-TSX files.

Typically only .tsx files should contain JSX. Including "ts" means ESLint won't warn when JSX appears in plain .ts files, which TypeScript itself would reject (unless jsx is configured in tsconfig). If this is intentional, no action needed.

Proposed fix (if unintentional)
       "react/jsx-filename-extension": [
         "warn",
         {
-          extensions: ["ts", "tsx"],
+          extensions: [".tsx"],
         },
       ],
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@eslint.config.mjs` around lines 111 - 116, The ESLint rule
"react/jsx-filename-extension" currently allows extensions ["ts", "tsx"], which
permits JSX in plain .ts files; update the rule in eslint.config.mjs
(react/jsx-filename-extension) to only include "tsx" so ESLint will warn for JSX
in non-TSX files (or alternatively add a comment explaining that allowing "ts"
is intentional if you want JSX in .ts files). Ensure the change modifies the
extensions array for the react/jsx-filename-extension rule to remove "ts" and
keep "tsx" only.

53-53: Replace deprecated no-return-await with @typescript-eslint/return-await.

The no-return-await rule was deprecated in ESLint v8.46.0. Since this project uses @typescript-eslint/parser, the TypeScript ESLint rule provides better coverage by allowing return await only in error-handling contexts (e.g., inside try blocks where rejections are caught by catch/finally).

Proposed fix
-      "no-return-await": "error",
+      "@typescript-eslint/return-await": ["error", "in-try-catch"],
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@eslint.config.mjs` at line 53, Replace the deprecated ESLint rule
"no-return-await" with the TypeScript-aware rule
"@typescript-eslint/return-await": remove or stop using "no-return-await" and
add "@typescript-eslint/return-await": "error" (or same severity) in the config
so the parser `@typescript-eslint/parser` handles return-await semantics; ensure
only the new rule name is present and there are no conflicting entries for
"no-return-await".
.github/workflows/pr.yml (1)

7-9: Node.js 25 is a non-LTS (odd-numbered) release line.

Node 25 is the "Current" release and will not receive long-term support. If this project targets production on Cloudflare, this is likely fine (Cloudflare Workers have their own runtime), but be aware that Node 25 will reach end-of-life sooner than an LTS version. Consider pinning to Node 22 (LTS) if stability is a concern for CI.

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

In @.github/workflows/pr.yml around lines 7 - 9, Update the CI Node version to
an LTS release by changing the NODE_VERSION env value (currently NODE_VERSION:
25.3.0) to an LTS release such as Node 22 (e.g., 22.x or a specific LTS like
22.20.0) so the workflow uses a stable, supported Node line for CI; leave
PNPM_VERSION unchanged and ensure any Node-version-dependent steps in the
workflow still work with the new NODE_VERSION.
.vscode/settings.json (1)

5-7: Potential conflict between source.organizeImports and Prettier import sorting.

The project uses @ianvs/prettier-plugin-sort-imports (configured in prettier.config.mjs) to sort imports. Running source.organizeImports on save invokes VS Code's built-in TypeScript import organizer, which can fight with Prettier's import ordering — leading to a save loop or inconsistent results. Similarly, source.sortMembers may also conflict if Prettier/ESLint perfectionist handles member sorting. Consider removing both to let Prettier and ESLint handle these concerns.

Proposed fix
   "editor.codeActionsOnSave": {
     "source.fixAll.eslint": "explicit",
     "source.fixAll.markdownlint": "explicit",
-    "source.fixAll.prettier": "explicit",
-    "source.organizeImports": "explicit",
-    "source.sortMembers": "explicit"
+    "source.fixAll.prettier": "explicit"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.vscode/settings.json around lines 5 - 7, Remove the VS Code auto-organize
and member-sorting settings to avoid conflicts with Prettier's import/member
sorting plugin: delete the "source.organizeImports" and "source.sortMembers"
entries from the workspace settings (leave "source.fixAll.prettier" intact) so
Prettier/ESLint handle import and member ordering exclusively.
app/layout.tsx (1)

28-31: Prefer Next.js file-based metadata for the favicon.

Next.js App Router automatically serves a favicon when you place favicon.ico in the app/ directory — no manual <head> or <link> tag needed. This approach integrates with Next.js's metadata system and avoids the manual <head> block. If you do keep the manual link, use self-closing JSX syntax (<link … />).

Proposed fix (remove manual head)
   return (
     <html lang="en">
-      <head>
-        <link href="/favicon.ico" rel="icon" type="image/x-icon"></link>
-      </head>
       <body
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/layout.tsx` around lines 28 - 31, Remove the manual <head> block and the
explicit <link href="/favicon.ico" rel="icon" ...> tag in the layout (the <html>
/ <head> / <link> elements shown) and rely on Next.js App Router serving
favicon.ico placed in the app/ directory; if you decide to keep an explicit
favicon link instead, convert the <link> to self-closing JSX syntax (<link ...
/>) to fix invalid JSX.
.github/dependabot.yml (1)

1-6: Add a github-actions ecosystem entry to Dependabot.

The PR introduces GitHub Actions workflows that pin action versions (e.g., actions/checkout@v4, pnpm/action-setup@v4). Without a github-actions Dependabot entry, these pins will not receive automated updates, leaving potential security patches unmanaged.

Proposed addition
 version: 2
 updates:
   - package-ecosystem: "npm"
     directory: "/"
     schedule:
       interval: "weekly"
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "weekly"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/dependabot.yml around lines 1 - 6, Add a new Dependabot entry for
the GitHub Actions ecosystem so action pins get updated; in the top-level
updates list add an item with package-ecosystem: "github-actions", directory:
"/" (or the workflows directory if different), and schedule (e.g., interval:
"weekly") alongside the existing npm entry to ensure actions like
actions/checkout@v4 and pnpm/action-setup@v4 are automatically checked for
updates.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/CODEOWNERS:
- Line 5: The CODEOWNERS entry currently contains just the owner handle
"@dandedotdev" which is invalid; update that line to include a path pattern
followed by the owner (format: "<pattern> <owner>") so the rule matches
files—for example use a repository-wide pattern like "*" or "/**" followed by
`@dandedotdev` to make the entry take effect.

In @.github/workflows/check-secrets.yml:
- Around line 17-22: Update the "Install Git Secrets" and "Scan for secrets"
steps to make installation non-interactive and actually register patterns before
scanning: run apt-get update -y and apt-get install -y in the "Install Git
Secrets" step, then initialize git-secrets (git secrets --install) and register
patterns (at minimum git secrets --register-aws and any org-specific patterns
via git secrets --add) before running the scan, and use git secrets
--scan-history (or run both --scan and --scan-history) in the "Scan for secrets"
step to cover history as well as the working tree.

In @.github/workflows/pr.yml:
- Around line 78-80: The "Install dependencies" step currently checks
needs.init.outputs.cache-hit, causing the lint job to reinstall on init
cache-miss; update that step's if condition to reference the lint job's own
cache step output (e.g. steps.<cache_step_id>.outputs.cache-hit != 'true') so
the install runs only when the lint job's cache is a miss—ensure you use the
actual cache step id used in the lint job instead of needs.init.

In @.vscode/settings.json:
- Line 9: Remove the deprecated VS Code ESLint setting
"eslint.experimental.useFlatConfig" from the workspace settings; locate the JSON
key "eslint.experimental.useFlatConfig" and delete that entry (and trailing
comma if needed) so the settings no longer include this no-op/deprecated
configuration.

In `@eslint.config.mjs`:
- Line 48: The ESLint rule name is incorrect: replace the invalid rule
identifier "eslint-plugin-react/jsx-sort-props" with the correct short-form
"react/jsx-sort-props" in the config so ESLint recognizes the rule; locate the
rule entry (the string "eslint-plugin-react/jsx-sort-props") and update it to
"react/jsx-sort-props" while keeping the existing "off" value.

In `@styles/globals.css`:
- Around line 19-23: The body rule currently hardcodes "Arial, Helvetica,
sans-serif" so the theme token --font-sans (which maps to --font-geist-sans) is
never used; update the body font-family to use var(--font-sans) (optionally
followed by the existing fallback stack) so that the CSS variable --font-sans /
--font-geist-sans can be consumed by the body text and allow next/font injection
to take effect.

In `@tsconfig.json`:
- Around line 37-38: Remove the erroneous include entry
".next/dev/types/**/*.ts" from the tsconfig.json include array so only the
standard Next.js generated path ".next/types/**/*.ts" remains; locate the
include list in tsconfig.json and delete the string ".next/dev/types/**/*.ts"
(leave ".next/types/**/*.ts" intact).

---

Nitpick comments:
In @.github/dependabot.yml:
- Around line 1-6: Add a new Dependabot entry for the GitHub Actions ecosystem
so action pins get updated; in the top-level updates list add an item with
package-ecosystem: "github-actions", directory: "/" (or the workflows directory
if different), and schedule (e.g., interval: "weekly") alongside the existing
npm entry to ensure actions like actions/checkout@v4 and pnpm/action-setup@v4
are automatically checked for updates.

In @.github/workflows/pr.yml:
- Around line 7-9: Update the CI Node version to an LTS release by changing the
NODE_VERSION env value (currently NODE_VERSION: 25.3.0) to an LTS release such
as Node 22 (e.g., 22.x or a specific LTS like 22.20.0) so the workflow uses a
stable, supported Node line for CI; leave PNPM_VERSION unchanged and ensure any
Node-version-dependent steps in the workflow still work with the new
NODE_VERSION.

In @.gitignore:
- Around line 17-23: Remove Yarn-specific ignore rules from .gitignore: delete
the entries matching .pnp, .pnp.*, .yarn/* and the negations like
!.yarn/patches, !.yarn/plugins, !.yarn/releases, !.yarn/versions since this repo
uses pnpm; keep only pnpm-relevant ignores to avoid dead/gitignore noise and
ensure future maintenance is clear (look for the exact symbols ".pnp", ".pnp.*",
".yarn/*", "!.yarn/patches", "!.yarn/plugins", "!.yarn/releases",
"!.yarn/versions" in the file).

In @.markdownlintignore:
- Line 1: Add build output directories to .markdownlintignore so generated files
aren't lint-scanned: update the ignore file to include .next and .open-next
(alongside the existing /node_modules) by adding lines for ".next" and
".open-next" (or "/.next" and "/.open-next") so the Markdown linter skips
Next.js and Cloudflare build outputs.

In @.prettierignore:
- Around line 29-30: The .prettierignore currently lists "next.config.ts",
preventing Prettier from formatting that TypeScript config file; remove the
"next.config.ts" entry from .prettierignore so Prettier will format the file on
save/CI, then run Prettier (or prettier --check) to ensure the config file is
properly formatted; reference the ".prettierignore" entry and the
"next.config.ts" filename when making the change and commit the update.

In @.vscode/settings.json:
- Around line 5-7: Remove the VS Code auto-organize and member-sorting settings
to avoid conflicts with Prettier's import/member sorting plugin: delete the
"source.organizeImports" and "source.sortMembers" entries from the workspace
settings (leave "source.fixAll.prettier" intact) so Prettier/ESLint handle
import and member ordering exclusively.

In `@app/layout.tsx`:
- Around line 28-31: Remove the manual <head> block and the explicit <link
href="/favicon.ico" rel="icon" ...> tag in the layout (the <html> / <head> /
<link> elements shown) and rely on Next.js App Router serving favicon.ico placed
in the app/ directory; if you decide to keep an explicit favicon link instead,
convert the <link> to self-closing JSX syntax (<link ... />) to fix invalid JSX.

In `@app/page.tsx`:
- Around line 7-11: The SVGs used as the "icon" property in app/page.tsx are
decorative and should not be announced by screen readers; update each SVG
element (the JSX node inside the icon: (...) blocks) to include
aria-hidden="true" so assistive tech ignores them, and keep the visible text
labels on the links unchanged; apply the same change to both SVG occurrences
referenced by the icon property.

In `@eslint.config.mjs`:
- Around line 111-116: The ESLint rule "react/jsx-filename-extension" currently
allows extensions ["ts", "tsx"], which permits JSX in plain .ts files; update
the rule in eslint.config.mjs (react/jsx-filename-extension) to only include
"tsx" so ESLint will warn for JSX in non-TSX files (or alternatively add a
comment explaining that allowing "ts" is intentional if you want JSX in .ts
files). Ensure the change modifies the extensions array for the
react/jsx-filename-extension rule to remove "ts" and keep "tsx" only.
- Line 53: Replace the deprecated ESLint rule "no-return-await" with the
TypeScript-aware rule "@typescript-eslint/return-await": remove or stop using
"no-return-await" and add "@typescript-eslint/return-await": "error" (or same
severity) in the config so the parser `@typescript-eslint/parser` handles
return-await semantics; ensure only the new rule name is present and there are
no conflicting entries for "no-return-await".

In `@next.config.ts`:
- Line 4: Remove the leftover template comment "/* config options here */" from
next.config.ts; locate the comment near the exported config where reactCompiler
is defined and delete that placeholder line so only the real configuration
(including reactCompiler) remains.

In `@package.json`:
- Around line 28-43: The package version pinning for tailwind is inconsistent:
update either "tailwindcss" or "@tailwindcss/postcss" so both use the same range
to avoid mismatches; for example change "tailwindcss": "4.2.0" to "tailwindcss":
"^4.2.0" or change "@tailwindcss/postcss": "^4" to "@tailwindcss/postcss":
"4.2.0" (make the choice consistent across the two package entries).

In `@styles/globals.css`:
- Line 10: Stylelint is flagging the Tailwind v4 at-rule `@theme` as unknown due
to the SCSS rule `scss/at-rule-no-unknown`; update the Stylelint config to add
`"theme"` (and `"source"` if needed) to the `ignoreAtRules` array for
`scss/at-rule-no-unknown` so the linter accepts Tailwind directives like
`@theme`; modify the rule entry (`scss/at-rule-no-unknown`) in your Stylelint
configuration to include the ignoreAtRules option with the necessary at-rule
names.

In `@tsconfig.json`:
- Around line 14-22: Remove the redundant "isolatedModules": true setting from
tsconfig since "verbatimModuleSyntax": true already enforces the same
constraints; update the tsconfig.json by deleting the isolatedModules entry so
only "verbatimModuleSyntax": true (and related flags like "erasableSyntaxOnly")
remain to avoid duplicate configuration.

In `@wrangler.jsonc`:
- Around line 1-8: Remove the duplicated JSDoc header block that repeats "For
more details on how to configure Wrangler, refer to:
https://developers.cloudflare.com/workers/wrangler/configuration/" so only one
instance remains at the top of wrangler.jsonc; locate the two identical comment
blocks and delete one of them to eliminate the redundancy.

@dandedotdev dandedotdev merged commit b40e654 into main Feb 19, 2026
3 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant