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

@archhypo/plugin-hypo-stage

v0.1.2

Published

Architectural hypothesis management for [Backstage](https://backstage.io). Create, track, and validate architectural assumptions with uncertainty assessment, quality attributes, and technical planning.

Readme

HypoStage (Frontend Plugin)

Architectural hypothesis management for Backstage. Create, track, and validate architectural assumptions with uncertainty assessment, quality attributes, and technical planning.

Package: @archhypo/plugin-hypo-stage

Important: This package requires the backend plugin @archhypo/plugin-hypo-stage-backend to be installed and configured in the same Backstage app.


Features

  • Hypothesis management — Create, edit, view, and delete architectural hypotheses
  • Uncertainty & impact — Likert-scale assessment with evolution tracking
  • Quality attributes — Associate hypotheses with performance, security, maintainability, etc.
  • Technical planning — Link experiments, spikes, and tasks to hypotheses
  • Catalog integration — Optional Hypotheses tab on entity pages; filter by entity and team

Compatibility

  • Backstage: v1.16.0+
  • Node.js: 20+
  • React: 16.13, 17, or 18

Installation

1. Install packages

From your Backstage app root:

yarn --cwd packages/app add @archhypo/plugin-hypo-stage
yarn --cwd packages/backend add @archhypo/plugin-hypo-stage-backend

2. Configure routes

In packages/app/src/App.tsx:

import {
  HypoStagePage,
  CreateHypothesisPage,
  HypothesisPage,
  EditHypothesisPage,
} from '@archhypo/plugin-hypo-stage';

// Inside <FlatRoutes>:
<Route path="/hypo-stage" element={<HypoStagePage />} />
<Route path="/hypo-stage/create-hypothesis" element={<CreateHypothesisPage />} />
<Route path="/hypo-stage/hypothesis/:hypothesisId" element={<HypothesisPage />} />
<Route path="/hypo-stage/hypothesis/:hypothesisId/edit" element={<EditHypothesisPage />} />

3. Add sidebar entry

In packages/app/src/components/Root/Root.tsx (or equivalent):

import LaptopMacIcon from '@material-ui/icons/LaptopMac';

<SidebarItem icon={LaptopMacIcon} to="hypo-stage" text="Hypo Stage" />

4. Register the frontend API

In packages/app/src/apis.ts:

import { discoveryApiRef, fetchApiRef } from '@backstage/core-plugin-api';
import { HypoStageApiClient, HypoStageApiRef } from '@archhypo/plugin-hypo-stage';

createApiFactory({
  api: HypoStageApiRef,
  deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef },
  factory: ({ discoveryApi, fetchApi }) =>
    new HypoStageApiClient({ discoveryApi, fetchApi }),
}),

5. Register the backend plugin

In packages/backend/src/index.ts:

import { createBackend } from '@backstage/backend-defaults';

const backend = createBackend();
// ... other plugins ...
backend.add(import('@archhypo/plugin-hypo-stage-backend'));
backend.start();

6. Database configuration

The backend needs a database. Ensure app-config.yaml has a database configured. For a dedicated plugin database (recommended), add:

backend:
  database:
    client: pg
    connection:
      host: ${POSTGRES_HOST}
      port: ${POSTGRES_PORT}
      user: ${POSTGRES_USER}
      password: ${POSTGRES_PASSWORD}
      database: backstage
    plugin:
      hypo-stage:
        connection:
          database: backstage_plugin_hypo_stage

For SQLite: client: better-sqlite3, connection: ':memory:' or a file path. Migrations run automatically on backend startup.


Optional: Catalog entity tab

To show a "Hypotheses" tab on catalog entity pages:

  1. Import EntityHypothesesTab and add it to your EntityPage (e.g. in packages/app/src/components/catalog/EntityPage.tsx):
import { EntityHypothesesTab } from '@archhypo/plugin-hypo-stage';

// In the entity page layout:
<EntityLayout.Route path="/hypotheses" title="Hypotheses">
  <EntityHypothesesTab />
</EntityLayout.Route>
  1. Control visibility with the hypo-stage feature flag (optional). If the Feature Flags API is not registered, the tab is visible by default.

Exports and API

| Export | Description | |--------|-------------| | HypoStagePage | Main list and dashboard | | CreateHypothesisPage | Create hypothesis form | | HypothesisPage | Hypothesis detail and technical planning | | EditHypothesisPage | Edit hypothesis form | | HypoStageApiRef, HypoStageApiClient | API to call the backend | | EntityHypothesesTab | Catalog entity tab component | | HypothesisForm, HypothesisList | Reusable form and list components |


Documentation

Full documentation, run standalone, Docker, and E2E tests: github.com/ArchHypo/hypo-stage