博客的成本
The Cost of Blogging

原始链接: https://onlinegoddess.net/2026/11/the-cost-of-blogging/

这篇文章探讨了作者认为值得的博客开支。她总是购买个人域名,视其为基本的网络身份和承诺的体现。她也付费使用博客平台/托管服务,以支持隐私并帮助维持免费套餐。作为字体爱好者,她偶尔购买优质字体家族(低于100英镑),并自托管免费字体以避免追踪。在写作方面,她更喜欢功能更齐全的编辑器,并使用Paper,后者免费,可选付费个性化。读者的评论认同域名和平台费用,其中一人称赞Bear的每月6美元服务。总体而言,作者认为适度、有意的支出可以改善博客,同时保持其道德性和可持续性。

一篇 Hacker News 上关于“博客的成本”的帖子认为个人博客可以非常便宜。评论者表示主要费用通常是域名,每年大约 11–25 美元,而托管通常可以通过 GitHub Pages、Cloudflare、Netlify、NearlyFreeSpeech 或廉价 VPS/共享主机免费或几乎免费。静态站点生成器如 Jekyll、Hugo 和 Pelican 因其简洁性和安全性被广泛推荐。有些用户使用 LLM 自动化设置,但也有其他人说这并不必要。带宽、爬虫或 WAF 等高级服务可能推高成本,一位评论者报告 AWS 月费约 30 美元。帖子还讨论了 Substack:它提供受众触达,但存在声誉和付费墙方面的顾虑。多条评论强调真正的成本是时间和精力,尤其是写作和编辑,并且拥有域名比支付托管费更重要。总体共识是,博客不必花很多钱;免费和低成本工具使个人网站变得可负担,而更大的投入在于创作和维护内容。
相关文章

原文
The Cost of Blogging – Online Goddess

It’s easy enough to find a blogging platform that doesn’t cost anything to use, Bear itself has a decent enough free tier, but how many of us do end up spending some money on our little journals? For me, there’s a few things I always pay for:

A Personal Domain

When people buy a domain for their blog, it’s a clear sign they intend to stick around. I can become quite attached to a good blog, so I find myself more likely to follow someone with a domain because there’s a higher expectation they will continue it.

A domain is your online identity. If you own it, no one else can claim it. You can use it wherever you wish, and you can take it elsewhere if you’re not happy where you are. You won’t lose your readership because they follow the domain, not the platform.

For me, this is an essential expense.

The Blogging Platform / Hosting

In today’s age of data collection and privacy concerns, I prefer to pay for my blogging platform or hosting. Then I know that it’s my subscription and not my personal information that’s funding the development, server costs etc.

For smaller companies, like Bear, paying also helps support the free tier for those that don’t subscribe. Not everyone can afford to pay for their blog and I think it’s important to help keep that option alive, sustainably.

Typography

I’m undoubtably in the minority here as there are many wonderful free fonts available. However, as a typography nerd, I’m always looking for the next best thing and that means I’ve encountered some irresistible premium fonts. There is a ceiling on this - I have spent no more than £100 on a font family because that really is my justifiable limit for a personal blog.

I’ve written a few posts about the subject here:

I have actually changed the font again just yesterday, so the last post is not up-to-date

When I do use a free font, I always host it directly to avoid usage tracking (looking at you Google). I also try to use original font foundries, who sometimes sell premium fonts alongside their free offerings as a sustainable and ethical business model.

Writing Software

Bear includes a simple editor, but I much prefer to use something a little fuller-featured. There are plenty of text and markdown editors available for free, or for a nominal subscription - there’s no reason to spend a fortune, just pick the one that feels comfortable. I happen to like Paper, which is free with extra personalisation for an annual or lifetime cost. It has a very pleasant interface and allows me to use my own font. I blogged about it in Finding the Perfect Writing App.

What elements of blogging do you feel are worth paying for? If you happen to write a post about it, pop me a link and I’ll share.

View Comments (3)

Tee 🇺🇸 wrote via the Guestbook:

Thank you for this post! Because of it, I explored text editors that support markdown. Didn't really know they existed! I may not have settled for Paper but I found one that fits my needs (Markdown One)

  • That’s wonderful, and thank you for letting me know my post was helpful. :) I should perhaps have included some links to editors I had previously tried, maybe that’s an idea for a future post! ~Becky

Brian wrote via email:

