Build with AI

How to build a creative studio landing page with Bolt

Stop renting your studio’s portfolio by the minute. Instead, start with our production-ready codebase. We provide the architecture for a high-performance, cinematic landing page. You simply use Bolt to customize the copy, swap the video assets, and tune the motion, all using plain English.

August 2026 · 46 min read · Updated September 2026

Bolt

$ Build a one-page site for a video studio: full-screen muted reel behind the headline, the featured film, an awards wall, services, the team, and a contact form that posts to an endpoint I will give you.

  • Sections built in the tab
  • Motion and weight tuned
  • Ready for you to review
You describe it, Bolt builds it in the browser
Start here

What a creative studio landing page actually is

One page, scrolled top to bottom, that answers a single question before a visitor decides anything else: are these the people I want making my film? It is a portfolio, a pitch, and a contact form wearing the same coat.

A studio site is not a product with users. Nobody signs up, nobody logs in, and nothing needs storing. Instead you have a stranger with a budget who arrived from an Instagram bio or a colleague’s message, who will spend a few seconds deciding whether you are serious, and who will either keep scrolling or close the tab. Everything on the page exists to earn the next screenful.

That makes the hard part unusual. There is no data model to get wrong and no permissions to leak. What is genuinely difficult is that the things making the page persuasive are the same things making it slow: a full-bleed film above the fold, high-resolution stills of your work, and motion on every section. The Web Almanac chapter behind the figure below also reports that on 76% of mobile pages the largest thing on screen is an image, which is the same slot a reel occupies here. You are asking a phone on cellular data to be cinematic. That trade-off is the whole engineering problem. It is also exactly what our codebase is built around. We’ve done the heavy lifting on the sections, the motion, and the responsive passes, so your time goes on the reel itself, and the guide below covers compressing it and giving it a still frame so it arrives fast, even on a bad connection.

The second difficulty is that you own every word. A template can hand you a services section. It cannot tell you what you sell, which three pieces of work to lead with, or what you are contractually allowed to show. Most studio sites stall because gathering the work and writing the pitch is hard enough. You shouldn’t have to fight with code, too. By starting with a complete, performance-optimized codebase and using your AI coding tool to handle the technical adjustments, you eliminate the engineering bottleneck. You spend your time where it matters: curating your best work.

The page is the theater

Here, the page is the theater. The visitor isn’t judging your web development skills. They are judging your video reel. The website’s only job is to get out of the way, load instantly, and present your work flawlessly on any screen.

The heaviest thing is the point of it

You cannot fix a studio page’s performance by removing the video, because the video is why anyone came. The work is compressing it, choosing a still frame to show first, and deciding what a phone on a bad connection gets instead.

Nothing to breach, and nowhere to hide

With no database and no logins, almost none of the usual failures apply. What is left is the two that do: a page too slow to be seen, and a contact form that quietly never reached you.

Front pages are the slow ones

45%

of mobile home pages pass all three of Google’s Core Web Vitals, against 56% for the pages behind them, from HTTP Archive’s Web Almanac, published January 2026 on July 2025 field data from real visitors.

almanac.httparchive.org · checked August 2026

What a studio page needs

The parts every studio page is built from

Almost every page in this category comes down to these six, in roughly this order, and each one is something you can ask your AI coding tool to build or rework in plain words.

01

High-impact hero section

A full-screen frame of your best work, one line that says what you make, and one button. The discipline is in what you leave out: a hero carrying three messages carries none, and a hero that takes six seconds to appear has already lost the visitor it was for.

02

Interactive video & showreel

One piece of work, properly presented, beats a grid of twelve thumbnails nobody clicks. Whether it plays from your own host or an embed changes the page’s speed, its privacy story, and how much control you have over what surrounds it.

03

Trust signals & client proof

Awards, festival laurels, client names, a number you can stand behind. This is the section that turns "nice reel" into "these people get hired", and the only rule is that everything on it has to be true.

04

Clear services & pricing ranges

Named services with a sense of scale (a day rate, a from-price, a typical project) so a visitor can work out whether talking to you is worth their time. Vagueness here reads as expensive, which filters out the people who would have said yes.

05

Team profiles & human context

Clients are buying who they will be in a room with. Faces, names, and one line each about what that person is actually for does more than another paragraph about your values.

06

Frictionless contact form

A short form, a visible confirmation when it sends, and somewhere real for the message to land. Every section above is spent getting a visitor here, which is why a form that silently fails is the most expensive bug on the page.

Build vs buy

Own the page or rent it by the minute

Most studios put their site on a hosted builder and never think about it again. What is worth noticing is what each of those builders charges you by, because it is never "a website", it is always one of the things your page is made of.

Build your own

Own the architecture outright. Download our complete codebase, and use your AI coding tool to adapt it in days, not quarters.

  • No meter on minutes of video, gigabytes served, or projects shown
  • Custom code is not a plan feature: the look can go as far as your taste does
  • Your reel plays from wherever you decide, at whatever quality you decide
  • Keep the frontend static and lightning-fast. Your contact form can post directly to a secure endpoint (like a webhook or serverless function), meaning you get the benefits of backend processing, like triggering an AI brief summarizer, without managing a database
  • Full ownership of the code: keep it forever, host it anywhere, and never pay a monthly subscription just to keep your portfolio online

