Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 0 additions & 35 deletions .dockerignore

This file was deleted.

6 changes: 6 additions & 0 deletions .idea/copilot.data.migration.ask.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/copilot.data.migration.ask2agent.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 40 additions & 22 deletions biome.json
Original file line number Diff line number Diff line change
@@ -1,24 +1,42 @@
{
"$schema": "https://biomejs.dev/schemas/1.5.1/schema.json",
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true
},
"ignore": [".next/", "out/", ".wrangler/", ".open-next/"]
},
"formatter": {
"enabled": true,
"indentWidth": 4,
"indentStyle": "tab",
"ignore": [".next/", "out/", ".wrangler/", ".open-next/"],
},
"javascript": {
"formatter": {
"bracketSpacing": true
}
}
"$schema": "https://biomejs.dev/schemas/2.2.0/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": true,
"includes": ["**", "!node_modules", "!.next", "!dist", "!build"]
},
Comment on lines +8 to +11
Copy link

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

Verify files.includes negation support

Confirm Biome v2.2 supports negation with ! in files.includes. If not, switch to files.ignore for .next, dist, build, and node_modules.


🌐 Web query:

Does Biome 2.2 support "!" negation in files.includes? What’s the recommended way to exclude .next, dist, build, and node_modules in biome.json?

💡 Result:

Short answer: Yes — Biome supports negated patterns starting with "!" in files.includes (but you must precede them with a "**" include). For generated/output folders prefer the force-ignore "!!" syntax so they are completely excluded from indexing. Node modules are ignored by default. [1][2][3]

Recommended biome.json snippet (concise):

{
"files": {
"includes": [
"",
"!
/.next",
"!!/dist",
"!!
/build",
"!**/node_modules"
]
}
}

Notes:

  • The leading "**" is required before negations in files.includes. [1][2]
  • Use "!!" for dist/build to prevent indexing (recommended for output folders). [2][3]
  • node_modules is ignored by Biome regardless of files.includes, but you can still add an explicit "!**/node_modules" for clarity. [1]

Update files.includes patterns to use proper glob syntax and force-ignore for build outputs

The negation patterns lack the required path prefix. Update to:

"includes": ["**", "!**/node_modules", "!**/.next", "!!**/dist", "!!**/build"]

Use !! (force-ignore) for dist and build to prevent indexing of generated output folders. Add **/ before each negation pattern for correct glob matching.

🤖 Prompt for AI Agents
In biome.json around lines 8 to 11, the glob negation patterns under
"files.includes" are incorrect and should include path prefixes and force-ignore
for build outputs; update the array so each negation uses the "**/" prefix
(e.g., "!**/node_modules", "!**/.next") and use double-negation force-ignore for
generated folders ("!!**/dist", "!!**/build") to ensure proper glob matching and
prevent indexing of generated output.

"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2
},
"css": {
"parser": {
"tailwindDirectives": true
}
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"suspicious": {
"noUnknownAtRules": "off"
}
},
"domains": {
"next": "recommended",
"react": "recommended"
}
},
"assist": {
"actions": {
"source": {
"organizeImports": "on"
}
}
}
}
1,124 changes: 1,124 additions & 0 deletions bun.lock

Large diffs are not rendered by default.

Binary file removed bun.lockb
Binary file not shown.
2 changes: 0 additions & 2 deletions bunfig.toml

This file was deleted.

22 changes: 22 additions & 0 deletions components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "tailwind.config.ts",
"css": "src/app/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "lucide",
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"registries": {}
}
Comment on lines 1 to 25
Copy link

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

Verify that referenced paths exist and align with project structure.

The ShadCN UI configuration references specific Tailwind and CSS paths, as well as module aliases. These should be verified to ensure they exist and are correctly configured in the TypeScript/Next.js setup.


🏁 Script executed:

#!/bin/bash
# Description: Verify that ShadCN configuration paths exist and aliases are correctly defined.

# Check if referenced Tailwind config exists
echo "=== Checking tailwind.config.ts ==="
if [ -f "tailwind.config.ts" ]; then
  echo "✓ tailwind.config.ts exists"
  head -20 tailwind.config.ts
else
  echo "✗ tailwind.config.ts not found"
fi

# Check if referenced CSS file exists
echo ""
echo "=== Checking src/app/globals.css ==="
if [ -f "src/app/globals.css" ]; then
  echo "✓ src/app/globals.css exists"
else
  echo "✗ src/app/globals.css not found"
fi

# Check if alias directories exist
echo ""
echo "=== Checking alias directories ==="
for dir in "src/components" "src/lib" "src/components/ui" "src/hooks"; do
  if [ -d "$dir" ]; then
    echo "$dir exists"
  else
    echo "$dir not found"
  fi
done

# Check TypeScript config for path aliases
echo ""
echo "=== Checking tsconfig.json for path aliases ==="
if [ -f "tsconfig.json" ]; then
  echo "✓ tsconfig.json exists"
  jq '.compilerOptions.paths' tsconfig.json 2>/dev/null || grep -A 20 '"paths"' tsconfig.json
else
  echo "✗ tsconfig.json not found"
fi

Length of output: 926


Create the src/hooks directory or remove the hooks alias from components.json.

The ShadCN configuration defines a hooks alias ("hooks": "@/hooks") that maps to src/hooks, but this directory does not exist. This will cause import failures at runtime if the alias is referenced in the codebase. Either create the directory to match the configuration or remove the alias definition if hooks are not needed.

🤖 Prompt for AI Agents
In components.json around lines 1 to 22, the "hooks": "@/hooks" alias points to
a non-existent src/hooks directory which will break imports; either create the
src/hooks directory (add an index file or relevant hook files so the alias
resolves) or remove the "hooks" alias from components.json, and if you choose
removal, also update any import paths that reference "@/hooks" and ensure
tsconfig/paths (or other alias configs) remain consistent.

