Skip to content

Commit 6be66df

Browse files
Miriadpm
andcommitted
temp: stash work in progress
Co-authored-by: pm <pm@miriad.systems>
1 parent 6935912 commit 6be66df

5 files changed

Lines changed: 545 additions & 206 deletions

File tree

.env.example

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# =============================================================================
2+
# codingcat.dev — Environment Variables
3+
# =============================================================================
4+
# Copy this file to .env.local and fill in the values.
5+
# Variables prefixed with NEXT_PUBLIC_ are exposed to the browser.
6+
# All other variables are server-only.
7+
# =============================================================================
8+
9+
# -----------------------------------------------------------------------------
10+
# Public (client-side) variables — NEXT_PUBLIC_*
11+
# -----------------------------------------------------------------------------
12+
13+
# Sanity CMS — project configuration
14+
NEXT_PUBLIC_SANITY_PROJECT_ID= # Sanity project ID (from sanity.io/manage)
15+
NEXT_PUBLIC_SANITY_DATASET= # Sanity dataset name (e.g. "production")
16+
NEXT_PUBLIC_SANITY_API_VERSION= # Sanity API version date (e.g. "2024-01-01")
17+
18+
# Site URLs
19+
NEXT_PUBLIC_BASE_URL= # Canonical base URL (e.g. "https://codingcat.dev")
20+
NEXT_PUBLIC_VERCEL_URL= # Vercel preview URL (auto-set by Vercel)
21+
22+
# Algolia search — public keys
23+
NEXT_PUBLIC_ALGOLIA_APP_ID= # Algolia application ID
24+
NEXT_PUBLIC_ALGOLIA_INDEX= # Algolia index name
25+
26+
# Analytics
27+
NEXT_PUBLIC_FB_PIXEL_ID= # Facebook Pixel tracking ID
28+
29+
# Preview mode
30+
NEXT_PUBLIC_PREVIEW_TOKEN_SECRET= # Secret token for Sanity preview mode
31+
32+
# -----------------------------------------------------------------------------
33+
# Server-only variables
34+
# -----------------------------------------------------------------------------
35+
36+
# Sanity CMS — API tokens
37+
SANITY_API_READ_TOKEN= # Sanity read token (viewer role)
38+
SANITY_API_WRITE_TOKEN= # Sanity write token (editor role)
39+
40+
# Algolia search — admin keys
41+
PRIVATE_ALGOLIA_ADMIN_API_KEY= # Algolia admin API key (server-side indexing)
42+
PRIVATE_ALGOLIA_WEBOOK_SECRET= # Shared secret for Algolia webhook verification
43+
44+
# Syndication
45+
PRIVATE_SYNDICATE_WEBOOK_SECRET= # Shared secret for syndication webhook verification
46+
PRIVATE_DEVTO= # Dev.to API key (cross-posting)
47+
PRIVATE_HASHNODE= # Hashnode API key (cross-posting)
48+
49+
# Cloudflare Turnstile (bot protection)
50+
CLOUDFLARE_TURNSTILE_SECRET_KEY= # Turnstile server-side secret key
51+
52+
# Cron / scheduled jobs
53+
CRON_SECRET= # Secret for authenticating cron job requests
54+
55+
# YouTube integration
56+
YOUTUBE_API_KEY= # YouTube Data API v3 key
57+
YOUTUBE_CHANNEL_ID= # YouTube channel ID to fetch videos from
58+
59+
# Vercel
60+
VERCEL_PROJECT_PRODUCTION_URL= # Production URL (auto-set by Vercel)