Rent a hosted site builder

Squarespace · Framer · Format · Carbonmade

A hosted builder is live the same afternoon, with a designed starting point, video delivery you never think about, and a form that works on day one. What you accept is a meter and a ceiling.

  • Live in an afternoon: nothing to build, nothing to host, someone to email when it breaks
  • Video hosting handled for you, though on two of these four it is rationed in minutes: 30 minutes on Squarespace’s entry plan, and none at all on Format’s
  • Framer charges again for anyone else who edits the site: $20 a month per extra editor
  • Carbonmade counts projects instead: 8 on the entry plan, 50 on the next
  • Writing your own code is a plan feature on Squarespace, not a given: a code block and site-wide code injection start on the second tier
  • A custom domain is a paid upgrade on Framer, and comes with the annual plan on Squarespace
  • The bill never stops, and the page is not yours to take with you
SquarespaceNo price quoted - the pricing page would not show us its figures. Video storage is the published ladder: 30 minutes, then 5 hours, 50 hours, unlimited

The most likely place a studio ends up, and the one whose limits are worth reading before you commit a reel to it. Verbatim from the help centre, by plan: “30 minutes of video storage”, “5 hours of video storage”, “50 hours of video storage”, “Unlimited video storage”. Custom code is tiered too: “Code block - JavaScript and iframe code” and “Code injection - site-wide and per-page” start on the second plan, not the first. A free custom domain for one year comes with an annual plan.

support.squarespace.com · checked August 2026

Framer$0, then $10/mo (Basic) or $30/mo (Pro) with yearly billing - plus $20/mo per extra editor

The closest of the four to what this template does, since motion is its whole pitch. Two meters, though: the free plan gives you a Framer domain and 1 GB of bandwidth, and a custom domain needs a paid plan, bandwidth being an odd thing to ration on a site whose main asset is a film. The second meter is people: “Additional editors are $20 / month”, or $10 for someone who only updates content. The prices above are what the page shows with yearly billing selected. It does not display the month-to-month figures beside them, so we are not quoting a range we did not read.

framer.com · checked August 2026

Format$10-$15/mo billed annually, or $14-$36/mo month to month - hosted video runs 0, then 15, then 120 minutes

A portfolio platform rather than a site builder, and the clearest example in this set of a plan gate landing exactly where a video studio needs it: the entry plan hosts no video at all, Pro allows 15 minutes, Pro Plus 120. Note the billing spread, the widest here: Pro Plus is $36 month to month against $15 on an annual plan. Entry also excludes custom fonts and a free custom domain. Branded email is $100/year on top of any plan.

format.com · checked August 2026

Carbonmade$9.99/mo (8 projects), $14.99/mo (50 projects), $24.99/mo (unlimited) - monthly, or about 20% off annually

The fourth meter, and the one that reads oddest for a studio: how many pieces of work you are allowed to publish. Eight projects is a real ceiling for anyone with a decade of credits, so the plan you land on is decided by your archive rather than your traffic. All plans include a free carbonmade.com address and let you point your own domain at it.

carbonmade.com · checked August 2026

Rule of thumb: if the site is a formality (somewhere to send people who already know you, updated twice a year) rent one and spend the time on the work instead. If your site is how you get hired, if the reel is long or in more than one cut, or if you can already name the thing you want that a builder will not let you do, that is the case for owning it. The tell is whether you have ever described your own site as "fine".

No dev needed

Why build with Bolt

This page has no database, no logins, and no permissions to get wrong, so almost none of the hidden work that stalls a solo build applies to it. What is left is craft, and craft is not obviously less work: the same section rebuilt until the spacing stops looking accidental, a video that has to seem expensive and weigh almost nothing, and three passes: narrow phone to wide monitor, weight, and whether any of it is usable for somebody who cannot see it the way you do.

Bolt runs the whole of it in one browser tab, and on a page made of independent sections that suits how it bills: finish one, clear the context, start the next.

The build loop
1

Prompt

Describe the screen or rule you want, in plain language.

2

Preview

Watch the running app rebuild itself in the same tab.

3

Try it

Click through the real app, because the preview is the actual build rather than a mockup.

Refine

Ask for the next change, or fix what’s off.

Loop back to Describe

None of that needs an install or a terminal window, and the whole build happens in the tab GitHub just opened, one request at a time.

Three passesthat decide it

Responsive, weight, and accessibility are the three passes this page lives on. Each touches a different set of files, which makes them the natural points to clear Bolt’s context rather than carrying the whole project into every message.

Auto-committed to GitHub as you go

Once GitHub is connected, Bolt commits each working change on its own and pulls in anything you changed elsewhere. The two stay in sync without you typing a git command.

No secrets to configure on import

Bolt asks for environment variables when it imports a project. This one has none (no database, no auth provider, no key of any kind) so leaving that dialog empty is the correct answer rather than a step you skipped.

What it costs

Pay a designer, or do it with AI

A page with no backend has almost nothing to run. The whole cost is who builds it. Pay someone to design and build it, or describe what you want to an AI coding tool and do it yourself.

Hire a designer-developer

Custom build, from scratch
Designer-developer
~$6.5k-$26k
Form endpoint
Free tier · from $12.50/mo*
Hosting
$0 on a free tier
Build time
~130 hrs of their work

