npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@syntax-syllogism/mavmeta

v0.3.4

Published

Node localhost control center for Salesforce admins

Readme

MavMeta

MavMeta is a powerful, localhost control center designed specifically for Salesforce Administrators and Developers. It streamlines complex org management and metadata operations into a fast, modern desktop experience.

Key Features

  • 🚀 Effortless Org Management

    • Quick-Switch: Instantly toggle between production, sandbox, and scratch orgs.
    • Single-Click Login: Open any authorized org in your default browser without searching for passwords.
    • Scratch Org Wizard: Create and configure scratch orgs in seconds with a guided setup.
  • 🔍 Deep Metadata Discovery

    • Browse & Filter: Quickly find components across hundreds of metadata types.
    • XML Preview: View raw component XML source directly in the app—no need to download or search through local files.
    • Modified Tracking: See who changed what and when, directly in the explorer.
  • 🛠️ Object Manager (Beta)

    • Fast Browsing: Explore standard and custom objects with a high-performance UI.
    • Child Metadata: Inspect fields, validation rules, and other child components with ease.
  • 🛒 Metadata Cart Workflow

    • Staging: "Shop" for components from different types and objects, adding them to a unified cart.
    • Bulk Actions: Perform operations on your entire "hit list" at once.
    • Destructive Deploys: Safely validate and deploy destructive changes with real-time progress and safety checks.
    • Cross-Org Compare: Compare your staged items against other orgs to identify differences before you deploy.
  • 🧪 Advanced Tools

    • REST Explorer: Test and explore Salesforce APIs with a built-in interactive playground.
    • SOQL Explorer: Compose, run, and iterate on SOQL queries against any connected org with instant results. Export results to .csv or .json files.
    • LWC Playground: Experiment with and preview Lightning Web Components in a local sandbox. Edits are saved via the fast Salesforce Tooling API. For bundles that import custom fields via @salesforce/schema (e.g. import FIELD from '@salesforce/schema/MyObject__c.MyField__c'), MavMeta automatically retries the deploy through the Metadata API to work around a confirmed Salesforce Tooling API bug. The fallback is transparent — saves succeed as normal, though they may take a few extra seconds.
  • 🎨 Modern User Experience

    • Dark & Light Modes: Choose the theme that fits your workflow.
    • Search Everywhere: Fast, responsive filtering for types, components, and objects.
    • Local Privacy: Runs entirely on your machine; your credentials and metadata stay local.

Technical Overview

The frontend is Svelte 5. The backend is a local Node server (Fastify) that uses Salesforce TypeScript libraries directly (@salesforce/core + Metadata and Tooling API usage).

Frontend Architecture

src/mainview/App.svelte is now the orchestration shell. It composes workflow-oriented components and keeps cross-workflow state orchestration in one place.

Primary UI components:

  • orgs/OrgDirectory.svelte: org auth form, org directory table, and org row actions.
  • metadata/MetadataExplorer.svelte: metadata type discovery/filtering, component explorer, grouping, and inspector.
  • cart/MetadataCartWizard.svelte: staged metadata review, action stepper, destructive confirmation, and result/progress UI.
  • StatusBar.svelte, AliasModal.svelte, ScratchDeleteModal.svelte: stable shell/modal primitives extracted from App.svelte.

Pure view-model helpers (unit-tested):

  • metadata/metadata-view-model.ts
  • cart/cart-view-model.ts
  • deploy/deploy-view-model.ts

Security

MavMeta runs entirely on 127.0.0.1, makes no telemetry calls, and never persists Salesforce credentials of its own. For the full threat model and the steps you can run locally to verify those claims, see docs/security.md. To report a vulnerability, see SECURITY.md.

Getting Started

End-user (npm)

# Run latest published release without installing globally
npx @syntax-syllogism/mavmeta@latest

# Or install globally
npm install -g @syntax-syllogism/mavmeta
mavmeta

The npm CLI launch starts the local server in static mode and opens MavMeta in your default browser.

Developer (from source)

# Install dependencies
npm install

# Run backend + frontend together (recommended)
npm run dev:local

# Run backend only
npm run dev:server

# Run frontend only (Vite on :5173)
npm run dev:web

# Typecheck + tests
npm run typecheck
npm run test

# Build frontend assets
npm run build

# Run single-process local app (serves built frontend + API)
npm start

Runtime

  • Vite frontend runs at http://localhost:5173.
  • If 5173 is busy, npm run dev:local fails fast so the frontend and backend do not disagree about the session bootstrap origin. Free the port or set MAVMETA_WEB_PORT for both processes.
  • Node backend runs at http://127.0.0.1:8787 by default.
  • Vite proxies /api/* requests to the backend in development.
  • npm start serves the built frontend from the backend process on backend host/port.
  • npx @syntax-syllogism/mavmeta / mavmeta runs the packaged CLI in static mode, requests an ephemeral local port, and opens the browser automatically.

Optional backend env vars:

  • MAVMETA_HOST (default: 127.0.0.1)
  • MAVMETA_PORT (default: 8787)
  • MAVMETA_WEB_PORT (default: 5173)

Project Structure

├── src/
│   ├── server/             # Node backend (Fastify + Salesforce services)
│   ├── shared/             # Shared DTOs/types
│   └── mainview/
│       ├── App.svelte      # App shell + orchestration
│       ├── StatusBar.svelte
│       ├── AliasModal.svelte
│       ├── ScratchDeleteModal.svelte
│       ├── backend/
│       │   └── backend-client.ts  # HTTP client to /api
│       ├── orgs/
│       │   └── OrgDirectory.svelte
│       ├── metadata/
│       │   ├── MetadataExplorer.svelte
│       │   └── metadata-view-model.ts
│       ├── cart/
│       │   ├── MetadataCartWizard.svelte
│       │   ├── cart-view-model.ts
│       │   └── types.ts
│       ├── deploy/
│       │   └── deploy-view-model.ts
│       ├── App.test.ts     # Component behavior tests for main workflows
│       ├── main.ts
│       ├── index.html
│       └── app.css
├── vite.config.ts
├── svelte.config.js
└── package.json

Notes

  • Active development target is Node/npm.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Code of Conduct

We are committed to fostering a welcoming community. Please review our Code of Conduct.