ipsento606 28 minutes ago

    > This stack gives me full control: no subscriptions, no vendor lock-in,
    > and no risk of platforms disappearing or changing policies.
I'm not trying to dunk on the author, but this sentiment encapsulates a tremendous paradigm shift in the meaning of "full control", compared to say:

* Writing in obsidian

* Syncing files via git

* Publishing via nginx hosted on the cheapest possible vps (with https via let's encrypt)

Running a static blog is one of the easiest scenarios to self-host, because even if you get slashdotted, nginx should be able to handle all the requests even if you're host it on a potato

It's not free, but you can get a VPS for $20-$30 a year.

This isn't the best fit for everyone, but it seems weird to talk about "full control" and "no risk of platforms disappearing" when you're relying on the free tier of two external companies

  • lolinder 22 minutes ago

    The point is that because of the way they structured their blog it would be trivial to do exactly this if they ever needed to. There's no complicated export from a locked in application, you just move your blog files from one host to another (maybe to your own VPS).

    The overhead of switching from Cloudflare to a VPS if they needed to is really not that much larger than switching from one VPS to another, so they likely figured it wasn't worth paying $30/yr to own the whole stack, as long as they architected it such that they could own the whole stack if they needed to.

Vingdoloras 9 minutes ago

Cool setup, but the choice of Obsidian is kind of weird in this context (in an interesting way, see next paragraph). Instead of opening a subfolder of the Hugo project in Obsidian, one could just open the entire thing in VSCode or a similar IDE, enjoy a good markdown editing experience, AND use git integration and the integrated terminal (and possibly set up automated tasks) to run your local testing and deployment workflows.

Note that Obsidian's markdown editing experience is _different_ from (but not necessarily better or worse than) what you'd get in a typical IDE. So while the choice seems weird to me, it absolutely makes sense if the author prefers the feature set that Obsidian offers. Being supported by so many different editors is one of markdown's strengths, after all, and this kind of editor-portability fits right in with the other parts of "Fully Owned" from the blog post.

pembrook 6 hours ago

Great stuff, looking forward to your next blog post in 1 year: “How I rebuilt my blog on…”

A fun hobby of mine is Googling “how I built this blog with [next.js/Gatsby/etc etc]” and going to page 10 of the Google results.

It’s just hundreds of developer blogs with no blog posts other than the ones announcing how the blog was built.

  • freetonik 3 hours ago

    I’ve noticed this a lot, too, and made this drawing as a joke: https://rakhim.org/honestly-undefined/19/

    • ceautery an hour ago

      I'm in the "old-ass blogger.com site" category, with posts going back to '05.

      • martylamb 17 minutes ago

        Literally just posted my newly hogoized site that dates back to 2003 THIS MORNING. :)

  • nickjj an hour ago

    I started with and used Jekyll for almost ~10 years and ~500 posts before switching to Hugo.

    I have a 7,000 word blog post on how and why I switched which I didn't publish yet because I wanted to wait 6+ months with Hugo to make sure I ironed out all of the kinks. I guess I'm the anti-case for this one! Maybe I should post this one next week. It's been quite stable.

  • devsda an hour ago

    Haha. I guess discovering & teaching how to do X is more rewarding than doing X. It applies to blogging, PKM and productivity too.

    Is there a name for this phenomenon where this actually turns out to be true? Closest I can think of is "During a gold rush, sell shovels".

  • ChadMoran an hour ago

    This reminds me of people who will make an entire YouTube series on crafting the perfect Notion architecture. Only to not actually use it.

    • mmsimanga 20 minutes ago

      I am in a worse group. Changed my blogging platform, wrote the obligatory post detailing why I changed platform and couldn't even get that obligatory post out. I hang my head

  • barrenko 5 hours ago

    It's our Hello World of sorts.

    • netsharc 4 hours ago

      I remember someone presenting a development framework and saying something similar to this, "Of course, I used it to build a blogging platform..."

  • ingav 6 hours ago

    Haha, been there. But this setup’s actually working really well for me. It’s not chasing the "hot new thing," it’s going back to stuff that’s proven and solid.

  • jasonthorsness 5 hours ago

    Is there a support group for this? I have not rebuilt my blog since Feb 21 2024 though I have been sorely tempted :P

    • fabianholzer 5 hours ago

      There probably should be one, maybe taking turns with the biweekly Authors of custom static site Generators Anonymous meeting

jagged-chisel an hour ago

> … and no risk of platforms disappearing or changing policies.

Those risks still exist. GitHub and Cloudflare can do these things at any moment.

  • connicpu an hour ago

    I think the point was more about mitigating the risk of being locked in to a platform with bespoke authoring tools. GitHub and Cloudflare are very convenient with their generous free services, but if you had to a hugo blog could still be hosted on any web server in the world.

trollbridge 12 minutes ago

Back in the day, I just blogged by appending a text file, and then later an HTML file.

tmaly 27 minutes ago

I had thought to do this same things. I am glad someone figured it out.

The one thing I do differently with Obsidian is that I use a private git repo rather than having it live in iCloud. I sync it across an iphone, ipad, and windows desktop.

hk1337 4 hours ago

I've started recently working on setting up the "special" public profile repository in GitHub to be my blog central and wanted to keep the files to a minimum. So, I really like using themes as modules in Hugo, then your blog repository will be just your content directory, go.mod, go.sum, hugo.toml, and any layouts you want to override or add.

    .
    ├── .devcontainer
    │   └── devcontainer.json
    ├── content
    │   └── posts
    │       ├── 1718983133-post-1.md
    │       ├── 1720321560-post-2.md
    │       └── 1740070985-post-3.md
    ├── go.mod
    ├── go.sum
    ├── hugo.toml
    └── README.md