~$6.5k-$26k to build, then close to nothing to run

That band is our ~130-hour estimate at what the work actually goes for: freelance web developers in the United States run about $40/hr at junior level to $150/hr and up at senior, and agencies add another 20% to 40% for overhead and project management. Call it $50/hr at the bottom and around $200/hr for an agency. Note what you are buying at that price, though. A developer alone gives you a built page and no art direction. The reason a studio site costs what it costs is usually the person deciding how it should feel.

Build it with Bolt

From scratch, with Bolt
Bolt
Free (1M tokens/mo) to $25+/month (Pro, from 10M tokens)
Hosting
Free on Bolt’s own hosting, or Netlify
Your time
~63 hrs

Free for a first look. A real build costs from ~$25/month on Pro once it outgrows the entry token rung, and climbs from there with usage

Bolt bills by tokens, and the sticker price understates what a real build costs: it reloads your whole project as context on every message, so the entry Pro rung (10 million tokens for $25/month) burns down faster than the number implies. Budget for a top-up or a higher rung on a multi-session build, not the $25 floor. Lean on Bolt’s own token-saving tools (clearing context between features, pointing a prompt at specific files) to slow that burn.

* Two honest ways to make a contact form reach you, and both start free. A hosted form endpoint is the no-server route: Basin’s free tier covers one endpoint and 50 submissions a month with basic spam filtering, and its own page notes that filtered spam does not count against that allowance. Paid plans start at $12.50/mo billed yearly for 250 submissions. If you would rather own the whole path, one small function of your own plus an email service does it. Resend sends 3,000 emails a month free, capped at 100 a day. A studio fielding a few inquiries a week fits inside either free tier indefinitely.

Either way the page is yours, and nothing about it is metered: not the length of your reel, not the number of projects on it, not how many people are allowed to edit it. The difference is who does the work: pay someone up front, or describe what you want and build it yourself.

Prices and rates from usebasin.com, resend.com, developex.com and bolt.new, checked August 2026.

Plan first

Decide before you build

Six decisions, none of them technical, and every one of them cheaper to make now than to unpick from a finished page. This is where studio sites actually stall.

01

Your 10-second elevator pitch

Write the line that goes under the hero before you build the hero. A sentence a stranger could repeat to a colleague, not a tagline. If you cannot get it under about twelve words, the problem is the positioning rather than the copywriting, and no amount of motion will cover it.

02

Portfolio selection & NDA clearance

Pick the two or three pieces that represent what you want more of, not what you are proudest of. Then check the paperwork: unreleased campaigns, client NDAs, and music licences all decide what may sit on a public page, and finding out after launch is the expensive order to do it in.

03

Video hosting & page speed budget

A short muted loop you host yourself, or an embed from a video platform. Self-hosting gives you control of the quality and no third-party scripts. An embed gives you adaptive quality and someone else’s bandwidth bill. Either way, decide the budget in megabytes now, because that number quietly sets how fast the page can ever be.

04

Single call-to-action & lead routing

An inquiry form, a booking link, or a plain email address. Pick one. A page offering three ways to get in touch gets fewer messages than a page offering one. Then decide where a submission goes and who is responsible for answering it, since an unread inbox is the same as no form.

05

Verifiable social proof

Awards, laurels, client logos, view counts. Decide the standard before you fill the section: a logo you may only show with permission, a festival you were selected for rather than won, a number from one unusually good campaign. A studio page trades entirely on credibility, and one claim a visitor can disprove costs more than the whole section earns.

06

Mobile playback & motion rules

Motion is why this kind of page works and also why some people cannot use it. Decide up front what happens for a visitor whose system says they prefer reduced motion. The content should still arrive in the same order, just without the movement. Settle whether the hero video is allowed to autoplay on a phone at all.

Approaches

Comparing your build options

Your starting point decides how much of this is craft and how much is scaffolding. The same page three ways: by hand, from a bought theme, or described to Bolt one section at a time in a running preview.

~130 hrsBuilding by hand

The sections go up in a week. What takes the rest of the time is everything after that: getting a video hero to arrive fast enough that nobody leaves before it plays, making reveal animations feel deliberate rather than twitchy, holding all of it together from a narrow phone to a very wide monitor, and keeping a dark, animated page readable for someone who cannot see it the way you do.

~100 hrsPremium theme or UI kit

This is the one build in our catalogue where a bought theme genuinely gets you a long way, because this build has no backend to be missing. What it cannot hand over is the look, and a studio selling taste has a specific problem with a theme other studios also bought. You still own the reel, the motion, the speed, and every word, and you spend some of the time you saved fighting a structure that assumed different sections.

~63 hrsBuilt with Bolt

Describe a section and the running app rebuilds itself in the same tab, so you are always looking at the real thing rather than a rendering of it. Bolt reloads the whole project as context on every message, which makes a page of self-contained sections unusually well suited to it: finish one, clear the context, start the next.

Interactive calculator

Estimate your exact build timeframe

Untick the sections you do not need and the three passes at the bottom stay ticked for a reason. They are where a page like this is won. The total is our own estimate, not a quote.

What your landing page needs

Your estimate

63 hrs

start to finish