components.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
"rsc": true,
55
"tsx": true,
66
"tailwind": {
7-
"config": "tailwind.config.ts",
87
"css": "app/globals.css",
98
"baseColor": "neutral",
109
"cssVariables": true,

package.json

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,8 @@
5656
"@sanity/ui": "^3.1.0",
5757
"@sanity/vision": "^4.8.1",
5858
"@sanity/webhook": "^4.0.4",
59-
"@tailwindcss/postcss": "^4.1.13",
60-
"@types/node": "^24.3.1",
61-
"@types/react": "^19.1.12",
62-
"@types/react-dom": "^19.1.9",
59+
"@supabase/ssr": "^0.9.0",
60+
"@supabase/supabase-js": "^2.98.0",
6361
"@uidotdev/usehooks": "^2.4.1",
6462
"algoliasearch": "^5.37.0",
6563
"autoprefixer": "^10.4.21",
@@ -110,15 +108,16 @@
110108
"devDependencies": {
111109
"@biomejs/biome": "2.2.4",
112110
"@eslint/eslintrc": "^3.3.1",
113-
"@tailwindcss/typography": "^0.5.16",
114-
"@types/node": "^20",
115-
"@types/react": "^19",
116-
"@types/react-dom": "^19",
111+
"@tailwindcss/postcss": "^4.2.1",
112+
"@tailwindcss/typography": "^0.5.19",
113+
"@types/node": "^24.3.1",
114+
"@types/react": "^19.1.12",
115+
"@types/react-dom": "^19.1.9",
117116
"@types/react-syntax-highlighter": "^15.5.13",
118117
"eslint": "^9.35.0",
119118
"eslint-config-next": "15.5.3",
120119
"postcss": "^8",
121-
"tailwindcss": "^4.1.13",
120+
"tailwindcss": "^4.2.1",
122121
"typescript": "^5"
123122
},
124123
"pnpm": {

package.json.before

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
{
2+
"private": true,
3+
"scripts": {
4+
"dev": "next dev --turbo",
5+
"build": "next build",
6+
"start": "next start",
7+
"lint": "next lint",
8+
"predev": "npm run typegen",
9+
"prebuild": "npm run typegen",
10+
"typegen": "sanity schema extract --path=./sanity/extract.json && sanity typegen generate",
11+
"format": "biome format . --write"
12+
},
13+
"dependencies": {
14+
"@codingcatdev/sanity-plugin-podcast-rss": "^1.0.0",
15+
"@hookform/resolvers": "^5.2.1",
16+
"@marsidev/react-turnstile": "^1.3.1",
17+
"@portabletext/block-tools": "^3.5.5",
18+
"@portabletext/react": "^4.0.3",
19+
"@portabletext/to-html": "^3.0.0",
20+
"@radix-ui/react-accordion": "^1.2.12",
21+
"@radix-ui/react-alert-dialog": "^1.1.15",
22+
"@radix-ui/react-aspect-ratio": "^1.1.7",
23+
"@radix-ui/react-avatar": "^1.1.10",
24+
"@radix-ui/react-checkbox": "^1.3.3",
25+
"@radix-ui/react-collapsible": "^1.1.12",
26+
"@radix-ui/react-context-menu": "^2.2.16",
27+
"@radix-ui/react-dialog": "^1.1.15",
28+
"@radix-ui/react-dropdown-menu": "^2.1.16",
29+
"@radix-ui/react-hover-card": "^1.1.15",
30+
"@radix-ui/react-icons": "^1.3.2",
31+
"@radix-ui/react-label": "^2.1.7",
32+
"@radix-ui/react-menubar": "^1.1.16",
33+
"@radix-ui/react-navigation-menu": "^1.2.14",
34+
"@radix-ui/react-popover": "^1.1.15",
35+
"@radix-ui/react-progress": "^1.1.7",
36+
"@radix-ui/react-radio-group": "^1.3.8",
37+
"@radix-ui/react-scroll-area": "^1.2.10",
38+
"@radix-ui/react-select": "^2.2.6",
39+
"@radix-ui/react-separator": "^1.1.7",
40+
"@radix-ui/react-slider": "^1.3.6",
41+
"@radix-ui/react-slot": "^1.2.3",
42+
"@radix-ui/react-switch": "^1.2.6",
43+
"@radix-ui/react-tabs": "^1.1.13",
44+
"@radix-ui/react-toast": "^1.2.15",
45+
"@radix-ui/react-toggle": "^1.1.10",
46+
"@radix-ui/react-toggle-group": "^1.1.11",
47+
"@radix-ui/react-tooltip": "^1.2.8",
48+
"@sanity/assist": "^5.0.0",
49+
"@sanity/block-content-to-markdown": "^1.0.0",
50+
"@sanity/client": "^7.11.1",
51+
"@sanity/code-input": "^6.0.1",
52+
"@sanity/icons": "^3.7.4",
53+
"@sanity/image-url": "^1.2.0",
54+
"@sanity/preview-url-secret": "^2.1.15",
55+
"@sanity/studio-secrets": "^3.0.2",
56+
"@sanity/ui": "^3.1.0",
57+
"@sanity/vision": "^4.8.1",
58+
"@sanity/webhook": "^4.0.4",
59+
"@tailwindcss/postcss": "^4.1.13",
60+
"@uidotdev/usehooks": "^2.4.1",
61+
"algoliasearch": "^5.37.0",
62+
"autoprefixer": "^10.4.21",
63+
"class-variance-authority": "^0.7.1",
64+
"clsx": "^2.1.1",
65+
"cmdk": "^1.1.1",
66+
"date-fns": "^4.1.0",
67+
"embla-carousel-react": "^8.6.0",
68+
"feed": "^5.1.0",
69+
"input-otp": "^1.4.2",
70+
"instantsearch.js": "^4.80.0",
71+
"jwt-decode": "^4.0.0",
72+
"lucide-react": "^0.544.0",
73+
"micromark": "^4.0.2",
74+
"next": "^15.5.3",
75+
"next-cloudinary": "^6.16.0",
76+
"next-sanity": "^11.1.0",
77+
"next-themes": "^0.4.6",
78+
"nextjs-toploader": "^3.9.17",
79+
"postcss": "^8.5.6",
80+
"react": "^19.1.1",
81+
"react-cookie": "^8.0.1",
82+
"react-day-picker": "^9.9.0",
83+
"react-dom": "^19.1.1",
84+
"react-dropzone": "^14.3.8",
85+
"react-facebook-pixel": "^1.0.4",
86+
"react-hook-form": "^7.62.0",
87+
"react-icons": "^5.5.0",
88+
"react-inlinesvg": "^4.2.0",
89+
"react-instantsearch": "^7.16.3",
90+
"react-instantsearch-nextjs": "^1.0.2",
91+
"react-resizable-panels": "^3.0.6",
92+
"react-syntax-highlighter": "^15.6.6",
93+
"react-twitter-embed": "^4.0.4",
94+
"recharts": "2.15.4",
95+
"sanity": "^4.8.1",
96+
"sanity-plugin-cloudinary": "^1.4.0",
97+
"server-only": "^0.0.1",
98+
"sonner": "^2.0.7",
99+
"styled-components": "^6.1.19",
100+
"tailwind-merge": "^3.3.1",
101+
"tailwindcss-animate": "^1.0.7",
102+
"typescript": "5.9.2",
103+
"uuid": "^13.0.0",
104+
"vaul": "^1.1.2",
105+
"zod": "^4.1.8"
106+
},
107+
"devDependencies": {
108+
"@biomejs/biome": "2.2.4",
109+
"@eslint/eslintrc": "^3.3.1",
110+
"@tailwindcss/typography": "^0.5.16",
111+
"@types/node": "^24.3.1",
112+
"@types/react": "^19.1.12",
113+
"@types/react-dom": "^19.1.9",
114+
"@types/react-syntax-highlighter": "^15.5.13",
115+
"eslint": "^9.35.0",
116+
"eslint-config-next": "15.5.3",
117+
"postcss": "^8",
118+
"tailwindcss": "^4.1.13",
119+
"typescript": "^5"
120+
},
121+
"pnpm": {
122+
"peerDependencyRules": {
123+
"allowAny": [
124+
"react",
125+
"react-dom"
126+
]
127+
}
128+
}
129+
}

0 commit comments

Comments
 (0)