Deploy a landing page
A one-page landing for a product or an idea, on the free plan.
The landing-page-starter template is a one-page
landing in plain HTML and CSS: a hero, three benefits, how it works, a
place for a screenshot, an FAQ, a sign-up section and a footer. There is
no build step and no JavaScript; the FAQ opens and closes with the
browser's own <details> element. Every word is a
placeholder for yours.
In a hurry? Open the deploy link to see the template online as it ships. To put your own words in, follow the steps below.
1. Make your own copy
On the template's GitHub page, click Use this template and create a repository in your account. Public or private both work; a private repo needs the GitHub connection.
2. Deploy it
- Pick your copy. Open the dashboard, connect GitHub, and pick the repo you just made.
- Leave App size as it is. The free plan is enough.
- Skip variables and secrets. The page needs none.
- Click Deploy.
Dockhold builds the template's Dockerfile, whose one line
that matters is serve -l $PORT ., and the page goes live
at https://<your-app>.dockhold.app with HTTPS
handled for you. Every later push to your main branch redeploys. The
template's README, AGENTS.md and tests stay out of the
site.
3. Put your words in
Every placeholder is in index.html. Search for
"Your product" and work down the page. The <title>,
the description and the link preview tags at the top are what search
results and chat apps show, so change those too.
Your AI coding tool can do it for you: describe your product and ask it
to fill in the page. The template's AGENTS.md tells it
where everything is.
4. Choose where sign-ups go
Replace [email protected] with your own address. It
appears in the FAQ, the sign-up form and the
Email us instead button. With nothing else set up, both
the form and the button open the visitor's email app, addressed to you.
To collect emails in a form service instead, paste its endpoint into the
form's action, where the comment above the form says, and
set method="post". The field is named email.
<form class="signup-form" action="https://your-form-endpoint.example" method="post">
Keep the Email us instead button next to it. It is a
plain mailto: link, so visitors can still reach you if the
form service is down.
Make it yours
- Change
--accentat the top ofstyle.css. The dark colours below it follow the visitor's system setting. - Save a screenshot next to
index.htmland replace the drawing in the "See it" section with an<img>, as the comment there shows. - Point the Privacy and Imprint links in the footer at your own pages. A new page is another
.htmlfile in the same folder, such asprivacy.html. - On a paid plan the page can live on your own domain too. See custom domains.
Troubleshooting
- The sign-up button does nothing: the visitor has no email app set up. Point the form at a form service (step 4), so sign-ups work in the browser.
-
The link preview shows the old words: chat apps and
social sites keep a preview for a while. Check the tags at the top of
index.htmlwere pushed, then ask the site to refresh its preview. -
A picture 404s: use a relative path
(
./screenshot.png) and push the file with the page.
Next
- Deploy a static site, for a site of your own files
- All templates