Based on the 6 of 6 features you’ve selected, plus ~4h of groundwork. Toggle any on the left to watch the number move, and open the groundwork row to untick what you have already, such as a database that is already running or going live if you are only building a mock-up for now.

A rough estimate, not a quote. Real time depends on how much you customize and how clean your data is.

Setting up your workspace

Let’s set up the tools you need

Bolt cannot open a .zip, so a GitHub repository has to exist before Bolt does. That is genuinely step one rather than housekeeping. After that: an account and a plan. No database, because there is nothing on this page to keep.

1

GitHub account

Cost: Free

Bolt has no upload button for a folder or a .zip, and the only way to open a project is to import a repository, so a home for the code has to exist before Bolt does. Sign up and create a private repository, then push your project’s files to it.

Create a free GitHub account
2

Bolt account

Cost: Free

Sign up at bolt.new and connect the GitHub account from the step above. Once it’s linked, you pick a repository to import and land straight in a live preview, with nothing to install.

Sign up for Bolt
3

Bolt subscription

Cost: Free (1M tokens/mo), then from $25/month (Pro)

Free gives you 300,000 tokens a day, capped at 1 million a month, which is enough to try Bolt rather than to finish a real app. Pro starts at $25/month for 10 million tokens (unused ones roll over one extra month), but Bolt reloads your whole project as context on every message, so a multi-session build tends to burn past that entry rung faster than the sticker number implies.

Compare Bolt plans
4

Somewhere for the form to go

Cost: Free to start

The one service this build connects to. A hosted form endpoint is the no-server route: you point the form at a URL and they email you each submission, spam filtering included. Basin’s free tier covers one endpoint and 50 submissions a month. If you would rather own the whole path, one small serverless function plus an email service does it instead, and Resend sends 3,000 emails a month free. Either way nothing needs setting up before step 01. You need it by the step that builds the form.

Compare Basin’s plans

The GitHub step comes before Bolt exists for you at all. Nothing after it gets installed, and the only outside service in the whole build is wherever the form sends to.

Step by step

Build your studio page, one section at a time

Bolt reads your whole project on every message, so the cheapest way to build a page of independent sections is one at a time with the context cleared between them. Use Plan Mode before anything structural, and check the live preview after each change. It is the running app, not a picture of it.

  1. 01

    A repository first, then the project

    Bolt has no upload button, so the code needs a home before Bolt can open it. Once imported, the first prompt is worth spending on the theme rather than on a section.

    PromptSet up the project
    This is a single-page marketing site for a creative video studio, with no backend at all (no database, no authentication, no stored data) so please do not connect one or offer to. If you ask me for environment variables on import, there are none. Start with the theme and nothing else: one file that defines a near-black ground, a light foreground, a single muted grey for secondary text, and two accents. A display face for headings and something ordinary for body copy. Then show me an empty page with only the fixed nav on it, so the palette is approved before any section depends on it.

    Bolt asks for secrets on some imports. This project has none, and leaving them blank is correct rather than a step skipped.

  2. 02

    Plan the whole page, then build it plain

    Talk the structure through in Plan Mode before Bolt writes anything. It is the cheapest conversation you will have with it, and structure is what every later prompt sits on top of.

    PromptLay out the page
    Use Plan Mode for this one before writing any code. I want the page as full-width stacked sections in this order: hero, featured work, awards, about, services, team, contact, footer, each with an id so the nav scrolls to it, and the nav collapsing to a hamburger on small screens. Tell me your plan for the section components and the shared layout first. Then build it deliberately plain: real headings, placeholder paragraphs, grey blocks where images and video will go. I want to scroll it in the preview and settle the order before anything is styled.

    Planning first is also the cheapest way to keep this build inside its token budget, since a structural rewrite later means reloading and rewriting everything.

  3. 03

    The hero, in its own context

    Clear the context before this one. The hero is the page’s heaviest and most-viewed section, and it deserves Bolt’s full attention rather than sharing it with seven sections of placeholder text.

    PromptBuild the hero
    Clear the context first, then build only the hero. A full-screen background video (muted, looping, autoplaying) under a dark overlay so text on top stays legible over any frame, with a still image standing in until playback can actually begin. Above that: a headline, a supporting line, one button. The nav is transparent while I am at the top of the page and takes a solid background once I have scrolled about 50px. And handle the reduced-motion case properly rather than as an afterthought: no video at all for those visitors, the still instead, nothing else moved. Put a placeholder file in the public folder and tell me where mine goes.

    Watch the preview, not a screenshot of it. Autoplay behaviour is one of the things that differs between a mock-up and a running page.

  4. 04

    Four sections, then clear the context again

    Work, awards, services and team share a shape, so they belong in one prompt with one shared reveal animation. When they are done, clear the context before the form. Nothing in the form needs to know about the awards wall.

    PromptBuild the work and proof sections
    Point this at the four section files rather than the whole project. Featured work: one large video, with the project name, the client, and a short write-up alongside, put together so an embed and a file of my own can be swapped without touching the layout. Awards: a responsive wall of laurels, each award’s name and year as text rather than baked into an image. Services: one card each, carrying a name, a sentence, and space for a from-price. Team: photographs in a grid, each with a name, a role, and one line. Then a single shared reveal component (a short fade and rise on entering the viewport, off entirely under reduced motion) used by all four, rather than four animations that will drift apart.

    Point the prompt at the four section files rather than the project, and it costs a fraction of what a whole-project pass would.

  5. 05

    The form, with its destination in secrets

    The one place this build touches the outside world. A public form endpoint URL is not really a secret, but the habit of putting configuration in Bolt’s secrets rather than pasting it into the chat is the one worth keeping for whatever you add next.

    PromptBuild the form and connect it
    Build the contact form (name, email, what they want made, a message) checked before it submits, with inline errors that name the actual problem. It posts to a hosted form endpoint, and I will put that URL in the secrets settings rather than pasting it here, so read it from there. Treat a failed send as carefully as a successful one, and leave a confirmation on the page long enough to be read. Add a hidden honeypot field and drop any submission that fills it. Do not add a database. If any part of this would need a real secret inside code the browser downloads, stop and say so rather than doing it.

    Submit the form yourself and check your inbox. A confirmation message on screen only proves the request left the page.

  6. 06
    Destination

    Three passes, one context at a time, then publish

    Three passes on weight, contrast and sharing, then Bolt publishes it. The GitHub repository has been keeping up on its own throughout, so there is already a copy of everything outside the tab.

    PromptTune it
    Three passes, one at a time, and clear the context between them. Each only needs the files it touches. Pass one, weight: give me a table of every image and video with its size, re-encode the stills to a modern format at display dimensions, hold back anything not visible on arrival, leave the hero as the single eager load, and if the video itself is the problem say so rather than optimising around it. Pass two, contrast and keyboard: every text colour checked against its background on this dark palette, focus rings left visible, the tab order walked end to end, and the reduced-motion version confirmed complete. Pass three, the shared link: title, description, and an Open Graph image so a pasted URL renders as a card.
    PromptPublish it
    Publish the site and tell me what my options are (Bolt’s own hosting by default, or Netlify if I would rather manage the domain there) then how to connect my own domain either way. After that, tell me what to check on the published URL rather than in the preview, starting with opening it on a phone with wi-fi off and timing how long the hero takes. Finish with what to improve next in priority order.

    Check the automatic commits in GitHub once before you finish. They are the only copy of this page that does not depend on the tab.

