create-next-mdx-blog-app 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +4 -1
  2. package/package.json +89 -87
package/README.md CHANGED
@@ -61,7 +61,7 @@ npx create-next-mdx-blog-app .
61
61
  ### Package Information
62
62
 
63
63
  - **Package Name**: `create-next-mdx-blog-app`
64
- - **Version**: `2.2.0`
64
+ - **Version**: `2.2.1`
65
65
  - **License**: MIT
66
66
  - **Homepage**: [https://www.npmjs.com/package/create-next-mdx-blog-app](https://www.npmjs.com/package/create-next-mdx-blog-app/)
67
67
 
@@ -222,6 +222,9 @@ The project includes an interactive AI-powered chatbot optimised for readers of
222
222
  ## ✨ AI Article Summarizer
223
223
  A **Generate TL;DR** button above every dynamic article streams a short Claude Haiku summary into a collapsible green panel. The slug is the only thing sent over the wire — `src/app/api/summarize/[slug]/route.ts` (edge) fetches the article server-side, applies an origin allow-list (`NEXT_PUBLIC_SITE_URL`) + per-IP rate limit (10/min) + 1-hour in-memory cache, then calls `streamText` and writes the final text to cache via `after()`. The client (`src/components/ArticleSummarizer.tsx`) uses `AbortController` to cancel in-flight requests on close/unmount. Model and prompt live in `src/utils/constants/AiSummaryConfig.ts`.
224
224
 
225
+ ## 👥 Author Profile Pages
226
+ A `/authors` index lists every distinct contributor pulled from the Supabase `Article` table, with per-author profile routes at `/authors/[slug]` showing their bio, avatar, and every article they've published.
227
+
225
228
  ## 📬 Newsletter Subscription
226
229
  The project ships with an integrated **newsletter signup form** powered by [Resend](https://resend.com). Visitors can subscribe from the home page or from the bottom of any article; new subscribers are added to a Resend **Audience** and immediately receive a welcome email.
227
230
 
package/package.json CHANGED
@@ -1,87 +1,89 @@
1
- {
2
- "name": "create-next-mdx-blog-app",
3
- "version": "2.2.0",
4
- "description": "A production-ready technical blog starter kit built with Next.js, MDX, Supabase, and TypeScript.",
5
- "author": {
6
- "name": "Abdullah Muhammad",
7
- "url": "https://github.com/CodingAbdullah"
8
- },
9
- "files": [
10
- "bin/"
11
- ],
12
- "bin": {
13
- "create-next-mdx-blog-app": "./bin/create.js"
14
- },
15
- "engines": {
16
- "node": ">=18.17.0"
17
- },
18
- "homepage": "https://next-mdx-blog-starter-sigma.vercel.app/",
19
- "repository": {
20
- "type": "git",
21
- "url": "git+https://github.com/CodingAbdullah/Next-MDX-Blog-Starter.git"
22
- },
23
- "keywords": [
24
- "aws",
25
- "docker",
26
- "javascript",
27
- "jsx",
28
- "mdx",
29
- "next",
30
- "react",
31
- "sql",
32
- "supabase",
33
- "typescript"
34
- ],
35
- "license": "MIT",
36
- "scripts": {
37
- "dev": "next dev",
38
- "build": "next build",
39
- "start": "next start",
40
- "lint": "next lint"
41
- },
42
- "dependencies": {
43
- "@inquirer/prompts": "^8.3.2",
44
- "degit": "^2.8.4",
45
- "execa": "^9.6.1"
46
- },
47
- "devDependencies": {
48
- "@ai-sdk/anthropic": "^3.0.64",
49
- "@ai-sdk/react": "^3.0.143",
50
- "@codesandbox/sandpack-react": "^2.20.0",
51
- "@eslint/eslintrc": "^3",
52
- "@mdx-js/loader": "^3.1.1",
53
- "@mdx-js/react": "^3.1.1",
54
- "@next/mdx": "^16.2.1",
55
- "@radix-ui/react-avatar": "^1.1.11",
56
- "@radix-ui/react-slot": "^1.2.4",
57
- "@supabase/supabase-js": "^2.101.0",
58
- "@tailwindcss/postcss": "^4",
59
- "@types/mdx": "^2.0.13",
60
- "@types/node": "^25.5.0",
61
- "@types/react": "^19",
62
- "@types/react-dom": "^19",
63
- "@types/react-syntax-highlighter": "^15.5.13",
64
- "@vercel/analytics": "^2.0.1",
65
- "ai": "^6.0.141",
66
- "class-variance-authority": "^0.7.1",
67
- "clsx": "^2.1.1",
68
- "eslint": "^10",
69
- "eslint-config-next": "16.2.1",
70
- "gray-matter": "^4.0.3",
71
- "lucide-react": "^1.7.0",
72
- "next": "^16.2.1",
73
- "next-mdx-remote": "^6.0.0",
74
- "next-themes": "^0.4.6",
75
- "react": "^19.2.4",
76
- "react-dom": "^19.2.4",
77
- "react-syntax-highlighter": "^16.1.1",
78
- "resend": "^6.12.2",
79
- "sonner": "^2.0.7",
80
- "tailwind-merge": "^3.5.0",
81
- "tailwindcss": "^4",
82
- "tsx": "^4.21.0",
83
- "tw-animate-css": "^1.4.0",
84
- "typescript": "6.0.2",
85
- "zod": "^4.3.6"
86
- }
87
- }
1
+ {
2
+ "name": "create-next-mdx-blog-app",
3
+ "version": "2.2.1",
4
+ "description": "A production-ready technical blog starter kit built with Next.js, MDX, Supabase, and TypeScript.",
5
+ "author": {
6
+ "name": "Abdullah Muhammad",
7
+ "url": "https://github.com/CodingAbdullah"
8
+ },
9
+ "files": [
10
+ "bin/"
11
+ ],
12
+ "bin": {
13
+ "create-next-mdx-blog-app": "./bin/create.js"
14
+ },
15
+ "engines": {
16
+ "node": ">=18.17.0"
17
+ },
18
+ "homepage": "https://next-mdx-blog-starter-sigma.vercel.app/",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/CodingAbdullah/Next-MDX-Blog-Starter.git"
22
+ },
23
+ "keywords": [
24
+ "aws",
25
+ "docker",
26
+ "javascript",
27
+ "jsx",
28
+ "mdx",
29
+ "next",
30
+ "react",
31
+ "sql",
32
+ "supabase",
33
+ "typescript"
34
+ ],
35
+ "license": "MIT",
36
+ "scripts": {
37
+ "dev": "next dev",
38
+ "build": "next build",
39
+ "start": "next start",
40
+ "lint": "next lint",
41
+ "doctor": "npx react-doctor@latest"
42
+ },
43
+ "dependencies": {
44
+ "@inquirer/prompts": "^8.4.3",
45
+ "degit": "^3.0.0",
46
+ "execa": "^9.6.1"
47
+ },
48
+ "devDependencies": {
49
+ "@ai-sdk/anthropic": "^3.0.78",
50
+ "@ai-sdk/react": "^3.0.192",
51
+ "@codesandbox/sandpack-react": "^2.20.0",
52
+ "@eslint/eslintrc": "^3",
53
+ "@mdx-js/loader": "^3.1.1",
54
+ "@mdx-js/react": "^3.1.1",
55
+ "@next/mdx": "^16.2.6",
56
+ "@radix-ui/react-avatar": "^1.1.11",
57
+ "@radix-ui/react-slot": "^1.2.4",
58
+ "@supabase/supabase-js": "^2.106.1",
59
+ "@tailwindcss/postcss": "^4",
60
+ "@types/mdx": "^2.0.13",
61
+ "@types/node": "^25.9.1",
62
+ "@types/react": "^19",
63
+ "@types/react-dom": "^19",
64
+ "@types/react-syntax-highlighter": "^15.5.13",
65
+ "@vercel/analytics": "^2.0.1",
66
+ "ai": "^6.0.190",
67
+ "class-variance-authority": "^0.7.1",
68
+ "clsx": "^2.1.1",
69
+ "eslint": "^10",
70
+ "eslint-config-next": "16.2.6",
71
+ "gray-matter": "^4.0.3",
72
+ "lucide-react": "^1.16.0",
73
+ "next": "^16.2.6",
74
+ "next-mdx-remote": "^6.0.0",
75
+ "next-themes": "^0.4.6",
76
+ "react": "^19.2.6",
77
+ "react-doctor": "^0.2.14",
78
+ "react-dom": "^19.2.6",
79
+ "react-syntax-highlighter": "^16.1.1",
80
+ "resend": "^6.12.3",
81
+ "sonner": "^2.0.7",
82
+ "tailwind-merge": "^3.6.0",
83
+ "tailwindcss": "^4",
84
+ "tsx": "^4.22.3",
85
+ "tw-animate-css": "^1.4.0",
86
+ "typescript": "6.0.3",
87
+ "zod": "^4.4.3"
88
+ }
89
+ }