Drag. Drop. Blog
Improving the Blogging Process (?)
One of the things I’ve been quietly working on is making my blogging process more efficient — not just for the sake of productivity, but to actually lower the friction that so often stops me from writing in the first place.
As you’ve probably noticed, my posting schedule is somewhat erratic. Part of that is just life being what it is — full of family, work, obligations, health things. But the other part is more insidious: it’s the friction of starting. The friction of getting ideas down, revising them, formatting, uploading them, and making them look presentable. That friction can be enough to kill momentum.
For me, the hardest part has always been capturing ideas in the moment — whether I’m mid-task, mid-walk, or mid-thought. I’ve written before about the limitations of the Squarespace app, and even the browser interface hasn’t been much better. It’s slow, awkward on mobile, and just doesn’t lend itself to fast, distraction-free writing.
So the obvious solution? Write somewhere else.
But that brought up a bigger question — where? There are dozens of tools out there: Drafts, Ulysses, Bear, Apple Notes, Notion, even plain text editors. They all have their strengths. But for me, the core requirement was this:
It needs to be available anywhere I am, on any device I use, and let me jot ideas down quickly without getting in my way.
I didn’t want something that required constant tinkering, or something that made me fight its interface. And ideally — though not essentially — I didn’t want to pay much (or anything at all).
Enter Ulysses
Right now, I’m trialling Ulysses. It ticks a lot of boxes. I have it as part of my SetApp subscription. It’s available on my iPhone, iPad, MacBook Air, and Mac Mini. The files it creates are stored as Markdown, so I have full portability. Even if I switch to another system in future — say Linux — I know the files themselves will remain usable.
I tried importing the Markdown into Squarespace and it works via the Markdown block and/or the HTML block. If you use the HTML block, then when copying the text in Ulysses, you just need to ensure you click, copy as HTML.
I then found this in the SquareSpace settings:
Which let me set the default post format to Markdown.
Unfortunately, it still pops up the Markdown window rather than letting you paste directly into the main window, but at least it works.
The final tweak on the Squarespace side was getting the text to be justified. This isn’t possible on the Markdown side as Ulysses didn’t seem to support the HTML tags that I tried, so I fixed it globally on Squarespace by adding some custom CSS.
But this still left one important question: What about images?
Squarespace gives you limited media storage, and hosting everything directly inside the CMS starts to feel a bit… risky. I want my images to be backed up, accessible, and not tied to one particular platform.
Hosting Blog Images in GitHub, with Drag & Drop Uploads
This is where things get fun.
I realised I could host my blog images in a GitHub repository — free, fast, and permanent. Markdown supports linking to raw images hosted on GitHub, and it’s easy to manage versions over time. But I didn’t want to manually clone the repo, open it in Finder, copy files, commit, push, grab the link, etc. That’s more friction. I wanted drag, drop, done.
The Goal:
- Drag an image into something
- It uploads to the GitHub repo
- Gets auto committed and pushed
- The URL is copied into my clipboard ready to use
Building It with Dropzone + GitHub + Markdown
Here’s how I did it.
Created a GitHub Repo
- Named it
blog-media
- Cloned it locally using GitHub Desktop to
~/Documents/GitHub/blog-media
- Named it
Installed Dropzone 4
- This app lets you drag files onto custom actions you can build yourself
- I created a new custom Dropzone action using Ruby
Scripted the Action
With some help from ChatGPT, we wrote a Ruby script that:
- Prompts for a folder name in the repo (e.g.
2025/Blog/PostName
) - Copies the image to that location
- Commits the change using Git
- Pushes it to GitHub
- Copies the URL to the clipboard
Here’s the guide I followed to set up the Dropzone action:
Guide on using Dropzone 4 with GitHub
- Resolved Some Git Issues
We ran into several errors along the way:
- Git push didn’t work at first because GitHub Desktop uses HTTPS login, but the Dropzone script needed SSH.
✅ The solution was to generate an SSH key, add it to GitHub, and then switch the GitHub repo to use SSH instead of HTTPS.
To generate a key, run in Terminal:
ssh-keygen -t rsa -b 4096 -C "user@domain.com"
Then copy the public key:
cat ~/.ssh/id_rsa.pub | pbcopy
Head to GitHub → Settings → SSH and GPG Keys → New SSH Key
Paste the copied key into the field and save.
Then update your local Git repo to use SSH:
cd ~/Documents/GitHub/blog-media
git remote set-url origin git@github.com:<yourusername>/blog-media.git
Set your global Git identity:
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
Final Thoughts
Now, I can draft the post in Ulysses, drag my images into Dropzone, which uploads and pushes them to GitHub. I paste the image URLs directly into the Markdown and then copy it all into Squarespace when I'm done.
It's not a perfect flow — there's still room to smooth things out — but it's a massive step forward. Most importantly, it removes the friction that used to stop me from posting at all.
Let’s see how it holds up in the long run.