Choose descriptive names that clearly convey purpose while avoiding conflicts with existing APIs, built-in functions, or established conventions. Names should follow consistent patterns across the codebase and use appropriate spelling conventions.

Key principles:

Example:

// ❌ Avoid: Abbreviated, conflicts with built-in
const r = getRouter()
const fetch = async () => { ... }

// ✅ Good: Descriptive, conflict-free
const dehydratedRouter = getRouter()
const fetchAndResolveInLoaderLifetime = async () => { ... }

// ❌ Avoid: Misleading naming pattern
export function useSupabase() { /* not a hook */ }

// ✅ Good: Clear, follows conventions
export function getSupabaseServer() { /* server utility */ }