About 15 minutes for the first artifact
Tiiny Host to BinHTML
Move from uploading HTML files by hand to publishing them from code, with one stable link per artifact, version history, and expiry you control.
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 page is a real website that needs a custom domain and public search indexing.
- You publish by hand a few times a year and the upload flow is not costing you anything.
- You depend on site-shaped features such as hosted forms or page password protection.
Before you start
- A BinHTML account. Builder is free and covers the whole publishing workflow.
- An API key from the dashboard settings page.
- The HTML files you are currently uploading, or the script that produces them.
- curl and jq available in whatever shell or job will do the publishing.
Steps
01
Create an API key
Open dashboard settings and create a key. Store it as BINHTML_API_KEY in your shell profile, CI secret store, or agent configuration. It is sent as a bearer token on every publish call.
02
Publish one file to confirm the shape
Start with a file you have already uploaded to Tiiny Host so you can compare the rendered output side by side. BinHTML expects a complete HTML document, so the file needs a doctype or an <html> tag. Inline styles, inline scripts, and embedded data all survive as-is.
Publish an artifact and print its share URL
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'03
Record the artifact ID
The publish response includes the artifact id alongside urls.share. Keep the id wherever your job keeps state. It is what lets the next run update this artifact instead of creating a second one.
04
Switch re-uploads to version updates
This is the step that removes the manual work. Instead of uploading a replacement file, post a new version against the artifact id. Everyone holding the share URL sees the new content on their next refresh.
Publish a new version to the same URL
Language: bash. Replace $BINHTML_API_KEY with a key from your settings.
# Same artifact, new content. The share URL does not change. jq -n \ --arg label "$(date -u +%Y-%m-%d)" \ --rawfile html ./report.html \ '{label: $label, sourceHtml: $html}' \ | curl -sS -X POST "https://binhtml.com/api/v1/artifacts/$ARTIFACT_ID/versions" \ -H "Authorization: Bearer $BINHTML_API_KEY" \ -H "Content-Type: application/json" \ -d @-05
Set visibility and retention deliberately
Artifacts are unlisted and noindex by default. On Pro you can also make an artifact private, or leave it permanent. On Builder every artifact expires after three days, which is often what you want for a review link and a problem if you expected permanence.
06
Replace the old links, then retire the uploads
Update wherever the Tiiny Host URL was pasted, confirm the new link opens for someone outside your account, and only then remove the old upload. Keep the original files until you have verified the rendering.
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 artifact renders the same as the Tiiny Host version, including fonts, images, and any interactive controls.
- A second version published against the same artifact id does not change the share URL.
- Opening the share URL in a private browsing window works without signing in.
- The source download in the dashboard returns the HTML you sent.
Known gotchas
Multi-file uploads do not map one-to-one
If you were uploading a folder with separate CSS, JS, and image files, BinHTML wants one self-contained document. Inline the assets or embed them as data URIs before publishing.
External assets still need to be reachable
A document that loads a CDN stylesheet will look broken to anyone whose network blocks it. Self-contained documents are the reliable choice for a review link.
Builder artifacts expire after three days
That is the free plan behaviour, not a trial. If the link must outlive three days, publish it on Pro or plan to re-publish.
Questions about this migration
How do I migrate from Tiiny Host to BinHTML?
Replace the manual upload with a single authenticated POST that returns the share URL, then re-publish new versions against the same artifact so the link never changes.
How long does migrating from Tiiny Host take?
About 15 minutes for the first artifact. 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 Tiiny Host?
The page is a real website that needs a custom domain and public search indexing. You publish by hand a few times a year and the upload flow is not costing you anything. You depend on site-shaped features such as hosted forms or page password protection.
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
- API reference for every field and error code used above.
- Plan limits so a migration does not stall on a size or retention cap.
- All migration guides if more than one workflow is moving.
- Frequently asked questions for anything this guide did not cover.