About 15 minutes

Netlify Drop to BinHTML

Replace drag-and-drop deploys of one-off HTML reports with a publish call, so the workflow that generates the file also produces the link.

Do not migrate if

Migrating has a cost and it is not always worth paying. If one of these describes your situation, stay where you are.

  • The thing you are dropping is a real static site with multiple pages and assets.
  • You want a custom domain on the result.
  • You need build hooks, redirects, edge functions, or form handling.

Before you start

  • A BinHTML API key.
  • A list of the Drop sites that are really one-off generated reports, as opposed to actual sites.
  • The script or agent that produces the HTML, if there is one.

Steps

  1. 01

    Separate the reports from the real sites

    Go through your Drop deploys and split them: single self-contained documents on one side, multi-page sites with assets on the other. Only the first group should move. The second group belongs on a deployment platform.

  2. 02

    Publish one report through the API

    Take a representative report and publish it. Compare the rendering against the Drop deploy before going further.

    Publish a report

    Language: bash. Replace $BINHTML_API_KEY with a key from your settings.

    # Reads report.html from disk, publishes it, prints the share URL.
    jq -n \
      --arg title "Weekly report" \
      --rawfile html ./report.html \
      '{title: $title, visibility: "unlisted", sourceHtml: $html}' \
    | curl -sS -X POST https://binhtml.com/api/v1/artifacts \
        -H "Authorization: Bearer $BINHTML_API_KEY" \
        -H "Content-Type: application/json" \
        -d @- \
    | jq -r '.urls.share'
  3. 03

    Wire the call into whatever produces the file

    The value of the move is removing the human from the loop. If the report comes out of a script, a notebook export, or an agent run, put the publish call at the end of that process.

  4. 04

    Group recurring reports into a project

    If you were creating a new Drop site every week, publish into one project instead and share a single project link that indexes every run.

    Create a project share link

    Language: bash. Replace $BINHTML_API_KEY with a key from your settings.

    # One link covering every artifact published into the project.
    curl -sS -X POST https://binhtml.com/api/v1/projects/share \
      -H "Authorization: Bearer $BINHTML_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"projectName": "Weekly reporting"}'
  5. 05

    Delete the retired Drop sites

    Once the new links are circulating, remove the one-off sites so the deploy list reflects real projects again.

Verify the migration

Work through these before you remove anything from the old tool. A migration is finished when someone other than you has opened the new link successfully.

  • The report renders the same as it did on the Drop URL.
  • The generating process outputs a share URL without anyone opening a browser.
  • Recurring reports land in one project rather than creating new sites.

Known gotchas

A dropped folder is not one document

Drop accepted a directory. BinHTML takes one complete HTML file, so inline the assets first.

No custom domain

If the Drop URL was already being replaced by a domain, this is a site rather than an artifact and should stay where it is.

Questions about this migration

How do I migrate from Netlify Drop to BinHTML?

Swap the manual drop for an API call in the generating job, and stop creating a new site for every report.

How long does migrating from Netlify Drop take?

About 15 minutes. The steps on this page cover creating an API key, publishing one document to confirm the output, switching repeat publishing to version updates, and verifying the result before you retire the old links.

When should I not migrate from Netlify Drop?

The thing you are dropping is a real static site with multiple pages and assets. You want a custom domain on the result. You need build hooks, redirects, edge functions, or form handling.

Will the share link change when the content is updated?

No. Publishing a new version against an existing artifact id updates the content behind the same URL, so anyone already holding the link keeps working access.

Next steps