Security & privacy

No databases to leak, no servers to hack

Static studio sites have no databases, logins, or servers to hack. Here is how your site stays ultra-secure and how to protect sensitive client data.

Most of what usually goes wrong cannot

No accounts means no password handling, no session hijacking, and no privilege escalation. No database means nothing to inject into and no access rules to get wrong. No server of your own means nothing to patch. Genuinely, structurally, this build starts safer than anything else in the catalogue.

Everything in the bundle is public

This is the one people get wrong. A static site ships every file it is made of to the visitor, so anything you paste into the project is readable by anyone who opens the page source: an API key, a private analytics token, the unlisted link to a client’s unreleased cut. "There is no backend, so nothing is secret" is the accurate way to think about it.

The form is the only thing that accepts input

One form, and it is the entire input surface of the page. Validate on the way in, keep the fields to what you will actually read, and remember that whatever the visitor types travels to whoever is receiving it, which is worth knowing before you add a field asking for a budget.

Spam is not a maybe

A public form on a public page finds bots within days, not months. A honeypot field that humans never see, or your provider’s own filtering, or a challenge on submit. Pick one before the address is indexed rather than after the first hundred messages about search-engine optimisation.

Whoever receives the form now holds client data

Names, email addresses, and a description of a project somebody has not announced yet. If a hosted form service is receiving that, it is processing personal data on your behalf, and you are the one answerable for it. Check where it is stored, how long for, and whether you can delete it on request. A 30-day retention window is a feature, not an oversight.

An embed is somebody else’s code on your page

A video embed from a third-party platform loads their scripts and can set their cookies against your visitors. That is usually a fair trade for adaptive playback, but it is the reason a page with no backend can still need a cookie notice, and the reason a self-hosted loop is the quieter option where it will do.

HTTPS, then two headers worth having

Every host in the next section gives you a certificate free, so there is no excuse for a page collecting inquiries over plain HTTP. Beyond that, a content security policy that names the video platform you actually embed, and a referrer policy, are twenty minutes that stop your page being framed or quietly repurposed.

No backend still means a supply chain

The page is static once built, but building it pulls in packages, and a compromised one ends up in the bundle you publish. Keep dependencies current and check what a new animation library brings with it. This is the one ongoing maintenance job a page like this actually has.

PromptAudit what you actually published
Read this project the way a stranger reading its published files would. List every value that ends up in the built bundle and should not be public: keys, tokens, private URLs, anything left in a comment. Then list every request the finished page makes to a third party, what each one sends, and any cookie it sets. Finally, tell me what the contact form does with a submission, where that submission ends up, and what currently stops a bot filling it in a thousand times.

Run this before you publish. The whole security surface of a page like this is what you shipped and what you embedded, so an audit that reads both covers nearly all of it.

The one rule that matters: a static site has no secrets: if a value is in the project, treat it as published. Anything that must stay private belongs behind a function on a server, not in the page.

Workflow rules

What speeds the build, and what slows it

