Build pipeline · Carpenters & Joiners
Carpenters and joiners: a site you can deploy, not just edit
If the only way to change your site is to edit it live on a Tuesday afternoon, every change is a gamble you cannot measure.
The short answer
Give a joinery site a deploy path before you give it a performance target, because you cannot safely tune what you can only edit live. Full SSH access with Git and Composer comes on every plan, and staging clones through WordPress Toolkit give you somewhere to break things.
With that in place the measurement discipline is simple: clone, change one thing, time it on the clone, promote it, then re-time the live URL and compare. Under 800 milliseconds to first byte and under 2.5 seconds to Largest Contentful Paint on a throttled mobile profile is the target worth holding.
Every plan runs NVMe behind a LiteSpeed cache with free SSL, engineer-run migration and 24/7 support, and there is no setup fee on any of them.
By the HostingFast team · Reviewed 15 August 2026
Free
Migration in, at our cost
24/7
Support, every hour
Daily
Backup, once a day
$0
Due at signup
Bespoke joinery sells on detail: grain, joints, a fitted alcove photographed in the room it was made for. That means large photographs, and often a made-to-measure enquiry form with dimensions, timber choices and finish options attached.
It also means a site that changes constantly, because every finished commission is new content. A site that changes constantly is a site that regresses constantly, and the only defence is a workflow where a change can be tried, measured and reverted.
This guide is written for that workflow. It assumes you are comfortable with a terminal, or willing to become so, because the twenty minutes that takes buys back a great deal of guessing later.
Set up a deploy you can repeat
SSH, Git and Composer are available on every plan, which means the theme can live in a repository rather than in the file manager. Clone it locally, commit changes, push, and pull on the server. The value is not elegance, it is that every change has a commit and every commit can be undone in seconds.
Pair that with a staging clone from WordPress Toolkit. The clone is where a new gallery plugin gets tried, where a PHP version bump gets tested and where the timing run happens. Nothing reaches the live site until it has a number attached to it.
Time the bespoke-quote page separately
A made-to-measure enquiry form is the one page on a joinery site that cannot be fully cached, because it usually generates a fresh token per visitor. That makes it the page where server-side work shows up undiluted, and the page worth timing on its own.
Fetch it from a terminal with curl and the write-out option, reading time_starttransfer, and take a median of five runs rather than trusting one. If that figure is well above 800 milliseconds while your cached gallery pages come back in a fraction of it, the difference is PHP and database work, not the network.
Where a joinery gallery loses its seconds
Timber photographed well is detail-heavy, which means it compresses badly and tempts you into uploading originals. Resize to about 1800 pixels on the long edge, let the built-in WebP conversion take it further, and set width and height on every image so nothing shifts as the page fills in.
Then check what your theme is actually requesting. A page loading four web fonts and a full icon set before it draws anything is spending its budget on furniture rather than content. Filter the Network panel to Font and CSS and ask, of each entry, what it earns.
Keep a record so regressions are obvious
Commit a plain text file to the repository alongside the theme with the date, the URL, the median TTFB and the LCP for each measurement run. It takes a minute and it turns a vague sense that the site got slower into a diff you can point at.
Re-run it after every plugin addition and every theme update. Because your changes are commits, the run that broke the number and the change that caused it are the same lookup, and reverting is a command rather than a project.

A stack that behaves like a development environment
Full SSH with Git and Composer, staging clones, per-site PHP version switching and a LiteSpeed cache in front of it all, on the same plans everyone else buys.
Free SSL renews itself, engineers migrate your existing site at no charge, and accounts go live minutes after checkout rather than after a queue.
- Full SSH, with Git and Composer already on the box
- WordPress Toolkit staging, cloned in a click
- Per-domain PHP, changed without raising a ticket
- NVMe underneath a LiteSpeed cache
Why HostingFast
Standard on every plan
Git on the server
Full SSH with Git and Composer, so the theme lives in a repository and every change is revertible in seconds.
A clone to break
Staging through WordPress Toolkit means the timing run and the risky plugin both happen somewhere customers never see.
PHP under your control
Switch version per site from the control panel and measure what it does to first byte yourself.
Cache in front of PHP
LiteSpeed answers cached gallery pages without starting the interpreter, leaving PHP for the pages that genuinely need it.
NVMe for the uncacheable
The bespoke-quote page cannot be cached, so it is the one that benefits most from fast storage underneath.
Engineer-run migration
We move the existing site and its media library across free, and you approve the switch before it happens.
Quick Start
From order to online
- 1
Put the theme in Git
Connect over SSH, initialise a repository in the theme directory and commit what is there. From this point every change has an author, a date and an undo.
- 2
Clone and measure
Create a staging clone, run five curl timings against the quote page and note the median. That is your baseline, recorded before you touch anything.
- 3
Promote only what moved the number
Make one change on the clone, re-time it, and promote it if the median improved. If it did not, revert the commit and try the next idea.
Built In
Loaded onto every plan
- Full SSH, with Git and Composer already sitting on the box
- Staging clones so nothing untested reaches the live site
- PHP version changed per domain without raising a ticket
- NVMe SSD storage underneath a LiteSpeed cache
- Built-in WebP conversion for close-grain timber photography
- Free SSL, issued and reissued with no reminder needed
- A backup every day, restored with one click
- Softaculous one-click installs across 240+ applications
- Nothing charged to set the account up
- Refunds run 30 days on hosting and 7 on reseller
Frequently Asked
What people ask us most often
Can I deploy a joinery site from Git rather than an editor?
Yes. Full SSH access with Git and Composer is included on every plan, so the theme can be a repository you push to and pull on the server. It is the single change that most improves how safely a small site can be tuned, because every experiment becomes revertible.
Why time the quote page separately from the gallery?
Because the gallery is cacheable and the quote page usually is not. A cached page tells you about the cache; an uncacheable one tells you about PHP, the database and your plugin load. Those are different problems with different fixes, and averaging them hides both.
How many curl runs do I need before the number means anything?
Five, and take the median rather than the mean. Single runs are noisy: a cold cache, a background backup or a slow DNS lookup can double one figure. A median of five is stable enough to detect a real improvement of a hundred milliseconds or more.
Does a staging clone count against my site allowance?
Plan limits are stated in sites, so check what you are using before creating clones freely. Sprint covers one site and Turbo covers twenty-five, which gives a joinery business plenty of room for a live site, a staging copy and a landing page or two.
Keep reading
Food Trucks — Hosting Guide
Roaming service, live location updates and a site that has to stay light.
Nail Studios — Hosting Guide
Appointment booking, image galleries and the mobile numbers behind both.
SSL Certificate · The Short Version
What a certificate actually proves, and how renewal works in practice.
Dedicated Cloud — Built for Carpenters & Joiners
Isolated resources, more headroom, and when a small site outgrows shared.
Web Hosting Plans
The shared plans in detail: specs, caching, and what is included as standard.
Changing hosts? Run through our checklist first.
A straightforward sequence for a switch your visitors never feel: which files move first, how to shift email across without losing a single message, the right moment to repoint DNS, and the two mistakes behind almost all the downtime we get asked to rescue.
Deploy it, then measure it.
SSH, Git, Composer and staging clones are on every plan, from $2.42/mo with no setup fee.
View Dedicated Cloud — Built for Carpenters & Joiners plans