3 directories, 8 files
  • ashishb an hour ago

    > So, I really like using themes as modules in Hugo, then your blog repository will be just your content directory

    `themes` are small in size, why not copy them into your repository to keep the build hermetic?

Brajeshwar 5 hours ago

Strikingly similar to mine, except Jekyll instead of Hugo. I don't even build it locally these days. So, Obsidian > Github > Cloudflare.

Jekyll is slow for large content (my blog is huge), Hugo is fast. But I want to stay as mobile and lean as possible. I've tried and with a few changes in the template, I can move from Jekyll to Hugo in a weekend. I've also tried to stay as decoupled as possible from any templating engine (Jekyll), and hence rely mostly on pure HTML + CSS, while Jekyll is used more as the task runner. All the posts are separated by "YYYY" as folders and none of the posts have frontmatter.

I can also move between Github Pages, CloudFlare Pages, Netlify, or Vercel within hours if not minutes by just pointing the DNS to the ones that I want. I did this when Github Pages went down quite a few times about 3 years ago.

I almost went Markdown > Pandoc + Make but not worth it right now.

ValtteriL 6 hours ago

VSCode has been good enough for markdown blogging for me. Hugo compiles pages on save so its quick to iterate. The markdown preview plugin brings same experience to misc markdown editing.

No new editors to learn and one gets instant access to copilot etc.

  • _verandaguy 6 hours ago

    Why would you need copilot for blogging? Isn't the whole appeal of a blog that it's something you, a human created?

    • wolfgang42 2 hours ago

      Personally, I’m a lot better at recognizing good writing than producing it, and LLMs are great at being a “calculator for words.”[1] Writing posts became a lot easier once I got an automated editor I could tell to “break up this run-on sentence to make it less confusing” or “rearrange these paragraphs so I introduce concepts before I start using them”. The end result is still the same, but this way I save a lot of time I used to spend glaring at Roget, Strunk, and White.

      [1] https://simonwillison.net/2023/Apr/2/calculator-for-words/#c...

    • x187463 6 hours ago

      Copilot is helpful for handing formatting and repetitive structural stuff. It doesn't need to actually create the content to be useful.

  • ingav 5 hours ago

    I just like keeping all my writing in one place, separate from coding. Obsidian gives me that focused space, and I’ve set it up with a nice font and minimal theme that fits how I like to write.

bad_username 3 hours ago

> notes sync seamlessly across devices

Droobox and similar services have never been seamless for me with Obsidian. There will inevitably be some conflict when the same file gets edited on two machines, and an ugly conflict file will appear, with no easy way to resolve it without a specialized diff tool. Sometimes this conflict file will get unnoticed and a change will fall theough the cracks. Not a deal breaker - but not "seamless" either.

  • dtkav 2 hours ago

    You might be interested in our real-time collaboration plugin for Obsidian called Relay [0].

    Relay attaches a CRDT to the Obsidian editor. It makes collaboration really smooth and removes conflicts.

    Markdown collaboration is free, but we do charge for attachment/media storage. If you dm me (@dtkav) on our discord [1] or email me (in my profile) I'm happy to give out free storage to HN folks.

    One other benefit of using Relay is that you can use the new "App Storage" feature on Android to keep your files isolated and private on your device [2]. Using dropbox/gdrive forces you to store your notes in your documents folder and that means that they can be read by other apps.

    [0] https://relay.md

    [1] https://discord.system3.md

    [2] https://obsidian.md/changelog/2025-04-22-mobile-v1.8.10/

  • dathinab 3 hours ago

    that should only happen if either

    - you haven't setup auto save/auto sync

    - multiple people editing the documents

    - you frequently have no Internet and the application closed when you re-gain Internet or similar

    if only a single person edits the same document at a time and you always sync changes when they happen that should be a non issue

    • bad_username an hour ago

      You guessed one of the reasons correctly - I work offline (deliberately or accidentally) fairly regularly.

bryanhogan 5 hours ago

Very nice post!

I do almost the same, but instead I use Astro.

I use Obsidian, with a GitHub submodule for the content, and host it all as a static page. I wrote about that here if anyone is interested: https://bryanhogan.com/blog/obsidian-astro-submodule

  • J_Shelby_J 3 hours ago

    Same. I even built this for my GF to use. You don’t even need to download vscode as you can run it in a free dev container in browser: https://github.com/easy-astro-blog-creator/easy-astro-blog-c...

    The only thing I want is to implement a gui for adding and editing posts.

    • bryanhogan 22 minutes ago

      What you built is actually so great! Was also thinking of building something that makes blogging for less technical people easy without the downsides of a walled system.

      Haven't heard of dev containers like that before, but cool to see that they can be used like that.

caboteria 6 hours ago