Speeds the build

  • Using Plan Mode to talk a change through before Bolt writes any code
  • Pointing a prompt at specific files or functions instead of the whole project
  • Clearing Bolt’s context between unrelated features, so each prompt has less to process
  • Checking the live preview after each change, since it’s the running app itself
  • Reading the automatic GitHub commits later as a real history, not just a backup

Slows the build

  • Asking for a whole app in one prompt instead of one screen or rule at a time
  • Leaving context loaded from a finished feature while starting an unrelated one
  • Editing the repository directly on GitHub and expecting Bolt to pick it up before its next 30-second check
  • Approving several prompts in a row without checking the live preview after each one
Before you open Bolt

GitHub: the way in, not just a backup

Bolt can’t open a .zip file, so the only way to start a project is to import a GitHub repository. Every other tool in this set treats GitHub as optional, but Bolt treats it as step one.

Why this comes before Bolt

There’s no upload button for a folder or a .zip. Opening a project in Bolt means pointing it at a repository that already exists on GitHub, so a home for the code has to exist first.

Create a free account, then a repository

Sign up, then create a new, private repository for your project and push your files to it. Keep it private, and never commit secret keys or passwords.

Create a free GitHub account

Import it into Bolt

On bolt.new, connect your GitHub account, choose the repository from the list, and click “Import repository”. The project opens straight into a live preview.

After that, it stays in sync on its own

Bolt commits each working change back to that repository automatically, and checks GitHub every 30 seconds for anything pushed from outside it. A commit is a snapshot with a short note, like “added the home page,” and Bolt writes those notes for you.

Version control and GitHub, Bolt docs

It’s also how you leave, if you ever want to

The repository Bolt is syncing is a real, ordinary codebase: clone it, hand it to someone else, or keep working on it directly on GitHub whenever you’re away from the browser tab.

Going live

Choosing the right hosting for a video-led page

The finished site is a folder of files, so it runs on almost any host, free tiers included. The two things worth comparing here are how much traffic a free tier really allows and how close the files sit to your visitors, because the page is mostly video.

HostBest forNotesFree tier
VercelOne-click deploysConnect the project and it publishes itself. A standard Vite build, so nothing to configure. Read the plan terms before you settle: the free Hobby tier is for personal, non-commercial projects, and a studio page selling services is a commercial one, so it belongs on Pro from $20/user/mo.Pro from $20/user/mo (Hobby is non-commercial)
NetlifyDrag-and-drop or GitConnect the repository or drag the built folder in. Handy here for a second reason: it can receive form submissions itself, which is one fewer service to wire up if your volume is small.Free tier
Cloudflare PagesCheapest at scaleServes the files from wherever is nearest the visitor, which matters more on this build than on most. The heaviest thing on the page is a video, and how far it has to travel is most of how long it takes to start.Generous free tier
GitHub PagesFree Git-based hostingPublishes straight from your repository, with one small tweak so in-page links behave. Unusually, this is the one build in our catalogue where the free-only-from-a-public-repo catch costs you nothing, because no keys in the project can be exposed, though the unreleased client work in it may be its own reason to keep the repository private.Free from a public repo only
Firebase HostingSimple setup, Google stackOne setup, after which publishing is a single command from your machine. Mainly worth choosing if the rest of your tooling already sits in Google’s stack. Nothing about this page needs anything it offers.Free Spark tier
AWS Amplify HostingTeams already on AWSConnect the project in the AWS console. One routing setting makes in-page links work. Worth it mainly if your video already sits in the same account.Free tier (build + hosting)
SurgePublish from the terminalOne command publishes the built folder, with no repository needed. Genuinely useful for putting a work-in-progress in front of a client this afternoon.Free - unlimited publishing
DigitalOcean App PlatformDigitalOcean usersConnect the project and it builds and serves the site for you. Fine, and rarely the reason to choose it unless you are already there.Free - 3 static sites, 1 GB/mo transfer

Any of these will serve the page. Two things to check rather than assume: whether the free tier permits commercial use, and what its bandwidth allowance is. A hero video changes that arithmetic completely, and a page that goes mildly viral is exactly when you find out. Read the plan terms for the host you pick, not just the headline price.

The failure to expect on launch day is a beautiful page that takes eight seconds to appear, not a broken build. Your video was fast on your laptop because it came off your own disk. Before you publish: check the file size of the hero video and get it into single-digit megabytes, give it a still frame to show while it loads, then open the published URL on an actual phone on cellular data with the wi-fi turned off. That last step is the one people skip, and it is the only one that tells you what a visitor gets.

The two off-site pieces

No database here, but two things do live elsewhere

Nothing about this page needs a backend. What it does need is somewhere for a form submission to go, and a decision about where the film plays from.

ServiceBest forNotesFree tier
Hosted form endpointGetting the form to reach youPoint the form at a URL the provider gives you and they email you each submission, with spam filtering included. No server, no key in the bundle. Basin’s free tier covers one endpoint and 50 submissions a month, which outlasts most studios’ inquiry volume.Free - 1 endpoint, 50 submissions/mo
Your own function + an email serviceOwning the whole pathOne serverless function on the host above, plus an email API, and the submission never touches a third-party form service. More control, one more thing to maintain. Resend’s free tier sends 3,000 emails a month, capped at 100 a day.Free - 3,000 emails/mo
The video itselfThe reelEither a compressed file served by your host with the rest of the page, or an embed from a video platform. The file is quieter and fully yours. The embed gives you adaptive quality on bad connections and brings a third party’s scripts with it. Both are free at this scale, and the choice is about control rather than money.$0 either way

