Skip to main content
vly handles a lot of architecture for you — Convex backend, built-in auth, deployment pipeline. But your app will still face design decisions: how to model data, how to scope permissions, how to handle file uploads, when to cache. This section is the reference for those decisions.

Patterns by topic

Component patterns

Reusability, composition, prop drilling vs. context.

Data modeling

Schema patterns for the most common app shapes.

Auth flows

Patterns for sign-up, password reset, MFA, session management.

State management

Where to put state — Convex, URL, local, Zustand.

Caching

What to cache, where, and how to invalidate.

Error handling

Error boundaries, retry policies, user-facing error UX.

Optimistic updates

Patterns for instant client feedback.

Pagination

Infinite scroll vs. paginated tables.

Search patterns

Full-text vs. vector vs. filter UIs.

File uploads

Direct-to-storage uploads, validation, previews.

Real-time sync patterns

Sync, presence, collaborative editing.

Multi-tenancy

Workspaces, isolation, per-tenant limits.

Rate limiting

Per-user, per-IP, per-endpoint patterns.

When to read this section

  • Before starting a non-trivial app, skim the patterns relevant to your shape.
  • When the agent’s default approach feels off, the patterns here describe the alternatives and tradeoffs.
  • When debugging architecture-level issues (slow queries, leaky abstractions, scaling pain), check the relevant page.

Tips

Patterns aren’t laws. They’re starting points. Adapt to your app’s specifics.
vly’s defaults are usually right. Question the defaults only when you have a specific reason — premature divergence creates churn.
Last modified on April 18, 2026