{"id":11733,"date":"2026-10-07T08:57:10","date_gmt":"2026-10-06T23:57:10","guid":{"rendered":"https:\/\/www.freelifemakers.org\/wordpress\/?p=11733"},"modified":"2026-10-07T13:39:07","modified_gmt":"2026-10-07T04:39:07","slug":"nextjs-sns-server-48","status":"publish","type":"post","link":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/2026\/10\/07\/nextjs-sns-server-48\/","title":{"rendered":"[nextjs]SNS Server-48(myapp58)\u00a0"},"content":{"rendered":"\n<p>\ud83d\udc49\ud83c\udffb myapp58 \uc740 nextjs\uc11c\ubc84 \uc2e4\ud589\uc2dc(nextjs16) \ubc1c\uc0dd\ud558\ub294 tailwind \uc624\ub958\uc640 \uc561\ud2f0\ube0c \ud14c\ub9c8 \ub514\ub809\ud1a0\ub9ac\ub098 \ud30c\uc77c\uc774\ub984 \ubcc0\uacbd\uc2dc \uc5d0\ub7ec\ub85c\uadf8 \ubc1c\uc0dd \ubd80\ubd84\uc758 \ubc84\uadf8\ub97c \uc218\uc815\ud569\ub2c8\ub2e4.<br>myapp58 fixes bugs related to Tailwind errors occurring when running the Next.js server(Nextjs16) and error logs generated when changing the active theme directory or file names.<\/p>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \uc804\uccb4 \ucf54\ub4dc\ub294 \uae43\ud5c8\ube0c\uc5d0\uc11c \ud655\uc778 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br>You can find the full code on GitHub.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/gideonslife01\/flm-nextjs\">https:\/\/github.com\/gideonslife01\/flm-nextjs<\/a><\/p>\n\n\n\n<p>\ud83d\udcc1 \uc804\uccb4 \ud504\ub85c\uc81d\ud2b8 \uad6c\uc870 \/ Overall Project Structure<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:14px\"><code>myapp project\/  \n\u251c\u2500\u2500 app\/  (Next.js App Router)\n\u2502   \u251c\u2500\u2500 .well-known\/webfinger\/route.ts  -&gt; webfinger\n\u2502   \u251c\u2500\u2500 api\/follow\/route.ts    -&gt; Follow API(temporary)\n\u2502   \u251c\u2500\u2500 api\/announce\/route.ts  -&gt; Boost(Announcement)\n\u2502   \u251c\u2500\u2500 api\/like\/route.ts.     -&gt; Like API\n\u2502   \u251c\u2500\u2500 api\/posts\/route.ts     -&gt; Writing API(deprecated)\n\u2502   \u251c\u2500\u2500 api\/timeline\/route.ts  -&gt; Timeline API\n\u2502   \u251c\u2500\u2500 api\/followinglist\/route.ts  -&gt; followinglist API\n\u2502   \u251c\u2500\u2500 api\/followerslist\/route.ts  -&gt; followerslist API\n\u2502   \u251c\u2500\u2500 <span style=\"background-color: initial; font-size: inherit; text-align: initial; color: initial;\">api\/v1\/instance<\/span>\/route.ts -&gt; auth\n\u2502   \u251c\u2500\u2500 api\/v1\/apps\/route.ts.    -&gt; auth\n\u2502   \u251c\u2500\u2500 api\/v1\/accounts\/verify_credentials\/route.ts -&gt; auth\n\u2502   \u251c\u2500\u2500 api\/v1\/statuses\/route.ts -&gt; Write Post\n\u2502   \u251c\u2500\u2500 <span style=\"background-color: initial; font-size: inherit; text-align: initial; color: initial;\">api\/v1\/timelines\/home\/route.ts<\/span> -&gt; timeline\n\u2502   \u251c\u2500\u2500 api\/v1\/media\/route.ts -&gt; Image upload\n\u2502   \u251c\u2500\u2500 api\/v1\/media\/&#91;id]\/route.ts  -&gt; Image Delete \n\u2502   \u251c\u2500\u2500 api\/v1\/instance\/rules\/route.ts -&gt; Feature not implemented.\n\u2502   \u251c\u2500\u2500 api\/v1\/instance\/domain_blocks\/route.ts -&gt; Feature not implemented.\n\u2502   \u251c\u2500\u2500 api\/v1\/filters\/route.ts -&gt; Feature not implemented.\n\u2502   \u251c\u2500\u2500 api\/v1\/lists\/route.ts -&gt; Feature not implemented.\n\u2502   \u251c\u2500\u2500 api\/v1\/announcements\/route.ts -&gt; Feature not implemented.\n\u2502   \u251c\u2500\u2500 api\/v1\/timelines\/public\/route.ts -&gt; Feature not implemented.\n\u2502   \u251c\u2500\u2500 <strong>api\/v1\/statuses\/&#91;id]\/context\/route.ts -&gt; Post Check,Delete<\/strong>\n\u2502   \u251c\u2500\u2500 <span style=\"background-color: initial; font-size: inherit; text-align: initial; color: initial;\">oauth\/authorize\/route.ts<\/span> -&gt; auth\n\u2502   \u251c\u2500\u2500 <span style=\"background-color: initial; font-size: inherit; text-align: initial; color: initial;\">oauth\/token\/route.ts<\/span> -&gt; auth\n\u2502   \u251c\u2500\u2500 <span style=\"background-color: initial; font-size: inherit; text-align: initial; color: initial;\">oauth\/login-and-authorize\/route.ts<\/span> -&gt; Tursky,Pinafore login processing\n\u2502   \u251c\u2500\u2500 oauth\/revoke\/route.ts -&gt; Feature not implemented.\n\u2502   \u251c\u2500\u2500 <span style=\"background-color: initial; font-size: inherit; text-align: initial; color: initial;\">api\/v1\/search\/home\/route.ts<\/span> -&gt; search\n\u2502   \u251c\u2500\u2500 <span style=\"background-color: initial; font-size: inherit; text-align: initial; color: initial;\">api\/v2\/search\/home\/route.ts<\/span> -&gt; search\n\u2502   \u251c\u2500\u2500 api\/v2\/notifications\/policy\/route.ts-&gt; Feature not implemented.\n\u2502   \u251c\u2500\u2500 api\/v1\/accounts\/&#91;id]\/followers\/route.ts -&gt; followers\n\u2502   \u251c\u2500\u2500 api\/v1\/accounts\/&#91;id]\/following\/route.ts -&gt; following\n\u2502   \u251c\u2500\u2500 api\/v1\/statuses\/&#91;id]\/route.ts -&gt; -&gt; Post delete(pinafore)\n\u2502   \u251c\u2500\u2500 api\/auth\/signup\/route.ts        -&gt; Website Signup\n\u2502   \u251c\u2500\u2500 api\/auth\/login\/route.ts         -&gt; Website Login\n\u2502   \u251c\u2500\u2500<strong> <\/strong>api\/auth\/logout\/route.ts        -&gt; Website Logout\n\u2502   \u251c\u2500\u2500<strong> <\/strong>api\/auth\/refresh\/route.ts       -&gt; Refresh Token\n\u2502   \u251c\u2500\u2500<strong> <\/strong>api\/cleanup-orphan\/route.ts     -&gt; post,outbox clean up\n\u2502   \u251c\u2500\u2500<strong> <\/strong>api\/auth\/me\/route.tsx           -&gt; Login Check<strong>\n<\/strong>\u2502   \u251c\u2500\u2500 auth\/signup\/page.tsx            -&gt; Signup UI\n\u2502   \u251c\u2500\u2500 auth\/signup\/page.tsx            -&gt; Login UI        \n\u2502   \u251c\u2500\u2500 users\/&#91;username]\/\n\u2502   \u2502   \u251c\u2500\u2500 statuses\/&#91;id]\/route.ts -&gt; Indivisual Post\n\u2502   \u2502   \u251c\u2500\u2500 route.ts               -&gt; Acotr Information\n\u2502   \u2502   \u251c\u2500\u2500 followers\/route.ts     -&gt; Followers List\n\u2502   \u2502   \u251c\u2500\u2500 following\/route.ts     -&gt; Following List\n\u2502   \u2502   \u251c\u2500\u2500 inbox\/route.ts         -&gt; Inbox\n\u2502   \u2502   \u2514\u2500\u2500 outbox\/route.ts        -&gt; outbox\n\u2502   \u251c\u2500\u2500 usersui\/&#91;username]\/\n\u2502   \u2502   \u251c\u2500\u2500 page.tsx               -&gt; Timeline UI(Server, 404)\n\u2502   \u2502   \u251c\u2500\u2500 ClientPage.tsx.        -&gt; Timeline UI(Client,Call Active Themes)\n\u2502   \u2502   \u2514\u2500\u2500 _components\/themes\/\n\u2502   \u2502       \u251c\u2500\u2500 themeex\/ThemeexTheme.tsx   -&gt; Example Theme\n\u2502   \u2502       \u251c\u2500\u2500 pinafore\/PinaforeTheme.tsx -&gt; Theme 1\n\u2502   \u2502       \u251c\u2500\u2500 pinafore\/FollowersList.tsx -&gt; Theme 1, FollowersList\n\u2502   \u2502       \u251c\u2500\u2500 pinafore\/FollowingList.tsx -&gt; Theme 1, FollowingList\n\u2502   \u2502       \u251c\u2500\u2500 pinafore\/NotificationsList.tsx -&gt; Theme 1, NotificationsList\n\u2502   \u2502       \u251c\u2500\u2500 pinafore\/TimelineList.tsx  -&gt; Theme 1, TimelineList\n\u2502   \u2502       \u251c\u2500\u2500 mastodon\/MastodonTheme.tsx -&gt; Theme 2\n\u2502   \u2502       \u2514\u2500\u2500 minimal\/MinimaltTheme.tsx  -&gt; Theme 3\n\u2502   \u251c\u2500\u2500 layout.tsx, page.tsx, globals.css\n\u2502   \u2514\u2500\u2500 favicon.ico\n\u251c\u2500\u2500 lib\/\n\u2502   \u251c\u2500\u2500 theme.tsx              -&gt; Theme Provider\n\u2502   \u251c\u2500\u2500 watchThemes.ts         -&gt; Check real-time theme changes\n\u2502   \u251c\u2500\u2500 auth.ts                -&gt; Authentication, User Management\n\u2502   \u251c\u2500\u2500 ap.ts                  -&gt; Follow,Undo,Create,Likes,Announce\n\u2502   \u251c\u2500\u2500 visibility.ts          -&gt; Visibility(Public,Unlisted,Private,Direct)\n\u2502   \u2514\u2500\u2500 db.ts                  -&gt; DB connection\n\u251c\u2500\u2500 data\/\n\u2502   \u251c\u2500\u2500 keys\/userIDs\/          -&gt; private.pem, public.pem(New)\n\u2502   \u2514\u2500\u2500 keys\/                  -&gt; private.pem, public.pem(legacy)\n\u251c\u2500\u2500 data.sqlite                -&gt; Database(1\/3)\n\u251c\u2500\u2500 data.sqlite-wal            -&gt; Database(2\/3)\n\u251c\u2500\u2500 data.sqlite-shm            -&gt; Database(3\/3)\n\u251c\u2500\u2500 Caddyfile                  -&gt; https \n\u251c\u2500\u2500 instrumentation.ts         -&gt; Background Server\n\u251c\u2500\u2500 <strong>proxy.ts                   -&gt; middleware.ts - &gt;proxy.ts(for Nextjs16)<\/strong>\n\u251c\u2500\u2500 <strong>postcss.config.mjs         -&gt; for Nextjs16<\/strong>\n\u2514\u2500\u2500 package.json<\/code><\/pre>\n\n\n\n<p>\ud83d\udcc1 \ud504\ub85c\uc81d\ud2b8 \uc2dc\uc791 \/ Project Start<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-freelifemakers-org wp-block-embed-freelifemakers-org\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"ZyoJQOOjJf\"><a href=\"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/2026\/09\/03\/nextjs-project-summary\/\">[nextjs]\ud504\ub85c\uc81d\ud2b8\uc694\uc57d\/project summary(myapp30+)<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;[nextjs]\ud504\ub85c\uc81d\ud2b8\uc694\uc57d\/project summary(myapp30+)&#8221; &#8212; freelifemakers.org\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/2026\/09\/03\/nextjs-project-summary\/embed\/#?secret=LI6C2F8PgH#?secret=ZyoJQOOjJf\" data-secret=\"ZyoJQOOjJf\" width=\"560\" height=\"315\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\ud83d\udcc1 Nextj16 middleware.ts -&gt; proxy.ts<\/p>\n\n\n\n<p>\u2714\ufe0f \uc544\ub798\uc640 \uac19\uc740 \uacbd\uace0 \ubb38\uad6c\uac00 \ub098\uc624\uba74 \uae30\uc874\uc758 middleware.ts\ud30c\uc77c\uc744 proxy.ts\ud30c\uc77c\ub85c \uc774\ub984\uc744 \ubc14\uafc9\ub2c8\ub2e4.<br>If a warning message like the one below appears, rename the existing <code>middleware.ts<\/code> file to <code>proxy.ts<\/code>.<\/p>\n\n\n\n<p>&#8212;  next.js16 middleware \uacbd\uace0 \/ Next.js 16 middleware warning<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:14px\"><code>\u25b2 Next.js 16.4.0 (Turbopack)\n- Local:         http:\/\/localhost:3000\n- Network:       http:\/\/192.168.0.10:3000\n- Environments: .env.local\n\u2713 Ready in 172ms\n\u2713 Running next.config.ts took 14ms\n<strong>\u26a0\ufe0f The \"middleware\" file convention is deprecated. Please use \"proxy\" instead.\n\n  To migrate automatically, run:\n  npx @next\/codemod@canary middleware-to-proxy .<\/strong>\n\n  Learn more: https:\/\/nextjs.org\/docs\/messages\/middleware-to-proxy\n\u2705 themes: &#91; 'mastodon', 'minimal', 'pinafore', 'themeex' ]\n\ud83d\udc40 Theme watcher started in background<\/code><\/pre>\n\n\n\n<p> &#8212; \ucf54\ub4dc \uc218\uc815 \/ Code Modification<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:14px\"><code># middleware.ts\ud30c\uc77c\uc744 proxy.ts\ub85c \uc774\ub984\uc744 \ubc14\uafb8\uace0 \ucf54\ub4dc\ub97c \uc544\ub798\ucc98\ub7fc \uc218\uc815\n# Rename the `middleware.ts` file to `proxy.ts` and modify the code as shown below.\n\n\/\/export function middleware(req: NextRequest) {\n\n\/\/ \u2705 myapp58\nexport <strong>default<\/strong> function <strong>proxy<\/strong>(req: NextRequest) { ... ...}<\/code><\/pre>\n\n\n\n<p>\ud83d\udcc1 Tailwind error<\/p>\n\n\n\n<p>\u2714\ufe0f \uc544\ub798\uc640 \uac19\uc740 \uc624\ub958 \ubc1c\uc0dd\uc2dc \ud504\ub85c\uc81d\ud2b8 \ub8e8\ud2b8\uc5d0 postcss.config.mjs \ud30c\uc77c\uc744 \ub9cc\ub4e4\uace0 \ucf54\ub4dc\ub97c \uc785\ub825\ud569\ub2c8\ub2e4.<br>If an error like the one below occurs, create a <code>postcss.config.mjs<\/code> file in the project root and enter the code.<\/p>\n\n\n\n<p>&#8212; Error<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:14px\"><code>Unknown at rule: @theme\n\nGenerated code of PostCSS transform of file content of app\/globals.css:\n.\/app\/globals.css:8:7\n   6 | }\n   7 |\n&gt;  8 | @theme inline {\n     |       ^\n   9 |   --color-background: var(--background);\n  10 |   --color-foreground: var(--foreground);\n  11 |   --font-sans: var(--font-geist-sans);\n\nImport trace:\n  Client Component Browser:\n    .\/app\/globals.css &#91;Client Component Browser]\n    .\/app\/layout.tsx &#91;Server Component]<\/code><\/pre>\n\n\n\n<p>&#8212; \ucf54\ub4dc \/ Code<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:14px\"><code># postcss.config.mjs\nconst config = {\n  plugins: {\n    \"@tailwindcss\/postcss\": {},\n  },\n};\n\nexport default config;\n<\/code><\/pre>\n\n\n\n<p>&#8212; \ubaa8\ub4c8 \uc124\uce58 \/ module install<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install -D @tailwindcss\/postcss\n# or\nnpm install -D tailwindcss @tailwindcss\/postcss<\/code><\/pre>\n\n\n\n<p>\u2714\ufe0f \uacf5\uc2dd \ubb38\uc11c \/ Official Documentation (Tailwindcss for nextjs)<\/p>\n\n\n\n<p><a href=\"https:\/\/tailwindcss.com\/docs\/installation\/framework-guides\/nextjs\">https:\/\/tailwindcss.com\/docs\/installation\/framework-guides\/nextjs<\/a><br><a href=\"https:\/\/www.npmjs.com\/package\/@tailwindcss\/postcss\">https:\/\/www.npmjs.com\/package\/@tailwindcss\/postcss<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\ud83d\udcc1 \ud14c\ub9c8 \ub514\ub809\ud1a0\ub9ac\ub098 \ud30c\uc77c\uc774\ub984 \ubcc0\uacbd\uc2dc \uc11c\ubc84\ub85c\uadf8\uc5d0  \uc5d0\ub7ec \ub85c\uadf8 \ucd9c\ub825 \uc624\ub958 \uc218\uc815<br>Fixed an issue where error logs were generated in the server logs when renaming theme directories or filenames.<\/p>\n\n\n\n<p>\u2714\ufe0f \uc624\ub958 \/ Error<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2a2f .\/app\/usersui\/&#91;username]\/_components\/themes\/index.ts:4:1\nError: Module not found: Can't resolve '.\/themeex\/PinaforeTheme'<\/code><\/pre>\n\n\n\n<p>\u2714\ufe0f lib\/watchThemes.ts<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:14px\"><code>      for (const folderName of folders) {\n        const folderPath = path.join(themesDir, folderName);\n        try { \n... ...\n          \/\/ \u2705 myapp58 \n          \/\/ -  pinafore\ub294 _Fallback \n          if (folderName === 'pinafore') {\n            registryLines += ` pinafore: { component: _Fallback, label: 'pinafore' },\\n`;\n          } else {\n            \/\/ \u2705 \uc815\uc801 import \uc548\ud568, require\ub97c try\/catch + eval\ub85c \uac10\uc2f8\uc11c \ubc88\ub4e4\ub7ec\uac00 \ud30c\uc77c \uc5c6\uc5b4\ub3c4 \uc5d0\ub7ec \uc548 \ub0b4\uac8c\n            registryLines += ` ${folderName}: { component: _load('.\/${folderName}\/${fileBase}', '${exported}'), label: '${folderName}' },\\n`;\n          }\n        } catch { continue; } \/\/ \ud3f4\ub354 \uc77d\uae30 \uc2e4\ud328\ud558\uba74 \uc2a4\ud0b5 \/ Skip if folder reading fails\n      }\n\n      \/\/ \u2705 myapp58 - write code to index.ts themeName.ts files\n      \/\/ \ub514\ub809\ud1a0\ub9ac\ub098 \ud30c\uc77c \uc778\uc2dd \ubabb\ud558\uba74 Pinafore\ud14c\ub9c8\ub85c \ub300\uccb4 \/ If directories or files are not recognized, replace with the Pinafore theme.\n      const indexContent = `import { PinaforeTheme as _Fallback } from '.\/pinafore\/PinaforeTheme';\n\nfunction _load(path: string, exportName: string) {\n  try {\n    const mod = eval('require')(path);\n    return mod&#91;exportName] || mod.default || _Fallback;\n  } catch {\n    return _Fallback;\n  }\n}\n\nexport const themeRegistry = {\n${registryLines}} as const;\nexport type ThemeName = keyof typeof themeRegistry;\nexport function getThemeComponent(name: ThemeName) {\n  return themeRegistry&#91;name]?.component?? _Fallback;\n}\n`;\n      const namesContent = `export const themeNames = ${JSON.stringify(validFolders)} as const;\nexport type ThemeName = typeof themeNames&#91;number];\n`;<\/code><\/pre>\n\n\n\n<p>\u2714\ufe0f app\/usersui\/[username]\/_components\/themes\/index.ts &#8211; \uc790\ub3d9\uc0dd\uc131 \ud30c\uc77c \/ Automatically generated file<\/p>\n\n\n\n<p>&#8212; index.ts\ud30c\uc77c\uc740 \uc544\ub798\uc640 \uac19\uc740 \ud615\uc2dd\uc73c\ub85c\uc0dd\uc131 \ub429\ub2c8\ub2e4.<br>The index.ts file is generated in the following format.<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:14px\"><code>import { PinaforeTheme as _Fallback } from '.\/pinafore\/PinaforeTheme';\n\nfunction _load(path: string, exportName: string) {\n  try {\n    \n    const mod = eval('require')(path);\n    return mod&#91;exportName] || mod.default || _Fallback;\n  } catch {\n    return _Fallback;\n  }\n}\n\nexport const themeRegistry = {\n mastodon: { component: _load('.\/mastodon\/MastodonTheme', 'MastodonTheme'), label: 'mastodon' },\n minimal: { component: _load('.\/minimal\/MinimalTheme', 'MinimalTheme'), label: 'minimal' },\n pinafore: { component: _Fallback, label: 'pinafore' },\n themeex: { component: _load('.\/themeex\/Themetheme', 'Theme'), label: 'themeex' },\n} as const;\nexport type ThemeName = keyof typeof themeRegistry;\nexport function getThemeComponent(name: ThemeName) {\n  return themeRegistry&#91;name]?.component?? _Fallback;\n}\n<\/code><\/pre>\n\n\n\n<p>\ud83d\udcc1 \ud14c\uc2a4\ud2b8 \/ Test<\/p>\n\n\n\n<p>\u2714\ufe0f Tailwind<\/p>\n\n\n\n<p>&#8212; \uc11c\ubc84\uc2dc\uc791\uc2dc \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<br>No errors occur when starting the server.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"478\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-nextjs16-serverlog.jpg\" alt=\"\" class=\"wp-image-11806\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-nextjs16-serverlog.jpg 800w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-nextjs16-serverlog-300x179.jpg 300w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-nextjs16-serverlog-768x459.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-nextjs16-serverlog-400x239.jpg 400w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">Server Log<\/figcaption><\/figure>\n\n\n\n<p>\u2714\ufe0f \uc5d1\ud2f0\ube0c \ud14c\ub9c8 \/ Active Theme<\/p>\n\n\n\n<p>&#8212; \ud14c\ub9c8 \ub514\ub809\ud1a0\ub9ac\ub098 \ud30c\uc77c\uc774 \ucd94\uac00 \uc0ad\uc81c \ubcc0\uacbd\uc2dc  \uc11c\ubc84 \uc624\ub958 \ub85c\uadf8\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. <br>No server error logs are generated when theme directories or files are added, deleted, or modified.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"479\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-thme-directoryname-change-jpg.jpg\" alt=\"\" class=\"wp-image-11808\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-thme-directoryname-change-jpg.jpg 800w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-thme-directoryname-change-jpg-300x180.jpg 300w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-thme-directoryname-change-jpg-768x460.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-thme-directoryname-change-jpg-400x240.jpg 400w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">Server Log<\/figcaption><\/figure>\n\n\n\n<p>&#8212; \ud14c\ub9c8 \ub9ac\uc2a4\ud2b8 \ubcc0\uacbd \ud655\uc778 \/ Check theme list changes<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"677\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-theme-error-jpg.jpg\" alt=\"\" class=\"wp-image-11809\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-theme-error-jpg.jpg 800w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-theme-error-jpg-300x254.jpg 300w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-theme-error-jpg-768x650.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/10\/myapp58-theme-error-jpg-400x339.jpg 400w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">Theme<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\ub9c8\ud0dc\ubcf5\uc74c 21\uc7a5 22\uc808 \/ Matthew 21: 22<\/p>\n\n\n\n<p>&#8220;\ub108\ud76c\uac00 \uae30\ub3c4\ud560 \ub54c\uc5d0 \ubb34\uc5c7\uc774\ub4e0\uc9c0 \ubbff\uace0 \uad6c\ud558\ub294 \uac83\uc740 \ub2e4 \ubc1b\uc73c\ub9ac\ub77c \ud558\uc2dc\ub2c8\ub77c&#8221;<\/p>\n\n\n\n<p>&#8220;And everything you ask in prayer, believing, you will receive.&#8221;<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udc49\ud83c\udffb myapp58 \uc740 nextjs\uc11c\ubc84 \uc2e4\ud589\uc2dc(nextjs16) \ubc1c\uc0dd\ud558\ub294 tailwind \uc624\ub958\uc640 \uc561\ud2f0\ube0c \ud14c\ub9c8 \ub514\ub809\ud1a0\ub9ac\ub098 \ud30c\uc77c\uc774\ub984 \ubcc0\uacbd\uc2dc \uc5d0\ub7ec\ub85c\uadf8 \ubc1c\uc0dd \ubd80\ubd84\uc758 \ubc84\uadf8\ub97c \uc218\uc815\ud569\ub2c8\ub2e4.myapp58 fixes bugs related to Tailwind errors occurring when running the Next.js server(Nextjs16) and error logs generated when changing the active theme directory or file names. \ud83d\udc49\ud83c\udffb \uc804\uccb4 \ucf54\ub4dc\ub294 \uae43\ud5c8\ube0c\uc5d0\uc11c \ud655\uc778 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.You can find the full [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11809,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,27,1,7],"tags":[],"class_list":["post-11733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","category-nextjs","category-uncategorized","category-website","has-thumbnail"],"_links":{"self":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/11733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=11733"}],"version-history":[{"count":56,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/11733\/revisions"}],"predecessor-version":[{"id":11811,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/11733\/revisions\/11811"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/media\/11809"}],"wp:attachment":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=11733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=11733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=11733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}