{"slug": "blogging-with-actual-paper", "title": "Blogging with (Actual) Paper", "summary": "Jeff Huleatt, a developer, created an Agent Skill called paper-to-astro-mdx that uses Gemini to transcribe handwritten blog post drafts into Astro-friendly MDX, after being inspired by a Hacker News post about blogging on paper. The skill, available on GitHub, successfully converted his first handwritten post, though he found the link-finding and audience-summary features unreliable and reverted edits suggested by the skill-creator skill.", "body_md": "A post on Hacker News titled [Blogging on Paper](https://news.ycombinator.com/item?id=42859564) caught my attention last year. I was immediately interested, ready to hear about someone’s experience building a tool to import physical paper blog post drafts into an online-friendly form. However, it turned out to be a workflow for publishing blog posts from Dropbox Paper, not the pen-and-paper I enjoy using.\n\nI’m sure that post was useful to someone else, but the idea of easily converting a paper blog post draft to something my Astro-powered site can understand has been stuck in my head ever since that misunderstanding, and now I’ve finally tried it.\n\nWelcome to my first hand-written blog post!\n\n## Making an Agent Skill\n\nJust a couple of years ago, this task would require a complex machine vision pipeline. Now, though, it can just be a few lines of markdown. An [Agent Skill](https://skills.sh) seemed like the most straightforward approach.\n\n### Can Gemini read my handwriting?\n\nAs a quick validation, I fed a photo of a test page into the Gemini web app to see if Gemini could accurately transcribe it.\n\nPhew. Reassured that Gemini could read my handwriting, I took a first swing at an Agent Skill.\n\n### First draft\n\nThe core functionality I wanted was:\n\n- Translate a photo of a handwritten page to markdown (specifically,\n[Astro-friendly MDX](https://docs.astro.build/en/guides/integrations-guide/mdx/)) - Generate frontmatter (metadata) based on blog content\n- Guess a file name and put it in the right place\n\nI put these requirements in a basic `SKILL.md`\n\nfile. I also wanted some fancier features, so I added a step where the agent automatically finds link urls based on hand-written hints, and a step where the agent identifies the key takeaways a member of the post’s target audience would have.\n\nThen, I ran it in Antigravity.\n\nAt least, I tried to. Antigravity wouldn’t accept the HEIC file from my phone camera, even though the Gemini web app handled it without issue. I converted the image to jpeg, and *then* I ran it in Antigravity.\n\nSuccess!\n\n### Refining the skill\n\nThe first run went well enough that I only needed a few small changes.\n\nI added a note about how to identify headings, and added a couple of links out to Astro docs to help with MDX component use and frontmatter generation.\n\nFrustratingly, the fancy features I wanted were the most problematic. The link-finding functionality wasn’t reliable, and the summary from a prospective audience member wasn’t useful, either. I may just remove these in the future, or separate them into their own skills.\n\nBeware of scope creep when writing Agent Skills.\n\nThe skill was almost done, but I took a detour where I audited it with the [skill-creator skill](https://www.skills.sh/anthropics/skills/skill-creator), in case I was missing anything important.\n\nUltimately, this didn’t help. It made my skill bloated, with redundant guidance like listing out *all* standard copyediting marks. I reverted the edits that the skill-creator skill made.\n\nIf the skill-creator skill can infer correct functionality, doesn’t it mean an agent can infer correct functionality\n\nwithoutthe skill creator’s output?\n\nI had more luck asking Antigravity for an audit based on [Best practices for skill creators](https://agentskills.io/skill-creation/best-practices). This had a much lighter touch, and usefully suggested I add the `compatibility`\n\nfield in my skill’s frontmatter to clarify its focus on Astro sites.\n\nWith that, the skill was in good enough shape to use for this post. Take a look at my [ paper-to-astro-mdx skill on GitHub](https://github.com/jhuleatt/skills/blob/main/skills/paper-to-astro-mdx/SKILL.md) if you’d like to see exactly how it works. But, was it worth the effort?\n\n## The experience of writing by hand\n\nMy hand cramped midway through drafting this post. Physical pain aside, I truly enjoyed the experience of writing by hand. Most importantly, handwriting separates the act of writing from the computer.\n\nWhen writing on my laptop, I’ll often jump to work chats, or scroll online when I need to take a pause from writing. The noise of those distractions is apparent when compared to the small breaks I take when my laptop is shut: look out the window, or go get a glass of water. Instead of getting stressed by digital noise, I found the ideas in this post simmering in the background, ready to flow out when I sat back down to write.\n\nIf you’re thinking this is all starting to sound a little too rosy, I’m with you. Will the initial joy fade? Will hand cramps get the better of me? Will I go down the rabbit hole that is the fountain pen hobby? Time will tell.\n\nUntil then, this was a fun experiment to use the latest technology to make my work more analog. If you want to try it too, you can install the skill yourself:\n\n```\nnpx skills add jhuleatt/skills --skill paper-to-astro-mdx\n```\n\n", "url": "https://wpnews.pro/news/blogging-with-actual-paper", "canonical_source": "https://jhuleatt.com/posts/blogging-with-actual-paper/", "published_at": "2026-08-27 18:34:06+00:00", "updated_at": "2026-08-27 18:49:24.361903+00:00", "lang": "en", "topics": ["generative-ai", "ai-tools", "ai-agents", "developer-tools"], "entities": ["Jeff Huleatt", "Gemini", "Antigravity", "Astro", "Hacker News", "Dropbox Paper", "GitHub", "Agent Skill"], "alternates": {"html": "https://wpnews.pro/news/blogging-with-actual-paper", "markdown": "https://wpnews.pro/news/blogging-with-actual-paper.md", "text": "https://wpnews.pro/news/blogging-with-actual-paper.txt", "jsonld": "https://wpnews.pro/news/blogging-with-actual-paper.jsonld"}}