I'm curious about the pros and cons of Cloudflare pages versus GitHub pages. Given that you're using GH as a repo, would it be simpler to also use it to serve pages?

  • seanwilson 6 hours ago

    https://docs.github.com/en/pages/getting-started-with-github...

    > GitHub Pages is not intended for or allowed to be used as a free web-hosting service to run your online business, e-commerce site, or any other website that is primarily directed at either facilitating commercial transactions or providing commercial software as a service (SaaS).

    Not finding a similar mention for Cloudflare... commercial sites are fine there?

    • semi-extrinsic 5 hours ago

      The way I understand this is not that Github Pages can't be used for commercial purposes, but that it's not OK for something like ecommerce with many users every minute which generates a lot of load?

      So a small company could host a static landing page with generic info and "contact us" etc., and that would be fine, I think?

      It also mentions that breaking the rules will result in getting a "polite email suggesting ways to reduce load on Github".

    • flanbiscuit 4 hours ago

      So a personal website with a personal blog is ok then.

      Curious though how it handles a surge in requests, like from being on the front-page of HN. But many open source projects host their doc pages with Github pages and some of those get a lot of traffic so I'm sure that it's not an issue

      • simonw an hour ago

        GitHub Pages runs everything through a Fastly CDN. You can tell like this:

          curl -i https://simonw.github.io/
        
        I get this:

          HTTP/2 200 
          server: GitHub.com
          content-type: text/html; charset=utf-8
          permissions-policy: interest-cohort=()
          last-modified: Wed, 16 Nov 2022 21:38:29 GMT
          access-control-allow-origin: *
          etag: "63755855-299"
          expires: Wed, 23 Apr 2025 18:20:50 GMT
          cache-control: max-age=600
          x-proxy-cache: MISS
          x-github-request-id: 3D02:22250F:11BEDCA:123BE7A:68092D2A
          accept-ranges: bytes
          age: 0
          date: Wed, 23 Apr 2025 18:10:50 GMT
          via: 1.1 varnish
          x-served-by: cache-pao-kpao1770029-PAO
          x-cache: MISS
          x-cache-hits: 0
          x-timer: S1745431851.518299,VS0,VE110
          vary: Accept-Encoding
          x-fastly-request-id: 0df3187f050552dfde088fae8a6a83e0dde187f5
          content-length: 665
        
        The x-fastly-request-id is the giveaway.
  • ingav 6 hours ago

    I already have several other projects and DNS managed in Cloudflare, so it made sense to keep everything in one place. GitHub Pages would definitely work too.

    • igravious 5 hours ago

      Where in the process do you integrate your custom domain (ingau.me) ???

      • ingav 5 hours ago

        I connect the custom domain in the Cloudflare Pages dashboard. Once the site is deployed, you can assign a domain under Pages > Custom Domains, and since I already manage DNS in Cloudflare, it's just a couple of clicks to route it.

  • _joel 6 hours ago

    If you're using cloudflare already then it makes sense, closer to the edge and all that, plus there's integration to make that all very seamless from gh.

vunderba 6 hours ago

I have a very similar setup, but I went a step further by writing a custom Obsidian plugin that handles compressing assets / transforming frontmatter / pushing the bundle up to my Github blog repo.

Github has an automated action that then uses Pelican (a python based static site generator) to convert to HTML and deploys it to my VPS where it is served by Caddy.

Makes it very easy to have a WYSIWYG interface, the blog pages look basically identical to Obsidian.

https://mordenstar.com/blog/obsidian-to-pelican-exporter

Pelican static site generator:

https://github.com/getpelican/pelican

  • lylejantzi3rd 5 hours ago

    Nice! I especially like the automatic compression of assets. It's such a pain to do it manually that I don't bother most of the time. I cross my fingers and hope the reader has a fast internet connection.

    • vunderba 3 hours ago

      Haha yeah I get that. I probably get the most savings from the animation compressor which checks if GIFs are over a certain threshold (> 1mb) and then seamlessly converts to autoplaying muted MP4 files which function nearly identically.

      I really wanted to use animated WebP but the iOS decoding is SUPER unreliable often resulting in choppy inconsistent framerates.

      One thing I don't do but I know is more common is using <Picture> elements to serve scaled assets depending on if the user is coming from mobile vs desktop.

      Depending on what you use for your blog, you might look and see if the SSG has plugins for media optimization. By the time I figured that out, I had already handrolled my own. :p

ksvarma 3 hours ago

This is really good to help overcome many fears of blogging!! Once you know your obsidian is linked, all your notes and writing would take next level of drafting to actually becoming a post. Thank you ingav!

Ps: Folks should chill out about wording here and there.

  • ingav 2 hours ago

    Thank you!

leonheld 6 hours ago

I profoundly do not understand why one needs Hugo or Jekyll or whatever other generator. Why not write HTML in the first place? It's so absurdly easy and it makes you not depend on external infrastructure at all.

I tried some generators but it was so much more complicated than writing a style sheet and some pages. Maybe for some more complex use-case, okay, I get it, but the author's blog is so minimal and simple.

