بنقرة واحدة
sanity-groq-query
Write, debug, and optimize GROQ queries for Sanity CMS in this portfolio
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Write, debug, and optimize GROQ queries for Sanity CMS in this portfolio
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Migrate from Next.js 15 to Next.js 16 and handle breaking changes
Configure Content Security Policy and security headers for the portfolio
Deploy Next.js to Cloudflare Workers using OpenNext adapter
Manage the canary token honeypot system for detecting security scanning
Advanced TypeScript patterns and type safety as used in this portfolio
Advanced React patterns and best practices used in this portfolio
| name | sanity-groq-query |
| description | Write, debug, and optimize GROQ queries for Sanity CMS in this portfolio |
Write, debug, and optimize GROQ queries for Sanity CMS with the v2026-02-19 parser.
4bg9jxr4production2026-02-19apicdn.sanity.ioThe 2026-02-19 parser is stricter than older versions:
// WRONG — parser sees galleryItems as part of the outer object
*[_type == "project" && slug.current == $slug][0]{
title,
slug,
galleryItems{
images[]{ url, alt }
},
technologies // parser error here
}
// CORRECT — nested projections must come AFTER all top-level fields
*[_type == "project" && slug.current == $slug][0]{
title,
slug,
technologies,
tier,
showcaseDetail,
galleryItems{
images[]{ url, alt }
}
}
// WRONG — unquoted aliases cause parse errors
*[_type == "project"]{
title,
projectTitle: title // error
}
// CORRECT — use quoted names for aliases
*[_type == "project"]{
title,
"projectTitle": title
}
// WRONG
*[_type == "project"]{
title,
galleryItems[]{
images[]{ url, alt, caption }
}
}
// CORRECT
*[_type == "project"]{
title,
galleryItems[] {
images[] { url, alt, caption }
}
}
*[_type == "project"] | order(orderRank asc) {
title,
slug,
description,
tier,
technologies,
orderRank
}
*[_type == "project" && slug.current == $slug][0] {
title,
slug,
description,
tier,
projectUrl,
repoUrl,
orderRank,
featured,
technologies,
features,
challenges,
learnings,
metrics,
showcaseDetail {
challenge,
solution,
result,
architecture,
highlights
},
galleryItems[] {
images[] { url, alt, caption, type }
},
_updatedAt
}
*[_type == "heroSection"][0] {
name,
title,
roleRotator,
contactEmail
}
*[_type == "blogPost"] | order(publishedAt desc) {
title,
slug,
publishedAt,
excerpt,
tags,
readingTime,
featured
}
*[_type == "certification"] | order(issuedDate desc) {
name,
issuer,
issuedDate,
expirationDate,
credentialId,
credentialUrl,
logo {
asset->{url}
}
}
*[_type == "experience"] | order(startDate desc) {
company,
position,
location,
startDate,
endDate,
current,
description,
highlights,
technologies
}
*[_type == "skill"] | order(category asc, name asc) {
name,
category,
level,
yearsOfExperience
}
}"* at the start of query_type nameconsole.log to see raw query string