Neither of the first two stores anything you would call a database. They move a message from your page to your inbox, and that is the whole of this build’s server side.

AI workflows

Add AI capabilities in one simple step

Securely route your AI API keys through a lightweight serverless function. Use simple prompts to automatically summarize incoming client inquiries into 10-second briefs.

One function first, because there is no server

Everything else here needs somewhere to keep an API key, and a static page is the one shape that has nowhere. One serverless function on the host you are already using is the whole backend this page will ever need.

PromptOne function first, because there is no server
Add a single serverless function to this project (the smallest one my host supports) that reads an AI provider key from an environment variable, accepts a short JSON request, calls the model, and returns the text. Do not let the key reach the browser bundle, keep the function to one file, and show me how to set that environment variable on my host rather than in the repository.

A brief you can read in ten seconds

Inquiries arrive as a paragraph of free text. Turned into a few labelled lines (what they want made, roughly when, roughly what budget, whether they named a reference) you can triage a week of messages in a minute instead of reading each one twice.

PromptA brief you can read in ten seconds
When the contact form is submitted, send the message text through the ai function and have it return a short structured summary: the deliverable, the timeline, any budget mentioned, and any references named, with "not stated" where the message does not say. Include that summary above the original message in whatever reaches my inbox, and never in place of it.

Alt text and captions for everything you show

A page built from images and film is the hardest kind to describe and the most worth describing, for the visitor using a screen reader and for the search engine reading the same text. Doing it by hand is why it never gets done.

PromptAlt text and captions for everything you show
Go through every image and video on the page and draft alt text for each one (what is actually in the frame, in a sentence, not the file name) plus a caption track for any video that has speech. Put them in a single list I can edit before you write any of it into the code, since I know what the work is and you are guessing.

Headline variants you can actually test

The line under the hero does more work than anything else on the page, and it is usually the first thing anyone writes and the last thing anyone revisits. Five rewrites in your own voice, judged side by side, is a better use of an afternoon than another pass on the spacing.

PromptHeadline variants you can actually test
Read the whole page, then write five alternative versions of the hero headline and its supporting line: same claim, different emphasis: one leading on the craft, one on the outcome for the client, one on the kind of work we want more of, one shorter than everything else, one that names our niche outright. Keep each under twelve words and match the voice already on the page.

Pick a lighter model for the high-volume prompts above and save a stronger one for wherever the reasoning actually matters. That is the same token-budget logic as the rest of this page, applied to the app’s own AI calls instead of the build itself. When Bolt flags a missing secret, add the key through its secrets settings instead of pasting it into the chat, and keep every AI feature behind one server-side function so there’s only one key to manage.

Ready-made option

Get a head start with our template

The guide above builds this page from nothing. Prefer to start from a finished one? Our template ships every section already built and animated, so your time goes on your work and your words.

Creative Studio Landing Page

The exact landing page this guide builds, packaged so you can open it, point it at your own backend, and make it yours from there. A one-page landing for AI video tools and creative studios, built to explain what you do and turn visitors into clients. A cinematic hero, your work and awards, services, a team grid, and a contact form flow in a single scroll - with strong calls to action and nothing to set up on the backend.

React 18ViteTypeScriptTailwind CSSFramer Motion
Out of the box

The key benefits of starting with a template

The slow parts (the motion, the responsive passes, the dark theme that stays readable) are already done and tested on real devices. What is left is the part only you can do.

Building the page from scratch

~63 hrs

Opening the template, already built

~1 hr

~62 hrs of building you skip

These measure different things deliberately: the first is building the page, the second is opening and running one that already exists. Replacing the demo content is time you spend either way, so it is counted on neither side, and on this template that job is bigger than most. The hero video points at our own storage bucket, six service images come from a stock library, the footer carries a placeholder address, and the contact form does not send yet. All four have to be dealt with before launch, and the guide above says how.

A page that already moves

Seven sections in one scroll (hero, featured work, awards, about, services, team, contact) with scroll-reveal animation and a glass-card treatment already tuned, rather than a blank file and a plan to tune them later.

Nothing at all to configure

No database, no keys, no environment file, no accounts to create. Install the dependencies, start it, and the page is running, which is genuinely rare and is the whole reason this template is quick to get live.

Tested on real devices

It holds together from a narrow phone to a wide monitor, checked on hardware rather than by dragging a browser window narrow. That is a week of fiddly work you inherit finished.

Clean code that is easy to extend

React and TypeScript with a full component library already installed and mostly unused, deliberately, so the next section you ask your AI coding tool for has parts to build from instead of needing new ones.

Customer story

From founders who build on our templates

As an agency we live or die by clean handoffs. The code is structured well enough that we restyle, wire in the client’s data, and ship - no untangling someone else’s mess.
Matt GrahamMatt GrahamFounder & CEO, RapidDev
Got questions?

Common questions