edit: today I learned people have very strong opinions about static site generators. Good valid reasons, y'all. Maybe my use case really is too simplistic!

  • victorbjorklund 5 hours ago

    Because then you have 200 blog posts and suddenly you realize "oh I wanna add an author section to all my blog posts". That is 200 files to edit. Could you write a script to do the edit? Sure, but then you pretty much build a static site generator.

  • craftkiller 5 hours ago

    For me its mainly:

      - the ability to update every page on my site at-once in a uniform fashion (want to change the page layout or add a link in the footer, either you're manually editing a hundred HTML files or a couple lines in a single template file)
    
      - Syntax highlighting. My blog has code blocks so I would have to manually invoke a syntax highlighter for each code block (and every time I update the code I'd have to do it again).
    
      - auto-invoking graphviz and gnuplot. Similar to the code blocks, I write graphviz dot and graphviz blocks as code in my blog posts and have my static site generator render them to images. If I was manually writing the HTML then I'd either end up committing the built binaries (rendered images) to git (which, of course, is bad practice but ultimately inconsequential when talking about small SVGs for the few charts/graphs on my blog) or I'd have to have a "build" step where a script invokes graphviz/gnuplot to output the images which is the first step on the road to a static site generator.
    
      - Avoiding name collisions with internal anchor links (the kind with the `#` symbol that scrolls the page). I use these for footnotes and code block references. I could manually assign names for these for each blog post, but when combining multiple blog posts into a single list-view for the home page, there is the risk that I might reuse the same `#fn1` anchor across multiple blog posts. Using a static site generator, I don't need to concern myself with naming them at all and I have my static site generator assign unique names so there are no conflicts.
  • funkyfourier 5 hours ago

    I thought this too, but then it hit me that it will need pagination as the number of blog posts grow. Also updating links, footers, menus, headers etc also quickly becomes a nightmare.

  • Ezhik 6 hours ago

    Writing raw HTML is just not fun for some people.

    Obsidian is a nice middle ground between WYSIWYG and plain text - it doesn't send markup characters into the ether but at the same time does show you something close to the final text in real time.

    Closest thing we've had to WordPerfect's Reveal Codes in decades.

  • vunderba 6 hours ago

    That's a very technical perspective. If you're a note taker, you ALREADY write in a format that is comfortable for you. And like the vast majority of people who enjoy putting proverbial pen to paper, you aren't thinking about bloody html tags.

    The goal of generators is to reduce the friction of taking your notes/articles/etc. and wrapping them in thematically consistent HTML/CSS for your site. Once you've got it tuned/setup for your blog, they're pretty easy to use.

    Obviously in your use-case where you find static site generators more complicated, then you can stick with raw html.

  • 9dev 5 hours ago

    Id like to see you writing a semantically correct, accessible, responsive <figure> block containing an image of a chart displaying some data.

    It takes me nine characters plus URL and alt text in markdown using Hugo. I would be surprised if you get it right on the third try without consulting MDN, spending time to research, do image conversions, and fiddle with the <picture> tag and its srcset attribute.

  • viraptor 5 hours ago

    When I want to write longer content, the last thing I want to think about in that process is html tags. Doesn't matter how simple - if it distracts from content, it has no place at that stage of the process. I'm also very likely to include code snippets in any post I write and I extremely don't want to write the code colouring by hand every time.

  • fabianholzer 5 hours ago

    Changing common parts like the navigation becomes a bit of a chore without a ssg as soon as your site has more than a handful of pages.

  • lylejantzi3rd 5 hours ago

    Because writing in markdown is a nicer experience. You could convert markdown to html using Pandoc, but another nice thing that these blog generators do is templating and indexing. Neither of which is necessary, but still, they're nice, especially if it happens automatically when you push to github.

  • Macha 5 hours ago

    The separation of template and content is the reason. You don't want to have to run a find and replace to add a new link to your sidebar or whatever.

tjoff 5 hours ago

Zero cost is an antifeature.

It is just centralizing the web. You can do a lot with a $4 droplet if a single board computer isn't your cup of tea. Not "buying" into icloud/cloudfare is alone worth that cost. Also much more meaningful stack to learn.

Nothing against the post/author, I just feel the creativity to "exploit" features of the giants that is put in place just to undermine alternatives is misplaced.

treeblah 3 hours ago

I had a near identical approach for my blog but I recently moved to a headless CMS. The bugbear being that it wasn't easy to publish if I wasn't at my desktop. With a headless CMS, I auth through Github via my phone, which also serves as the draft/publish step since posts in the CMS manifest as pull requests. It's been working great so far, with the caveat that the writing experience isn't as nice as Obsidian.

FWIW the CMS is Decap CMS and I have it configured likewise with Cloudflare Pages (since Pages supports functions that are needed for the auth/callback cycle).

netsharc 3 hours ago

I've been wondering how to get off the Zuckerverse (I still post on Instagram) and wondered if I can streamline uploading pictures to my own website. I imagine a Telegram bot that receives an image + caption, with backend code that creates such a blog post and does a git push is one way of doing it.

It seems this post talks about blogging from the desktop. But I just installed Obsidian on Android, it allows a filesystem vault. I think pairing it with Syncthing and some automation on my NAS (to do a git push to Github/Gitlab) could make it very streamlined.

  • bayindirh 3 hours ago

    You can install or use any of the open pixelfed instances instead of Instagram.

    I stopped uploading to Instagram the day they started using images for AI training.

    If any of the file syncing applications work directly on the filesystem, I think you can use Obsidian on these folders and it'll sync automatically. On iOS, Obsidian defaults to iCloud, for example.

crooked-v 3 hours ago

I feel like Obsidian Publish must be really doing something wrong, when this sort of thing keeps catching interest when it's a lot more effort than just paying $8/mo.

  • packetlost 3 hours ago

    The one issue I have with Obsidian Publish is it's a bit of a pain to put your own SSL-secured domain in front of it. I run a nginx-based proxy as a bandage. I can see why someone would not want to pay $8/m for it though when there are a ton of free options out there. You have to remember that devs love flexing their skills and automating a blog can be fun, it's not really anything wrong with the service.

    • 2snakes an hour ago

      -Your own- yes, but Cloudflare is extremely easy.

Cieric 4 hours ago

I actually set up something close to this myself, but purely selfhosted. I never really wrote any posts though because I wanted to figure out a system for interactivity like some other blogs have done. The one that always sticks out in my mind is the "Let's remove Quaternions from every 3D Engine" post [1], I never really cared for the video aspect of it, but all the little examples to try and give a better 3d perspective of what's going on is the thing I've always wanted a good system for.

[1] https://marctenbosch.com/quaternions/

exiguus 3 hours ago

Is there a reason to use Cloudflare instead of github pages for static site hosting?

Ezhik 6 hours ago

Obsidian is honestly such a joy to write in - I use it for my blog as well:

https://ezhik.jp/

On my end I ended up building an entire custom thing that bastardizes SvelteKit to produce a static website that I then upload to GitHub Pages, but I think over-engineering a personal website is always good fun - and hey, I can tweak lots of silly aspects like how my post names get turned into /nice-and-readable-urls.

Out of curiosity, what's the advantage of using Cloudflare Pages over GitHub Pages? Both seem to require a GitHub repository.

  • ingav 5 hours ago

    Github Pages also works, I used Cloudflare since almost all my other projects are hosted there + I use it to manage DNS.

    • Ezhik 4 hours ago

      Understandable. I went with GH Pages for my new blog pretty much entirely because that's what my old site already used.

DLion 6 hours ago

I have been using this way of blogging for years now and it works perfectly.

I didn't know about Cloudflare pages, thanks for sharing!

I use Jekyll, Github pages and Cloudflare. I use hackmd for editing but Obsidian will work as well.

danieldk 5 hours ago

Shout out to Quartz, which produces a site similar to Obsidian Publish: https://quartz.jzhao.xyz/

(I would use Obsidian Publish, but it rendered far too slowly on some pages. I do use their excellent sync service though.)

blakesterz 6 hours ago

Very cool. I first setup my blog way back in the 90s and wrote the HTML by hand and used FTP to get it on the server. Then moved to phpslash and slashcode, Drupal and then Wordpress. Probably something else in there too. This setup feels much closer to how I was doing it in the 90s in some ways. It kind of feels like we've come full circle!

  • ingav 6 hours ago

    Yeah, I’m hoping this kind of setup gets more popular. It’s simple, fast, and gives you real control over your content.

D13Fd 4 hours ago

Honestly this sounds a bit cumbersome. I built my blog years ago using Puput (https://github.com/APSL/puput) and Render, and it has been running strong with minimal maintenance since then, with hundreds of posts. The software is all open source and free other than the minimal hosting fees.

If I want to do a post, I log in, draft the post in a simple rich-text editor with image support and keyboard shortcuts for formatting, and click "publish." I don't have to fool with anything, there is no chance of sync breaking, and it's instantly responsive.

The back-end is stored in Github, but the posts are stored, with revision history, in a Postgres database that I have full access to.

It's hard to envision a scenario where I'd prefer digging through a git repository to see a previous version of a post rather than just clicking into the CMS site and clicking on the historical version of the post that I'd like to look at, where it is instantly displayed including images. And even with daily blogging, the number of times I've actually looked at a prior version of a post is very low -- probably less than once a year.

  • ingav 4 hours ago

    Totally get that. My post was meant as a way, not the way. I already use Obsidian for most of my writing and notes, so this setup just fits naturally into my workflow.

    • D13Fd 3 hours ago

      That makes sense. I too use Obsidian for just about all of my notes (and nvAlt before that -- my Obsidian notes archive dates back over thirteen years). I think the key difference is that I don't use the Git CLI on a daily basis, so dropping down into the terminal to use git to publish a blog post seems like too much work.

      Keeping Hugo installed and up to date as part of the publish process seems like a headache as well. I like the blog to be totally separate from my local machine, so if I change anything or switch laptops, it doesn't interfere with the publication process.

      Manually adding the Hugo front matter to each post also strikes me as annoyingly fiddly, although you could use a text expander app to handle most of it. Another issue is that I'm not sure that Markdown would do well for the full scope of formatting, such as aligning images and adding image captions.

heltale 6 hours ago

I have largely the same setup but use neovim instead of obsidian.

A friendly tip: you don’t have to populate the metadata yourself and can use ‘hugo new <dir>/<post_name>.md’ to create the file with the metadata.

  • ingav 5 hours ago

    Nice, didn’t know that. Will try it out, thanks!

ahmedfromtunis 6 hours ago

For me it's (neo)vim, 11ty and netlify. I've be using netlify for years before CF launched their worker/pages offering.

I however use CF workers a lot to deploy single-purpose webapps for my personal use.

ksec 5 hours ago

This is completely off topic.

What hit me ( hard ) wasn't the blogging set up, it was this:

>And if anything’s unclear, LLMs like ChatGPT or Claude are great for filling in the gaps.

For people like me who grown up before Internet was a thing. If we dont understand anything we either have to go to the library to look it up go to find someone for help. Then it was encarta. When Internet arrived I could do look up faster, or more importantly if I am stuck anywhere I could ask on IRC or forums for help.

I am sensing a large part of learning on forums and online will be gone. Read the manual becomes ask the LLMs?

And I am sensing ( no offence ) the generation growing up with LLMs may be far worst. We already have a generation of people who think Googling the answer is 99% of the work when in fact the answer is not important. It is the process of getting to that answer that is largely missing from today's education.

Sorry about the off topic message. But that sentence really hit me differently.

  • csallen 5 hours ago

    Processes are always changing and getting easier. The process you grew up with was far easier than what people had to do decades before you, which was easier than the process decades before that, etc.

    It's easy to fret about, "How will the next generation survive in the world I grew up in, without the skills I developed?"

    But the answer is, they won't. Just like you don't need the same skills a caveman had because you live in a thoroughly transformed world, the kids of today won't need the same skills you had because they'll live in a thoroughly transformed world.

    Ofc some good or important things will always be lost from one generation to the next. But that's okay. Still, humanity marches onward.

flanbiscuit 4 hours ago

I have a sort of similar setup but I haven't started using Obsidian yet, it's on my todo list. I use Eleventy instead of Hugo, with its simple Eleventy-Base-Blog starter template. I use Github action to publish to Github pages instead of using Cloudflare. It's a nascent site/blog, haven't written much, no images yet, so I don't see the need for something more than Github pages right now.

One thing I don't see the author mention that is part of what I plan to do with Obsidian is use Syncthing (which I already use for other things) so I can work on a post when I'm not at my laptop. Probably just to write down ideas/notes and then fully work it out when I get to my laptop.

If the blog author is here, curious if they commit drafts to their repo or not. I personally don't commit drafts. Besides also using 'draft: true` in the front-matter, I gitignore any markdown file where the filename starts with the word "draft". When I'm ready to publish I rename the file.

https://www.11ty.dev/

https://github.com/11ty/eleventy-base-blog

  • ingav 4 hours ago

    Nice setup.

    Yeah, I do commit drafts. My repo’s private, so I don’t mind keeping everything versioned there, including posts still marked as draft: true.

    • flanbiscuit 3 hours ago

      ah yes, I was going to mention that if it's private then it's not an issue.

chyueli 6 hours ago

Local priority means that the written content can be automatically saved even when there is no network?

undebuggable 6 hours ago

My blog workflow and deployment are so simple they don't even deserve a blog post;)

bix6 5 hours ago

Awesome! I setup something similar recently for my website and love it. I go Cursor with Hugo to GitHub to Cloudflare. I saw many Wrangler mentions so want to look at that at some point?

It’s funny because we could ostensibly switch to any git hoster but it’s really only GitHub and gitlab huh? And Cloudflare is hard to beat.

salt-thrower 5 hours ago

Dropbox and Google Drive work for Obsidian on the desktop version, but the iOS version does not seem to support them.

HenryBemis 5 hours ago

The Hugo/GitHub combo has been around/mentioned for some years.. I thought of running a blog once (but then.. no) and this was the choice I would have made. But on the other hand, if you are going to post something online, just go to blogspot and call it a day. Because that's what you did there. A blogspot (but on MS instead of Google) with many-many-many extra steps.

  • ingav 4 hours ago

    True, Blogspot is simpler. But if it ever shuts down or changes policies, you’re at their mercy - and exporting your content cleanly could be a mess. With this setup, everything is just Markdown files and Git. I can move it anywhere, anytime, no lock-in.

philipwhiuk 6 hours ago

> max-width: 55rem;

Why???

  • mfro 5 hours ago

    I imagine this just mitigates the need to make the site reactive for mobile users. Everyone gets the mobile experience.

    I actually prefer reading like this, even on desktop. It feels like it causes less eye strain. Though I might prefer if it was closer to 65rem.

    • ingav 5 hours ago

      > It feels like it causes less eye strain.

      Yes that was the intention.

sneak 5 hours ago

I’m tired of the git workflow. I yearn for a CMS for my Jekyll.

voidUpdate 6 hours ago

Is the domain name free too?

  • ahmedfromtunis 6 hours ago

    Not the OP but I own some ab.xy type of domain names and use one of them as my personal gTLD.

    It's like having infinite "free" domains (even with the small fee for the base domain.)

    But the most important part is the fun of just having an entire namespace at your disposal to create whatever "domain name" in seconds.

    • voidUpdate 6 hours ago

      Do you mean you can easily spin up foo.ab.xy, bar.ab.xy and baz.ab.xy?

      • ahmedfromtunis 5 hours ago

        Yep. I recently built a noise generator app and hosted it at noise.ab.xy.

        Nothing technically groundbreaking (actually Cloudflare does it automatically for me), but it's a nice quality of life trick.

  • ingav 6 hours ago

    This was written assuming you already have a domain. If not, then yes that would be an additional cost.

Dathuil 5 hours ago

My own setup is similar but replace cloudflare with netlify and vscode with obsidian. However I do find writing markdown as someone with dyslexia to be a huge issue when it comes to spelling and grammer.

How is Obsidian for correcting this? Years ago I would have used something like grammarly to solve it but I'd rather something build it in if possible and make it as brainless as possible

  • ingav 5 hours ago

    I’m not totally sure, but Obsidian does have built-in spellcheck, and there are some community plugins like LanguageTool that might help with grammar. Haven’t used them extensively myself, but they could be worth checking out.

superkuh 4 hours ago

How I Blog with HTML and nginx - Zero Cost, Fully Owned: Step 1. install nginx from repos on my home desktop computer. Step two: write html files and put them in directories under the web root. Step 3. forward port 80 to the webserver internal IP on my router config. Step 4. Link people to http://your.ip.here.a/somepage.html or maybe rent a .com domain.

I've been doing it for 20+ years (xitami and thttpd before nginx) and it not only has an infinite lifetime (because it's .html and files) but it also has no attack surfaces or mantainence required.

All that static site generator and remote corporate services stuff will break within a year if left untouched. And re: security, running a static nginx server from home is about 10,000x less of a security risk than opening a random page in $browser with JS enabled. nginx RCEs are less than once a decade. And DoS re: home IP? A vastly over-stated risk for most human people. In my 20+ years I've never had a problem, and even if I ever do, who cares? It's not like my personal website needs nine 9s of uptime. It can be down for days, weeks, with no issue. It's just for fun.

  • ingav 4 hours ago

    But I’d say “infinite lifetime” only holds as long as your hardware, power, and IP setup stay stable. If your home machine dies or your router resets, things go offline fast.

    That’s part of why I prefer hosting the static output somewhere external. Not perfect, but it lets me step away from the setup for months and still have it running.

    • superkuh 4 hours ago

      Yes, I do need society to continue existing and for me to not be homeless. I guess I hadn't considered the needs of the unhoused. For them self-hosting is going to be a problem. For everyone else, not a problem. Going briefly offline for a week literally doesn't matter at all. This isn't a business or institutional service. Once you stop trying to fulfill the needs and constraints typical of those endevors you can see just how easy it is.

      As for IP, when it changes you can just copy the new IP and stop sending links with the old IP to friends. It's not a big deal. But a domain is nice (either some dyndns subdomain or a real tld with free DNS hosting (and dyndns updates) by zoneedit or the like).

dang an hour ago

[stub for offtopicness]

[submitted title was "How I Blog with Obsidian, Hugo, GitHub, and Cloudflare – Zero Cost, Fully Owned"]

  • zoezoezoezoe 5 hours ago

    I really dont agree with "fully owned", you arent running on anything you actually own ie self-hosting. It's all on the cloud, which dont get me wrong, is pretty cool and helpful, but hardly yours.

    • ingav 5 hours ago

      I’m using “fully owned” more in the sense of control rather than infrastructure ownership. The content lives locally, it’s versioned in Git, and everything’s built with open tools. I can move it to another host any time without being locked into a specific platform or format.

      I agree it’s not “self-hosted”. But compared to a closed CMS or paid platform, it feels meaningfully more in my hands.

      • NelsonMinar 3 hours ago

        You're getting a lot of pushback but I agree with the sentiment of fully owned. Sure, the git repo and static files are hosted elsewhere for now. But you can easily switch that place any time. Meanwhile all the important stuff: the post data, the code to format them, the domain name, the process itself. That's all in your complete ownership and control. It's a very different bargain than, say, hosting things at wordpress dot com.

        • tasuki 3 hours ago

          But the git repo is also fully on their local computer. Isn't that owning? Just because there's a copy elsewhere does not invalidate the local copy!

      • Minor49er 5 hours ago

        In that sense, everything is "fully owned" and the phrase is meaningless. But in the context of the summary where you're using it, it certainly sounds like you are claiming ownership on the infrastructure

        • zoezoezoezoe 5 hours ago

          I do agree that the phrasing may be poor, but I see where ingav is coming from, if you're using hosted Wordpress and only keep your data in the Wordpress CMS, if Wordpress disappears today, so does all of your content. Although, that may seem foolish to some of us, there are definitely people out there who do that.

          • tanelpoder 3 hours ago

            Yup. I'm using Vim + Hugo + GitHub + Netlify in a similar fashion. Just edit my markdown post, git push and it shows up on my website. I used some other static hosting service previously, don't even remember which one, but switching was super easy as I just pointed the output to some other bucket. So the public web hosting provider is completely commoditized and easy to switch from.

            Also, I like treating my blog as a version-controlled, declarative "codebase" that's just a bunch of plaintext files (no MySQL tables, XML or JSON to crawl through).

        • kelvinjps10 3 hours ago

          You don't own for example the comments in this platform or the post that you make on Facebook or writing platforms like substack, if you are using notion you don't your notes

        • jollyllama 3 hours ago

          The phrase to use would be something like data ownership. Something more specific.

        • johnmaguire 3 hours ago

          I don't know, where do you draw the line? If I host it myself using nginx running on a VPS, does that count? Or still no, because I don't own the VPS?

          What if it's a dedicated machine, colocated? What if it's at home, but I pay an ISP?

          edit: Downvoted, care to explain why? I genuinely wrestle with this question. I self-host lots of services at home - and I also self-host services on a cloud VPS, which have better availability and security posture with regards to my home network for things I make public or semi-public. Some have told me this isn't "self-hosting" and I am not sure where the line is drawn.

      • dietr1ch 5 hours ago

        I'd go for fully static, which can be served everywhere.

        I think blogs should be built like this to make preservation easier. I'd love to have something that make content domain agnostic, more like git that allows cloning and distributing content without forcing people to guess when to pull and archive if they want to keep track of things.

      • zoezoezoezoe 5 hours ago

        I see, I do agree it is nice to have your data fully owned (like really) and safe on device (or devices), though, sometimes it doesnt feel like enough in the ever changing landscape of the internet.

        • esperent 4 hours ago

          People get protective of the term self hosted, but all I know is that if I search "how to self host" for any open source project, 90% of the guides at least, probably including the project's own docs, will be about installing on a VPS.

          Anyway, the important thing is being in control of your own data. With proper off-site backups and reproducible setups using containers, migrating between VPS providers should usually take just a few hours.

          I fully understand the arguments for (and against) managing your own server. But I've not been convinced by any arguments for that server being in your house/office rather than a climate controlled warehouse somewhere.

          Well, unless you enjoy setting up and managing the physical hardware yourself of course. That's fully reason enough.

          • zoezoezoezoe 3 hours ago

            I'm definitely in that last camp I like self-hosting with my own hardware on my own network because it's really fun.

      • 6stringmerc 4 hours ago

        But if they kill your access to those accounts do you have a method to force them to let you back in to get “your” content? Serious question as I self-publish and use a distribution service for my music but I stop short of your claim. I’m an independent rights holder. I don’t own the platforms upon which I choose to distribute my work - terminology does matter and, well, you’re claiming something basically untrue because it sounds cool…that’s my impression.

        • squidbeak 3 hours ago

          Why would he need to be 'let back in to get' his content? This is a static site: he's already got it.

    • corobo 4 hours ago

      If we're going to nitpick that far they'd need to start an ISP and lay their own fibre too

      Personally I feel if you can quickly pull out of a provider and host elsewhere with maybe just a config change - aye the data is fully owned, close enough.

      • 6stringmerc 4 hours ago

        Can you make them give it back if they nerf / quash your account? That’s true ownership, in my view.

        • ForHackernews 4 hours ago

          Git is natively distributed. One would hope he has a local copy of the repo.

  • righthand 6 hours ago

    Not “fully-owned” though if you need external services to do the heavy lifting. I think they mean deployed onto a personal vps.

    • bitbasher 5 hours ago

      "Fully-owned" when it's relying on GitHub Pages, Hugo, Obsidian and Cloudflare to function.

      Two of which are services operated by a corporate entity and one of which is a closed source piece of software.

      The only thing "owned" here is the fact that the entire blog is simple markdown and the domain name. However, that doesn't mean it's very portable. It's not impossible, but it's a lot more work than I would want to do.

      • mind-blight 4 hours ago

        Obsidian is just a very convenient markdown editor. You could rip and replace it with another editor trivially. You just don't get the convenient UI

    • jprjr_ 6 hours ago

      It's deployed onto Cloudflare Pages - I think this is 100% the opposite of fully-owned.

      • wongarsu 5 hours ago

        As long as they use their own domain and have that registered with some other registrar they can trivially move the blog to any other hoster, including a random VPS. So while the current setup depends on github and cloudflare they don't hold much power over him.

        It's not really fully-owned, but it's owned in the ways that matter most

      • riffraff 5 hours ago

        I think the point is that it's not someone else's blogging service. If CF or GH die, you can port this to some other platform or your own server without losing anything, compared to e.g. blogger.

        • ingav 5 hours ago

          Yes. That's exactly what I meant. The content is not locked-down and is fully portable.

    • Saris 5 hours ago

      I'd argue it is, because it's portable to any other service. As in you own all the content and methods to generate it.

      • righthand 5 hours ago

        But he doesn’t. If Cf or Gh go down he has to reconfigure the whole mess. Portability != full-ownership.

        • Saris 4 hours ago

          No matter what host it's on, even if you run it at your house, if something goes down you'll need to do the same.

          The internet as a whole relies on a huge variety of services all working as they should.

        • greyman 4 hours ago

          As a corporate senior eng, this does't look like a mess to me - just a few things, easily configurable in the matter of hours. My only concern would be if Cloudflare pages offer truly unlimited bandwidth, but so far the site is live. :-)

        • yawnxyz 3 hours ago

          If he hosts from his house, if he loses internet he'll still have to reconfigure the whole mess. We don't own anything.

  • Zambyte 6 hours ago

    What do you mean "fully owned"? There is no mention of that in the post

    Edit: I guess you mean the content itself is still on your machine if the services go away, and you can choose to host them elsewhere

    • ingav 6 hours ago

      By "fully owned," I mean that I control the entire stack:

      - Content is just Markdown files in my local Obsidian vault

      - Hugo builds the site locally - no dependency on external editors or platforms

      - GitHub is just used for version control and deployment

      - Cloudflare Pages handles static hosting, but I can move it elsewhere anytime

      • greyman 4 hours ago

        Thank you for your post, it's very sensible setup. Does Cloudflare Pages offer unlimited bandwidth?

        • ingav 4 hours ago

          Thank you. Yes they offer unlimited bandwidth.

    • intrasight 6 hours ago

      I don't think there is a good term in the context of the Internet. Or offline for that matter. Even if you printed your blog and handed it out on street corners, for it to be "fully owned" would that mean you make your own ink and paper?

      • jprjr_ 5 hours ago

        So I agree in the sense that, you're always going to rely on something. Even if you're hosting on hardware you own at your house, using your own self-signed SSL certificates, you're still relying on an internet connection from some company.

        But, I think using the term "fully-owned" to refer to pushing up to GitHub, then deploying to Cloudflare Pages is definitely not "fully-owned"

        • ingav 4 hours ago

          What I meant by "fully-owned" is really about owning the content and the workflow: everything lives locally in plain text, versioned in Git, and built with open tools. I can move it to any host without being locked into a platform or losing anything.

          You're right that hosting on GitHub and Cloudflare isn't infrastructure ownership. I should’ve been more precise with the wording.

      • angra_mainyu 3 hours ago

        "Vendor-agnostic" maybe? It's not perfect but I get where OP is coming from. Personally, the use of the term is completely reasonable.

      • throwaway519 5 hours ago

        It would mean you owned the ink and paper.

        The OP's fully owned is analogous to someone else doing the printing for the privelege of spying on your readers.

      • gosub100 3 hours ago

        You're being obtuse. Paper and ink are fungible commodities. Try again.

    • lucideer 6 hours ago

      While "fully owned" is ambiguous, the only other term I can think of here would be "fully portable", which has other connotations, so it's probably the best term for this.

      Would be nice to coin an unambiguous term for this as it's a useful design goal.

  • begueradj 5 hours ago

    Obsidian, Hugo, Github, Cloudflare ... none of those are owned by you.

    • victorbjorklund 5 hours ago

      Obsidian is just an editor for markdown files, Hugo is open source. If we can't count open source as "self-owned" then god no one owns anything because pretty much no one runs their computer on a OS they build from scratch with no contributors or using any existing code.

    • Brajeshwar 5 hours ago

      The idea is to use them as tools that get the job done and get out of the way, while you own the content. All of these tools are easily replaceable and the pipeline can still publish to the final blog domain without any worry.

    • Saris 5 hours ago

      Obsidian is just a markdown editor, so the files are portable. The context is that the content and methods to publish it are not someone elses.

  • xyst 5 hours ago

    “Zero cost” until cloudflare management decide to kill the free program.

    • bryanhogan 5 hours ago

      There are so many other services that allow you to host static pages for free though, at least currently.