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

nodaddy

v1.0.0

Published

CLI tool for bulk domain transfers from GoDaddy to Cloudflare

Readme

nodaddy

No more GoDaddy. It's time to leave.

A CLI tool that automates bulk domain transfers from GoDaddy to Cloudflare, because life's too short to click through two different dashboards 800 times.


Inspired by @gregisenberg"I've never met someone under the age of 35 that uses GoDaddy" — and @code_rams discovering why everyone hates it: dark patterns, renewal traps, legacy tech... "the AOL of domains."


Before you start

API Keys — you'll need credentials from both providers:

Why Global API Key? Cloudflare's scoped tokens don't support Registrar Domains:Edit, which is needed for transfers. A scoped token with Zone:Edit + DNS:Edit works if you only want DNS migration without transferring the domain.

Disable Domain Protection + Domain Privacy — GoDaddy's Domain Protection + Domain Privacy block transfers and cannot be removed via API due to 2FA requests. You must disable both manually before running nodaddy:

To Disable Domain Protection 🔓

  1. To Disable Domain Protection go to: dcc.godaddy.com/control/portfolio
  2. Check the boxes next to the domains you want to transfer
  3. Click Protection Plans > Downgrade Protection Plans
  4. Select No Protection and Confirm Downgrade (requires SMS or authenticator verification)
  5. Wait for the change to take effect (can take up to 48 hours, usually ~15 minutes)

To Disable Domain Privacy 🔓

  1. To Disable Domain Privacy go to: dcc.godaddy.com/control/portfolio
  2. Check the boxes next to the domains you want to transfer
  3. Click Domain Privacy > Change to Off > Save
  4. Wait for the change to take effect (can take up to 48 hours, usually ~15 minutes)
  5. Now you should be ready to use nodaddy! 😄

nodaddy will check for this during preflight and skip any domains that still have Domain Protection enabled.

Transfer costs — each transfer includes a 1-year renewal at Cloudflare's at-cost pricing, billed to the card on file in your Cloudflare account. Make sure you have a payment method set up.

| TLD | Cloudflare | GoDaddy | |-----|-----------|---------| | .com | ~$9.15/yr | ~$22/yr | | .net | ~$10.50/yr | ~$20/yr | | .org | ~$10.00/yr | ~$22/yr |

Pricing varies by TLD. The CLI shows a cost reminder and asks for confirmation before initiating transfers.

Environment variables — optionally skip the interactive prompts:

export GODADDY_API_KEY=your-key
export GODADDY_API_SECRET=your-secret
export CLOUDFLARE_ACCOUNT_ID=your-account-id

# Global API Key (recommended — supports registrar transfers)
export CLOUDFLARE_API_KEY=your-global-api-key
export [email protected]

# OR scoped API Token (DNS-only migrations, no transfer support)
# export CLOUDFLARE_API_TOKEN=your-api-token

Install

npm install -g nodaddy

Or run directly:

npx nodaddy migrate

Usage

nodaddy migrate            # Interactive wizard
nodaddy migrate --all      # Skip domain picker, take them all
nodaddy migrate --dry-run  # Preview without making changes
nodaddy list               # List GoDaddy domains
nodaddy status             # Check transfer progress
nodaddy resume             # Resume interrupted transfers
nodaddy config             # View stored credentials
nodaddy config --reset     # Clear stored credentials
nodaddy cleanup            # Delete all stored credentials, contact info, and history

How it works

For each domain, nodaddy automates 8 steps:

  1. Preflight — Verify domain is active, >60 days old, TLD supported, Domain Protection off
  2. DNS backup — Export all records from GoDaddy
  3. Zone creation — Create Cloudflare zone
  4. DNS migration — Map and recreate records (A, AAAA, CNAME, MX, TXT, SRV, CAA, NS)
  5. Prepare GoDaddy — Remove privacy, disable auto-renew, unlock domain
  6. Auth code — Fetch transfer authorization code
  7. Nameservers — Point domain to Cloudflare's nameservers
  8. Transfer — Initiate transfer at Cloudflare

Registrant contact info is saved after first entry and reused on future runs — you won't have to type it again. Track progress with nodaddy status.

Rate limiting, concurrent batch processing (8 domains at a time), and state persistence are built in. If anything interrupts or fails, run nodaddy resume. GoDaddy's API often returns temporary 422 "resource lock" errors after recent dashboard changes — the tool automatically retries with backoff (up to ~105 seconds) so you don't have to babysit it.

When you're done transferring, run nodaddy cleanup to remove stored API credentials, contact info, and migration history from your machine.

Note: Domain transfers use undocumented Cloudflare Registrar API endpoints that are not part of Cloudflare's public API. These endpoints could change or break without notice. DNS migration uses the standard, documented API and is unaffected.

GoDaddy parking records and forwarding junk are automatically skipped. DNS records are created with proxied: false by default so your traffic routing doesn't change unexpectedly — the wizard gives you the option to enable Cloudflare proxying (orange cloud) if you want it.

License

MIT