Greetings from a fellow enjoyer of Heliotrope. Always a treat to find it in use out and about.

  • Yay, I’ve not found another Heliotrope fan until now. :D Looks fantastic on your website too! ~Becky

Corey wrote via email:

Love your post about the cost of blogging!

I wholeheartedly agree about the personal domain...I, too, can be attached to a good blog, so knowing they've invested a bit into it (mine is something like $12/year) makes me more likely to keep up with it.

I'm also very happy to pay for Bear. $6/month doesn't seem like such a cost for such a great service that I get so much out of.

Anyway, enjoying your posts.

(Web hug.)

Corey

  • I’m so glad you enjoyed reading my blog and thank you for for sharing your thoughts on this post. ~Becky

#blogging #comments #popular

' + 'Next'; wrapper.appendChild(pagination); const prev = pagination.querySelector("#prevPage"); const next = pagination.querySelector("#nextPage"); const info = pagination.querySelector("#pageInfo"); if (!prev || !next || !info) return; prev.setAttribute("aria-controls", wrapper.id); next.setAttribute("aria-controls", wrapper.id); function setDisabled(el, disabled) { const val = disabled ? "true" : "false"; el.dataset.disabled = val; el.setAttribute("aria-disabled", val); if (disabled) el.setAttribute("tabindex", "-1"); else el.removeAttribute("tabindex"); } // State (synced with URL) let currentPage = 1; function getFiltered() { const year = yearSelect.value; const term = searchInput.value.trim(); const hasYear = !!year; const hasTerm = term.length > 0; if (!hasYear && !hasTerm) return allItems; const re = hasTerm ? new RegExp(escapeRegExp(term), "i") : null; return allItems.filter(function (li) { if (hasYear && li.dataset.archiveYear !== year) return false; if (!re) return true; const a = li.querySelector("a"); const text = (a ? a.textContent : li.textContent) || ""; return re.test(text); }); } function renderVisibility(visibleSet) { allItems.forEach(function (li) { li.style.display = visibleSet.has(li) ? "" : "none"; }); monthLists.forEach(function (ul, i) { const anyVisible = Array.from(ul.children).some(function (li) { return li.style.display !== "none"; }); ul.style.display = anyVisible ? "" : "none"; monthHeaders[i].style.display = anyVisible ? "" : "none"; }); } function syncUrl() { const year = yearSelect.value; const term = searchInput.value.trim(); const p = readParams(); year ? p.set(PARAM_YEAR, year) : p.delete(PARAM_YEAR); term ? p.set(PARAM_SEARCH, term) : p.delete(PARAM_SEARCH); if (currentPage > 1) p.set(PARAM_PAGE, String(currentPage)); else p.delete(PARAM_PAGE); writeParams(p); } function update() { const filtered = getFiltered(); const totalPages = Math.max(1, Math.ceil(filtered.length / POSTS_PER_PAGE)); currentPage = Math.min(Math.max(1, currentPage), totalPages); const start = (currentPage - 1) * POSTS_PER_PAGE; const pageItems = filtered.slice(start, start + POSTS_PER_PAGE); renderVisibility(new Set(pageItems)); info.textContent = "Page " + currentPage + " of " + totalPages; setDisabled(prev, currentPage === 1); setDisabled(next, currentPage === totalPages); pagination.style.display = filtered.length > POSTS_PER_PAGE ? "" : "none"; syncUrl(); } // Init from URL const p0 = readParams(); yearSelect.value = p0.get(PARAM_YEAR) || ""; searchInput.value = p0.get(PARAM_SEARCH) || ""; const page0 = parseInt(p0.get(PARAM_PAGE) || "1", 10); currentPage = Number.isFinite(page0) && page0 > 0 ? page0 : 1; // Events yearSelect.addEventListener("change", function () { currentPage = 1; update(); }); let t = null; searchInput.addEventListener("input", function () { currentPage = 1; if (t) window.clearTimeout(t); t = window.setTimeout(update, SEARCH_DEBOUNCE_MS); }); prev.addEventListener("click", function (e) { e.preventDefault(); if (prev.dataset.disabled === "true") return; currentPage = Math.max(1, currentPage - 1); update(); }); next.addEventListener("click", function (e) { e.preventDefault(); if (next.dataset.disabled === "true") return; currentPage += 1; update(); }); update(); }); })(); Powered by Bear ʕ•ᴥ•ʔ
联系我们 contact @ memedata.com