Core And Solutions

Turning a borrowed template into a studio site that runs on its own.

Agency

Self-hosted

Role

Founder & Developer

Timeline

3 weeks

team

Just me

platform

Framer + PHP

Core And Solutions homepage

The Real Problem

I needed a home for my own studio, and I didn't want to wait months to build one from scratch. A good Framer template got me 80% of the look in a day. The trouble was the other 20%: a Framer site lives on Framer's servers, uses Framer's forms, and sends every enquiry to whoever set the template up.

I wanted the opposite. My own domain, my own hosting, my own inbox, and no monthly bill that grows every time I add a page.

So the plan was simple to say and hard to do: take the exported site, move it onto ordinary shared hosting, and make it behave exactly as it did on Framer.

The first upload told me how hard:

  • 'Pages load, then the whole site freezes.'

  • 'The projects grid is empty.'

  • 'Every image in the blog is missing.'

None of it was visible in the design. All of it was plumbing.

Core And Solutions projects gallery

Finding the Fix

I rebuilt a local copy of the site and crawled it page by page until I knew exactly where it broke. Four problems stood out:

Wrong file types. The server sent JavaScript modules as plain text, and browsers refuse to run them. One rule in .htaccess fixed the freeze.

Missing byte ranges. The CMS asks for slices of a file through a URL parameter. I wrote a tiny PHP handler that returns exactly those bytes.

Image variants. Framer asks for resized images with query strings. A second handler maps each request to the right file on disk.

The CMS itself. Instead of editing the binary files by hand, I wrote a small parser that reads them, lets me change any field, and rebuilds every index so the byte counts always add up.

  1. Forms now go to my own PHP endpoint, get stored on the server, and arrive by SMTP in my inbox.

  2. Edited scripts get a new version through an import map, so nobody gets stuck on a cached copy.

  3. Share previews got absolute image URLs, so links finally look right on WhatsApp and Facebook.

Live demo preview inside a project card

What Actually Happened

With the plumbing solved, the site could finally become mine. The template's fake projects came down and a gallery of 23 demo sites went up, each one opening on its own page.

My favourite detail: hover over a project card for a few seconds and the real demo boots up inside the picture and starts scrolling itself. No video, no screenshot. The actual site.

Then the business layer: a mailbox on my own domain with SPF, DKIM and DMARC set up properly, GA4 events that fire only when a form really succeeds, and HSTS switched on.

Core And Solutions studio page

What Changed

The site went live on coreandsolutions.com on my own hosting. A full crawl of 38 journeys, desktop and mobile, finished with 0 broken requests and 0 errors.

Nobody visiting it can tell it started life as a template, and that is exactly the point.

  • Every enquiry lands in my own inbox, stored on the server as a backup.

  • Text changes go live in minutes, without Framer.

  • The monthly cost is the hosting plan and nothing else.

The part I'm proudest of is invisible: the tools I built for this now let me move any Framer site onto normal hosting for other clients.

Core And Solutions contact form

What I Had to Work With

Cheap, honest hosting. Hostinger shared hosting with LiteSpeed and Cloudflare in front. No Node server, no special config, just files and PHP.

A binary content format. Framer stores its CMS in length-prefixed binary files. Change one letter in a blog title and every byte after it shifts, and the site throws an error.

Aggressive caching. Cloudflare kept JavaScript files for a year, so a returning visitor would keep seeing old text long after I had fixed it.

Zero budget. Everything had to be solved with what the hosting already gave me.

Core And Solutions journal

What I'd Do Differently

I'd test with a returning visitor from day one. My first round of fixes looked perfect in a fresh browser, and it took a visitor with an old cache to show me the stale text. Now every change gets checked in a browser that has already seen the old version.


What I Learned

Plumbing is design too. Nobody sees a byte-range handler, but everyone notices when the projects grid is empty.

Own your stack. The day your forms, email and hosting all belong to you, the website stops being rented and starts being an asset.

Core And Solutions footer

Let's Talk

I'm happiest when a website stops being a brochure and starts doing real work: bringing in leads, selling products and making people stop scrolling.

Comment

Zohaib Imran

Open to new websites, stubborn bugs and bold ideas that need someone to build them.

1