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

@construct-space/cli

v1.11.0

Published

Construct CLI — scaffold, build, develop, and publish spaces

Downloads

1,343

Readme

Construct CLI

Build, develop, and publish Construct spaces.

Install

bun install -g construct

Commands

Space Development

construct scaffold my-space    # Create a new space
construct dev                  # Dev mode with hot reload
construct build                # Build for production
construct run                  # Install locally
construct publish              # Publish to registry
construct validate             # Validate manifest
construct check                # Type-check + lint
construct clean                # Remove build artifacts

Built-in libraries

Scaffolded spaces ship with the full Construct stack pre-wired — import freely, the host resolves them at runtime (never bundled):

| Package | Purpose | |---------|---------| | @construct-space/ui | Vue 3 components — Button, Card, Modal, Table, Badge, Avatar, ToggleGroup, ConfirmationModal, ... | | @construct-space/sdk | Host composables — useOrg, useOrgMembers, useToast, useAuth | | @construct-space/graph | Multi-tenant data layer — defineModel, useGraph, scopes, access rules | | lucide-vue-next | Icon set |

import { Button, Card, Modal } from '@construct-space/ui'
import { useOrg, useOrgMembers } from '@construct-space/sdk'
import { defineModel, field, useGraph } from '@construct-space/graph'

The scaffolded src/pages/index.vue and src/actions.ts show the recommended patterns. Use construct check (typecheck + ESLint flat config) before commit.

Graph (Data Models)

construct graph init                              # Add Graph to your space
construct graph g User name:string email:string   # Generate a model
construct graph push                              # Register models with Graph
construct graph migrate                           # Diff + apply schema changes

Publisher commands

Group related spaces under a bundle, control distribution, and see who's installed your space. All of these need an org context — pass --org <id> or export CONSTRUCT_ORG_ID.

# Bundles (publisher-side grouping: kanban + kanban-admin)
construct graph bundles list
construct graph bundles create kanban-suite "Kanban Suite"
construct graph bundles show kanban-suite

# Spaces your org publishes (aliases: list, ls)
construct graph spaces                            # table: id, version, bundle, distribution, installs
construct graph spaces --bundle kanban-suite      # filter
construct graph spaces --json                     # scriptable

# Distribution — who may install this space
construct graph distribution kanban-admin private
construct graph distribution kanban public
construct graph distribution kanban-pro org_allowlist

# Allowlist (for org_allowlist-mode spaces)
construct graph allowlist add kanban-pro org-basecode
construct graph allowlist rm  kanban-pro org-basecode

# Install visibility — see who's installed your space
construct graph installs kanban

Tenant commands

# Install / uninstall a space for your org
construct graph install kanban
construct graph uninstall kanban                  # tenant data preserved

Manifest fields for bundles

To attach a space to a bundle, add these to data.manifest.json:

{
  "version": 1,
  "bundle_id": "kanban-suite",
  "imports": [
    { "from": "kanban", "models": ["board", "card"] }
  ],
  "models": [ ... ]
}

imports lets a sibling space (like kanban-admin) reuse models from another space in the same bundle. Cross-bundle imports are rejected at publish.

See @construct-space/graph README for the full bundles story.

Field Types

| Type | Example | |------|---------| | string | name:string | | int | age:int | | number | price:number | | boolean | active:boolean | | date | createdAt:date | | json | metadata:json | | enum | status:enum:draft,published,archived |

Modifiers

Chain modifiers with :email:string:required:unique

| Modifier | Effect | |----------|--------| | required | Field must have a value | | unique | Unique constraint | | index | Database index | | email | Email validation | | url | URL validation |

Relations

construct graph g Comment body:string post:belongsTo:Post
construct graph g Post title:string comments:hasMany:Comment

Auth

construct login     # Authenticate via browser
construct logout    # Sign out

License

MIT