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

filecoin-nova

v0.3.10

Published

Clone, deploy, and manage websites on Filecoin Onchain Cloud with ENS resolution

Readme

Filecoin Nova

Move your website to the decentralized web. Nova creates an exact static copy of your site and deploys it to the Filecoin network in seconds -- no server migration, no infrastructure changes.

npx filecoin-nova demo https://your-site.com

Your site gets a permanent, censorship-resistant copy on Filecoin Onchain Cloud with a live URL. Keep your existing hosting, or replace it entirely.

  • One command -- point Nova at your site and it handles everything
  • No migration -- your existing site stays exactly as it is
  • Low cost -- a fraction of traditional hosting fees
  • No servers to manage -- content is stored onchain, served via IPFS gateways
  • Works with any site -- static sites, React, Next.js, Vue, Nuxt, WordPress, Webflow
  • ENS domains -- give your decentralized site a human-readable .eth.limo address

Try It Now

See what your site looks like on decentralized infrastructure. No account, no wallet, no cost.

In your browser: go to focify.me, paste a URL, and watch it deploy in real time.

From the command line:

npx filecoin-nova demo https://your-site.com

Your site is live in about 60 seconds at an IPFS gateway URL. This free demo uses the calibration testnet so you can evaluate before committing.

You can also deploy a local build directory:

npx filecoin-nova demo ./dist

Make Your Site Decentralized

Nova captures a pixel-perfect static copy of your site using a real browser, so JavaScript-heavy frameworks render correctly. Cross-origin API responses are captured and replayed so the copy works standalone.

# Create a decentralized copy of your site
nova clone https://your-site.com

# Limit how many pages to capture
nova clone https://your-site.com --max-pages 10

# Deploy and point an ENS domain at it
nova clone https://your-site.com --ens mysite.eth

# Capture only, review before deploying
nova clone https://your-site.com --no-deploy

Already have a static build? Deploy it directly:

# Deploy a build output directory
nova deploy ./dist

# Deploy with an ENS domain
nova deploy ./public --ens mysite.eth

# Deploy and remove previous versions
nova deploy ./dist --clean

# Deploy an archive
nova deploy site.zip

Nova accepts directories and archives (.zip, .tar.gz, .tgz, .tar).

When it's done, your site is live at:

https://mysite.eth.limo -- if you set up an ENS domain

https://<cid>.ipfs.dweb.link -- always available via IPFS gateway

A CID (Content Identifier) is a unique fingerprint for your content on IPFS. Same content always produces the same CID.


AI Editor Integration (MCP)

Nova includes an MCP server so your AI editor can deploy and manage sites through conversation.

Setup

Claude Code:

npm install -g filecoin-nova
claude mcp add filecoin-nova -s user -- nova-mcp

Claude Desktop: Settings > MCP > Add MCP Server. Set command to nova-mcp.

Cursor / Windsurf / VS Code:

| Editor | Config file | |--------|------------| | Cursor | ~/.cursor/mcp.json | | Windsurf | ~/.codeium/windsurf/mcp_config.json | | VS Code | .vscode/mcp.json |

{
  "mcpServers": {
    "filecoin-nova": {
      "command": "npx",
      "args": ["-y", "--package", "filecoin-nova", "nova-mcp"]
    }
  }
}

What you can ask

  • "Deploy my site to Filecoin"
  • "Make a decentralized copy of example.com"
  • "Update the ENS for mysite.eth"
  • "What's currently deployed on mysite.eth?"
  • "Clean up old deployments"

No wallet needed to start. The AI uses nova_demo for instant free deploys, and guides you through permanent hosting when you're ready.

Tools

| Tool | What it does | |------|-------------| | nova_demo | Deploy for free, no wallet needed | | nova_deploy | Deploy to mainnet with optional ENS | | nova_ens | Point an ENS domain to a CID | | nova_status | Check what an ENS domain points to | | nova_manage | List all stored content | | nova_manage_clean | Remove old content to reduce costs | | nova_poll | Check if a browser-signed transaction completed |

SKILL.md

Nova ships a SKILL.md in the npm package that teaches any AI assistant how to use the MCP tools. If your AI tool supports skill files, point it at node_modules/filecoin-nova/SKILL.md.


Auth

Nova is designed so you never need to paste private keys.

Demo mode (no auth)

nova demo works instantly. Free, calibration testnet, no wallet needed.

Session keys (permanent hosting)

Session keys are scoped to storage operations only -- they cannot move funds, making them safe to use in AI chat sessions.

  1. Go to session.focify.eth.limo
  2. Connect MetaMask (Filecoin network)
  3. Sign the transaction
  4. Use the session key with Nova
nova deploy ./dist
# Nova prompts for session key + wallet address

Or set as env vars for automation:

