Freedom is the goal.
Open infrastructure that helps people and businesses stay sovereign in a world reshaped by AI — yours to run, inspect, and walk away from.
| Package | npm | What it does |
|---|---|---|
| @vllnt/eslint-config | Strict ESLint flat config for TypeScript — every rule enforces error. Next.js, React, Node.js, Convex presets | |
| @vllnt/typescript | Shared TypeScript configurations — Next.js, React, Node.js, Node library presets | |
| @vllnt/analytics | Lightweight privacy-first analytics with consent management, DNT detection, and React hooks | |
| @vllnt/logger | Structured JSON logging — zero deps, tree-shakeable, multi-runtime (Node, Convex, browser, edge) | |
| @vllnt/ui | Modular UI component library — React, TypeScript, Tailwind |
Sandboxed, app.use()-mountable components for any Convex backend — each owns its own data sandbox, stays domain-neutral, and is typed end to end. Currently shipping canary builds.
| Package | npm | What it does |
|---|---|---|
| @vllnt/convex-api-keys | Secure API key management — create, validate, revoke, rotate, rate-limit, track usage | |
| @vllnt/convex-comments | Threaded comments / annotations on any resource — post, reply, edit, resolve, soft-delete | |
| @vllnt/convex-consent | Append-only consent ledger (GDPR Art. 6/7) — record, withdraw, and gate consent per subject + purpose | |
| @vllnt/convex-email | Durable, transport-agnostic transactional email queue — enqueue, retry, idempotent send, delivery status | |
| @vllnt/convex-events | Append-only per-subject activity feed and event ledger | |
| @vllnt/convex-flags | Feature flags — boolean & multivariate, % rollout, attribute targeting, evaluated server-side and streamed live | |
| @vllnt/convex-idempotency | Exactly-once idempotency key ledger for retried operations | |
| @vllnt/convex-invitations | Invite → accept → expire — single-use, expiring invitations to a resource | |
| @vllnt/convex-memberships | Auth-agnostic membership and relationship graph (ReBAC tuples) | |
| @vllnt/convex-notifications | Per-subject directed inbox — read/unread state and fan-out | |
| @vllnt/convex-permissions | Typed authorization — roles and policies, type-safe guards (require/check/can) | |
| @vllnt/convex-reactions | Reactions, votes, and likes on any resource — toggle, count by kind, list reactors | |
| @vllnt/convex-slugs | Unique slug and handle registry with rename redirects | |
| @vllnt/convex-suppression | Do-not-contact suppression list + opt-in proof (GDPR/CAN-SPAM), hash-keyed and channel-aware | |
| @vllnt/convex-tokens | Hashed-secret token primitive — mint-once, TTL, revoke, scope | |
| @vllnt/convex-wallet | Consumable balances and economy ledger — atomic spend, lazy regen |
| Package | npm | What it does |
|---|---|---|
| @vllnt/convex-helpers | Typed host-side helpers for Convex backends — builders, errors, validators, relationships, pagination, HTTP, env, observability | |
| @vllnt/convex-mcp | Expose Convex functions as MCP tools with zero boilerplate |
| Package | What it does |
|---|---|
| @vllnt/convex-analytics | Convex component — API-first analytics engine with events, sessions, funnels, retention, and MCP tools |
Freedom is the goal. Four principles serve it:
- Knowledge — no black boxes. We explain what runs and why. See the territory, not just the map.
- Privacy — what's yours stays yours. Local and self-hostable by default; no telemetry without consent.
- Sovereignty — own your stack. Self-hostable over SaaS-only; you control your data, deploys, and keys.
- Legacy — built to last. Maintainable, documented, deletable code — no throwaway hacks aimed at an exit.
- Open by default — everything ships as open source
- Agent-ready — built for AI-assisted and AI-driven development
- Composable — use what you need, override what you don't
- Strict by default — opinionated configs so correctness is the path of least resistance