No, and this is the thing to know first. A form on a page with no backend has nowhere to post to until you give it somewhere, so wiring an endpoint is a real step in the build rather than a detail. Our template ships the form with its submit stubbed out (it waits a second, clears the fields, and sends nothing) and as shipped it shows no confirmation either, because the component that displays the "message sent" notice is never mounted. Both are quick fixes and the guide above covers them, but nobody should discover them from a visitor asking why they never heard back.

None of them. There is no data to store, nobody to sign in, and no environment variables to set on your host, which is why this page can go live on a free tier in an afternoon. The only service you connect is whatever receives your contact form, and both of the options above start free.

Aim for single-digit megabytes, muted, a few seconds long, and looping. It is wallpaper that moves, not a film. Give it a still frame to display while it loads so the page is never blank. Serving the file from your own host keeps it fully yours and loads no third-party code. An embed from a video platform gives you adaptive quality on a poor connection and brings their scripts with it. The featured film further down the page is the one that belongs on a video platform, since that is the one people actually watch.

It can, and the mechanism is worth understanding rather than fearing. Google measures how long the biggest thing on screen takes to appear, and on this page that is your hero. The figure at the top of this guide is the shape of the problem: fewer than half of mobile home pages currently pass all three of those measurements. The fix is not removing the video but a compressed file, a still frame shown immediately, and nothing else competing for the first moment of the page.

Every operating system lets a visitor say they prefer reduced motion, usually because movement makes them ill, and a browser passes that preference to your page. The right response is that all the content still arrives in the same order and the same place. It simply appears rather than sliding in, and the hero shows its still frame instead of playing. That is a handful of lines, and it is the difference between a page somebody can use and one they have to leave.

It can be, and it takes deliberate work. Dark themes fail contrast in a specific way: mid-grey text on near-black looks refined on a calibrated monitor and disappears on a phone in daylight. Check the contrast of every text colour, keep focus outlines visible rather than styling them away, caption anything with speech, and make sure the whole page can be reached with a keyboard in a sensible order. It is one of the ticked passes in the estimator above for exactly this reason.

Close to nothing. Static hosting is free on several of the hosts listed above, subject to their plan terms, and whatever receives your contact form has a free tier that comfortably covers a few inquiries a week. If you add one of the AI features, you pay the model provider for the text you actually send it. There is no per-project, per-minute, or per-editor charge anywhere, because there is no platform in the middle to charge you.

Yes, and this is the ordinary reason a one-pager grows up. Adding routes and a second page is a described change rather than a rebuild, and the same is true of a blog, a case-study page per project, or a version of the site in another language. Worth knowing before you start: a single page and a multi-page site want their navigation built differently, so if you already know a case-study page is coming, say so up front.

Yes, on every host above, with a free certificate in a few clicks. Do it before the address goes anywhere (into your Instagram bio, your email signature, a pitch deck) because moving people from a host’s subdomain to your own domain later means chasing every place you printed the old one.

No, and this is the sharpest contrast with renting the page. What you end up with is an ordinary folder of files built from ordinary code: move it between hosts in an afternoon, hand it to a developer, keep it through the next rebrand. Nothing about it depends on a platform staying in business or keeping its current pricing.

No. You describe what you want in the chat and Bolt writes the code and shows it running in the same tab. The one extra step Bolt asks for that other browser tools don’t is a GitHub account, since that’s how a project gets in. The setup section above covers it.

Bolt only opens projects from a GitHub repository, and it offers no upload button for a folder. Once it’s imported, Bolt keeps the two in sync automatically, so the extra step up front replaces a manual export later.

Free resets daily, and a paid plan’s monthly allotment resets on your billing cycle (unused Pro tokens also roll over one extra month). If you hit the cap mid-session, what you’ve built stays exactly as it is. You wait for the reset or buy more tokens to keep going right away.

References

Sources checked August 2026
  1. 01Performance chapter (Core Web Vitals by page type), Web Almanac 2025, HTTP Archive. almanac.httparchive.org (published January 2026)
  2. 02Choosing the right plan (video storage, code access), Squarespace Help Center. support.squarespace.com
  3. 03Pricing plans and features, Squarespace. squarespace.com
  4. 04Pricing (site plans, editor seats), Framer. framer.com
  5. 05Plans and pricing (hosted video by plan), Format. format.com
  6. 06Pricing (projects by plan), Carbonmade. carbonmade.com
  7. 07Pricing (free tier, submission limits), Basin. usebasin.com
  8. 08Pricing (free tier, sending limits), Resend. resend.com
  9. 09Web developer hourly rates 2026 (freelance and agency benchmarks). developex.com
  10. 10Pricing (Free, Pro, Teams), Bolt. bolt.new
  11. 11Version control and GitHub, Bolt docs. support.bolt.new
  12. 12What is Bolt Cloud?, Bolt docs. support.bolt.new
  13. 13Netlify deployment (and Bolt hosting by default), Bolt docs. support.bolt.new
  14. 14Maximizing token efficiency, Bolt docs. support.bolt.new

This guide is general information. Third-party prices, plan limits, and market rates are quoted from the sources above and were last checked on the date shown. Vendors change them without notice, so confirm before you budget. Where a vendor’s own page would not show us its prices we quote no figure for it rather than borrowing one from elsewhere, and say so in the comparison. Build hours and the cost estimates derived from them are our own estimates, not quotes. Bolt is a product of StackBlitz. Verify current capabilities and pricing before relying on them.