export NOVA_SESSION_KEY=0x...
export NOVA_WALLET_ADDRESS=0x...
nova deploy ./dist

Browser signing (ENS)

ENS updates require an Ethereum wallet. Nova opens a browser page where you sign with MetaMask -- no keys to copy:

nova ens bafybei... --ens mysite.eth
# Opens signing page, waits for confirmation

Environment variables

For CI/automation:

| Variable | What it does | |----------|-------------| | NOVA_SESSION_KEY | Session key for storage auth | | NOVA_WALLET_ADDRESS | Wallet address for session key | | NOVA_PIN_KEY | Raw Filecoin private key (CI fallback) | | NOVA_ENS_KEY | Ethereum private key for ENS | | NOVA_ENS_NAME | Default ENS domain | | NOVA_RPC_URL | Custom Ethereum RPC | | NOVA_PROVIDER_ID | Storage provider ID |


Manage Storage

Each deploy creates pieces on Filecoin. Over time, previous versions accumulate. Nova helps you see what's stored and clean up what you don't need.

# See all stored content grouped by deploy
nova manage

# Preview what would be cleaned up (safe dry-run)
nova manage clean

# Remove old/duplicate versions
nova manage clean --really-do-it

# Keep specific versions, remove everything else
nova manage clean --keep bafybei...,bafybei... --really-do-it

Cleanup is safe by default -- nova manage clean only shows a plan. You need --really-do-it and a confirmation to execute.


What You Need

For demo mode: just Node.js 20.10+.

For permanent hosting:

| What | Why | Get started | |------|-----|-------------| | Node.js 20.10+ | Runs Nova | Download from nodejs.org | | MetaMask with FIL and USDFC | FIL for gas, USDFC for storage | Set up MetaMask for Filecoin, then swap for USDFC | | MetaMask with ETH (optional) | Gas for ENS updates | Same MetaMask wallet | | An ENS domain (optional) | Human-readable URL | Register at app.ens.domains |


Commands

| Command | What it does | |---------|-------------| | nova demo <url-or-path> | Deploy for free, no wallet needed | | nova clone <url> | Capture your site and deploy to Filecoin | | nova deploy [path] | Deploy a local directory or archive | | nova ens <cid> --ens <name> | Point an ENS domain to a CID | | nova status --ens <name> | Check what an ENS domain points to | | nova manage | List all stored content | | nova manage clean | Remove old/duplicate content |

Options:

| Flag | Commands | What it does | |------|----------|-------------| | --no-deploy | clone | Capture only, don't deploy | | --max-pages <n> | clone, demo | Max pages to capture (default: 50, 0 = unlimited) | | --screenshots | clone | Save before/after comparison | | --output <dir> | clone | Output directory | | --ens <name> | clone, deploy, ens, status | ENS domain (e.g. mysite.eth) | | --rpc-url <url> | clone, deploy, ens, status | Custom Ethereum RPC | | --provider-id <id> | clone, deploy | Storage provider ID | | --clean | clone, deploy | Remove all previous versions after deploy | | --calibration | clone, deploy, manage | Use testnet instead of mainnet | | --json | clone, deploy, ens, status, manage | Machine-readable JSON output | | --really-do-it | manage clean | Execute the cleanup | | --keep <cid,...> | manage clean | Keep specific CIDs, remove the rest | | --remove <cid,...> | manage clean | Remove specific CIDs only | | --keep-copies | manage clean | Keep duplicate uploads | | --dataset-id <id> | manage | Target a specific dataset |


CI / GitHub Actions

env:
  NOVA_SESSION_KEY: ${{ secrets.NOVA_SESSION_KEY }}
  NOVA_WALLET_ADDRESS: ${{ secrets.NOVA_WALLET_ADDRESS }}

steps:
  - run: npx filecoin-nova deploy ./dist --json

Use as a Library

import { deploy } from "filecoin-nova";

const result = await deploy({
  path: "./public",
  sessionKey: process.env.NOVA_SESSION_KEY,
  walletAddress: process.env.NOVA_WALLET_ADDRESS,
  ensName: "mysite.eth",
  ensKey: process.env.NOVA_ENS_KEY,
});

console.log(result.cid);        // bafybei...
console.log(result.ethLimoUrl);  // https://mysite.eth.limo

How It Works

  1. Capture -- Nova renders your site in a real browser, downloads every page and asset, and rewrites URLs to local paths. The result is a self-contained static copy.
  2. Deploy -- The copy is uploaded to Filecoin Onchain Cloud via filecoin-pin, stored onchain as content-addressed pieces. Your site gets an IPFS CID.
  3. Resolve -- If you set up an ENS domain, Nova updates its contenthash so anyone can visit yoursite.eth.limo. The content is served through IPFS gateways worldwide.

License

MIT