4 changes: 3 additions & 1 deletion next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import createNextIntlPlugin from "next-intl/plugin";

const withNextIntl = createNextIntlPlugin();

const nextConfig = {};
const nextConfig = {
output: "export",
};

export default withNextIntl(nextConfig);
8 changes: 0 additions & 8 deletions open-next.config.ts

This file was deleted.

107 changes: 55 additions & 52 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,54 +1,57 @@
{
"name": "mikn-dev",
"version": "0.1.0",
"private": true,
"scripts": {
"build": "next build",
"dev": "NODE_OPTIONS='--inspect' next dev --turbo",
"format": "biome format --write .",
"lint": "next lint",
"start": "next start",
"preview": "opennextjs-cloudflare build && opennextjs-cloudflare preview",
"deploy": "opennextjs-cloudflare build && opennextjs-cloudflare deploy",
"upload": "opennextjs-cloudflare build && opennextjs-cloudflare upload",
"cf-typegen": "wrangler types --env-interface CloudflareEnv cloudflare-env.d.ts"
},
"dependencies": {
"@opennextjs/cloudflare": "^1.0.4",
"@pixiv/three-vrm": "^3.3.4",
"@pixiv/three-vrm-animation": "^3.3.4",
"@react-three/fiber": "^9.1.2",
"@swetrix/nextjs": "^1.0.1",
"@tailwindcss/postcss": "^4.1.7",
"@types/three": "^0.176.0",
"caniuse-lite": "^1.0.30001664",
"clsx": "^2.1.1",
"daisyui": "^5.0.0",
"motion": "^11.15.0",
"next": "^15.3.2",
"next-intl": "^4.1.0",
"next-themes": "^0.4.4",
"postcss": "^8.5.3",
"react": "^19.1.0",
"react-cookie-consent": "^9.0.0",
"react-dom": "^19.1.0",
"react-icons": "^5.2.1",
"react-use": "^17.6.0",
"sharp": "^0.33.5",
"shiki": "^1.24.4",
"sonner": "^1.7.1",
"tailwind-merge": "^2.6.0",
"tailwind-variants": "^0.3.0",
"three": "^0.176.0"
},
"devDependencies": {
"@biomejs/biome": "^1.5.1",
"@opennextjs/aws": "^3.6.4",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"tailwindcss": "^4.1.7",
"typescript": "^5",
"wrangler": "^4.16.1"
}
"name": "mikn-dev",
"version": "0.1.0",
"private": true,
"scripts": {
"build": "next build",
"dev": "NODE_OPTIONS='--inspect' next dev --turbo",
"format": "biome format --write .",
"lint": "next lint",
"start": "next start",
"preview": "opennextjs-cloudflare build && opennextjs-cloudflare preview",
"deploy": "opennextjs-cloudflare build && opennextjs-cloudflare deploy",
"upload": "opennextjs-cloudflare build && opennextjs-cloudflare upload",
"cf-typegen": "wrangler types --env-interface CloudflareEnv cloudflare-env.d.ts"
},
"dependencies": {
"@c15t/nextjs": "^1.7.1",
"@c15t/scripts": "^1.0.0",
"@pixiv/three-vrm": "^3.3.4",
"@pixiv/three-vrm-animation": "^3.3.4",
"@radix-ui/react-slot": "^1.2.3",
"@react-three/fiber": "^9.1.2",
"@swetrix/nextjs": "^1.0.1",
"@tailwindcss/postcss": "^4.1.7",
"@types/three": "^0.176.0",
"caniuse-lite": "^1.0.30001664",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"daisyui": "^5.0.0",
"lucide-react": "^0.548.0",
"motion": "^11.15.0",
"next": "^16.0.0",
"next-intl": "^4.4.0",
"next-themes": "^0.4.4",
"postcss": "^8.5.3",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"react-icons": "^5.2.1",
"react-use": "^17.6.0",
"sharp": "^0.33.5",
"shiki": "^1.24.4",
"sonner": "^1.7.1",
"tailwind-merge": "^3.3.1",
"tailwind-variants": "^0.3.0",
"tailwindcss-animate": "^1.0.7",
"three": "^0.176.0",
"tw-animate-css": "^1.4.0"
},
"devDependencies": {
"@biomejs/biome": "^2.3.1",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Update React DOM types to match React DOM 19.

The project uses react-dom 19.2.0 (line 38) but @types/react-dom ^18. This mismatch can cause type errors with React 19 DOM APIs.

Apply this diff:

-    "@types/react-dom": "^18",
+    "@types/react-dom": "^19",

Then regenerate your lockfile and run the typechecker to verify compatibility.

📝 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
"@types/react-dom": "^18",
"@types/react-dom": "^19",
🤖 Prompt for AI Agents
In package.json around line 54, the devDependency "@types/react-dom": "^18"
conflicts with the project using "react-dom" 19.2.0; update the @types/react-dom
entry to a version that matches React 19 (e.g., "^19" or the appropriate 19.x
tag), then regenerate the lockfile (npm/yarn/pnpm install) and run the
TypeScript typechecker to verify compatibility and fix any type issues.

"tailwindcss": "^4.1.7",
"typescript": "^5"
}
}
6 changes: 3 additions & 3 deletions postcss.config.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const config = {
plugins: {
"@tailwindcss/postcss": {},
},
plugins: {
"@tailwindcss/postcss": {},
},
};
export default config;
4 changes: 2 additions & 2 deletions renovate.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"]
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"]
}
9 changes: 0 additions & 9 deletions src/app/[locale]/about/page.tsx

This file was deleted.

95 changes: 0 additions & 95 deletions src/app/[locale]/contact/page.tsx

This file was deleted.

Loading