Fed up of staring at that cumbersome Spark URL, wishing you could turn spark.adobe.com/page/H8df978Asg98 into yoursite.com?

Here's how to do exactly that, at no cost to you whatsoever, using one of the internet's most powerful tools for domain management.

Requirements for this guide:

  • A public Spark post page
  • A domain that you already own, at a domain manager (e.g. Namecheap, GoDaddy) which you have access to

Step 1: Move your domain to Cloudflare

The first thing we need to do is take your domain and move it over to being managed by Cloudflare.

Cloudflare is the biggest internet service you've probably never heard of. They sit between you (a website viewer) and around 16 million websites including huge tech companies, who use them to make sure that they can't get attacked by large amounts of malicious traffic.

We don't care about that too much – we're more interested in the fact that they have an awesome tool called Workers (we'll get to that later) which you can use on their extremely generous free tier to put your Adobe Spark page at your domain.

So...

Sign up for an account: https://dash.cloudflare.com/sign-up

  • Enter your domain name. If you would like to use a subdomain (e.g. subdomain.yoursite.com) with Cloakist, you should still put your root domain name here.
  • Select the Free plan
  • If you don't have any A records imported, add one with your root domain (yoursite.com) as the Name and 1.1.1.1 as the Content. Do the same for any subdomain you want to use (e.g. to use spark.yoursite.com, enter Name: spark, Content, 1.1.1.1) Otherwise, click Continue on the DNS Record page.
  • Copy the 2 nameservers, which end with .ns.cloudflare.com
  • Paste the nameservers in the domain setting page at your domain manager (Namecheap in my case). Make sure you save the setting.
  • Wait for a few minutes (consider making a cup of tea), then click Done, check nameservers.
  • Select Flexible SSL/TLS encryption mode
  • Turn on Always Use HTTPS, Auto Minify, and Brotli (all 3 optional but recommended)
  • Select Done
  • You should see this screen. Sometimes it can take a little longer for Cloudflare to detect that you've changed nameservers. If that's the case, you might have to wait up to 45 minutes. Keep using the Re-check your site option, and refresh the page, until you see the 'Great news!' message.

Step 2: Set up a Cloudflare Worker

So now Cloudflare is the boss of your domain.

Cloudflare will also have moved over any DNS records you were using with your domain so that any email setup etc. is still working.

(Note: the ownership of your domain is still with your domain manager. You'll still have to pay them a monthly or yearly subscription to keep owning your domain. But everything else is now managed through Cloudflare.)

Now what we're going to do is add a little bit of code called a Worker, which will live at our site and tell Cloudflare to show the content from your Adobe Spark site instead.

  • Click on Workers in the top menu of Cloudflare:
  • Add Route
  • Enter yoursite.com/* (but change this to your site!). If you want to use a subdomain, enter subdomain.yoursite.com/* instead
  • Hit Save
  • Manage Workers
  • Create a Worker
  • Change the name of the Worker (marked with A on the screenshot) to something sensible like yoursite-spark
  • At B, select everything and delete
  • Now paste in the custom script I've written for this exact purpose:
// Config for our domain (where we want the Spark page to live)
// and our Spark page
// Change these to suit your case!
// IMPORTANT: make sure there is no '/' at the end of either URL
const config = {
  domain: "spark.cloak.ist",
  sparkPage: "spark.adobe.com/page/a1d2g3d3a1s2",
}

// Function that processes requests to the URL the worker is at
async function handleRequest(request) {
  // Grab the request URL's pathname, we'll use it later
  const url = new URL(request.url)
  const targetPath = url.pathname

  // Change request URLs to go through to the subdomain
  let response = await fetch(`https://${config.sparkPage}${targetPath}`)

  // We don't need to change these requests at all
  // So we return the response of the fetch request from above
  // immediately.
  return response
}

addEventListener("fetch", (event) => {
  event.respondWith(handleRequest(event.request))
})
  • Once you've done that, you're going to need to change 2 things in the script, on lines 6 and 7
  • Replace spark.cloak.ist with yoursite.com
  • Replace spark.adobe.com/page/a1d2g3d3a1s2 with the URL of your Spark page
  • ⚠️ Make sure that you don't have https:// at the start of what you replace in here, and that you don't put a / at the end either! The format should be exactly as it is here
  • Hit Save and Deploy
  • Now, go back to this Workers page
  • Find the Route that you made earlier and click 'Edit'
  • In the Workers dropdown, select the Worker you just created and hit Save

Step 3: Try it out!

This should be all you need to do. Now, go to yoursite.com (or subdomain.yoursite.com if that's what you're using instead) and see if it's working.

If it's not, go back through the steps here and make sure you did all of them correctly. In particular, make sure you replaced the right parts of the Worker script, and that you didn't include anything like https:// before the link or / after.

And if that's still not working, feel free to contact me via the live chat or Twitter!

The hosted option with Cloakist

If you'd rather not...

  • Move your domain over to Cloudflare
  • Have to do this set up yourself
  • Have to worry about changing any code in future in case this breaks

...you can use Cloakist to do this instead, for $10/m.

And for $25/m we offer a Pro version, where you can:

  • Have multiple Adobe Spark pages living at the same domain
  • Remove any Adobe Spark branding
  • Customise your link previews
  • Add tracking pixels
  • Add live chat
  • Add any custom CSS/JS that you need

Thanks for reading!