[HN Gopher] How I blog with Obsidian, Hugo, GitHub, and Cloudflare
       ___________________________________________________________________
        
       How I blog with Obsidian, Hugo, GitHub, and Cloudflare
        
       Author : ingav
       Score  : 240 points
       Date   : 2025-04-23 13:00 UTC (10 hours ago)
        
 (HTM) web link (ingau.me)
 (TXT) w3m dump (ingau.me)
        
       | voidUpdate wrote:
       | Is the domain name free too?
        
         | ingav wrote:
         | This was written assuming you already have a domain. If not,
         | then yes that would be an additional cost.
        
         | ahmedfromtunis wrote:
         | 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 wrote:
           | Do you mean you can easily spin up foo.ab.xy, bar.ab.xy and
           | baz.ab.xy?
        
             | ahmedfromtunis wrote:
             | 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.
        
       | caboteria wrote:
       | 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?
        
         | _joel wrote:
         | 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.
        
         | ingav wrote:
         | 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 wrote:
           | Where in the process do you integrate your custom domain
           | (ingau.me) ???
        
             | ingav wrote:
             | 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.
        
               | igravious wrote:
               | Thanks :)
        
         | seanwilson wrote:
         | 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 wrote:
           | 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 wrote:
           | 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 wrote:
             | 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.
        
             | jerf wrote:
             | The "front page of HN" has not scaled like the rest of the
             | computing hardware has scaled. The smallest VM you can get
             | serving static content will yawn at the full power of an HN
             | surge. Unless you have a very 200x-era bandwidth limit, or
             | you're trying to be on the front page of HN with a 250MB
             | web page (which does happen), it's not anything to be
             | concerned about anymore.
        
       | blakesterz wrote:
       | 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 wrote:
         | Yeah, I'm hoping this kind of setup gets more popular. It's
         | simple, fast, and gives you real control over your content.
        
       | ahmedfromtunis wrote:
       | 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.
        
       | vunderba wrote:
       | 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 wrote:
         | 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 wrote:
           | 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
        
         | BeetleB wrote:
         | Upvote for Pelican. I never understood why so many people don't
         | consider it and jump straight to Jekyll/Hugo.
        
       | heltale wrote:
       | 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 wrote:
         | Nice, didn't know that. Will try it out, thanks!
        
       | ValtteriL wrote:
       | 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 wrote:
         | Why would you need copilot for blogging? Isn't the whole appeal
         | of a blog that it's something _you_ , a human created?
        
           | x187463 wrote:
           | Copilot is helpful for handing formatting and repetitive
           | structural stuff. It doesn't need to actually create the
           | content to be useful.
        
           | wolfgang42 wrote:
           | 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...
        
         | ingav wrote:
         | 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.
        
       | DLion wrote:
       | 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.
        
       | leonheld wrote:
       | 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!
        
         | vunderba wrote:
         | 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.
        
         | Ezhik wrote:
         | 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.
        
         | viraptor wrote:
         | 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.
        
         | 9dev wrote:
         | 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.
        
         | funkyfourier wrote:
         | 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.
        
         | fabianholzer wrote:
         | 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.
        
         | Macha wrote:
         | 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.
        
         | Brajeshwar wrote:
         | How do you plan to manage 1,000+ posts with HTML and make
         | changes that are similar across all pages, say, the location of
         | your static assets (images) or something common like footer,
         | nav, etc?
        
           | lylejantzi3rd wrote:
           | You don't have to. It's just a blog. Fabian Sanglard doesn't.
           | 
           | compare https://fabiensanglard.net/fastdoom/ to
           | https://fabiensanglard.net/fluide/.
        
         | victorbjorklund wrote:
         | 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.
        
           | Lammy wrote:
           | `sed -i` is one command: https://www.gnu.org/software/sed/man
           | ual/sed.html#index-_002d...
        
             | jerf wrote:
             | And you built a static site generator.
             | 
             | Or at least, you will have as you realize things like you
             | only wanted to do that on certain categories or
             | whathaveyou.
             | 
             | You can in principle just write HTML with no script
             | support, but it itself becomes an exercise in conspicuous
             | asceticism. It is not unreasonable to want things like "the
             | last 5 posts" on every page on a blog, or an RSS feed, or
             | any number of other very basic, simple things that are
             | impractical with an editor and raw HTML.
        
               | Lammy wrote:
               | I use Jekyll actually. That's totally not the point I'm
               | trying to argue :p
        
         | lylejantzi3rd wrote:
         | 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.
        
         | craftkiller wrote:
         | 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.
        
         | corobo wrote:
         | Because I don't want to publish the millions of draft posts I'm
         | procrastinating on right now
        
       | Ezhik wrote:
       | 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 wrote:
         | Github Pages also works, I used Cloudflare since almost all my
         | other projects are hosted there + I use it to manage DNS.
        
           | Ezhik wrote:
           | Understandable. I went with GH Pages for my new blog pretty
           | much entirely because that's what my old site already used.
        
       | undebuggable wrote:
       | My blog workflow and deployment are so simple they don't even
       | deserve a blog post;)
        
       | pembrook wrote:
       | 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.
        
         | ingav wrote:
         | 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 wrote:
         | 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 wrote:
           | There probably should be one, maybe taking turns with the
           | biweekly Authors of custom static site Generators Anonymous
           | meeting
        
         | barrenko wrote:
         | It's our Hello World of sorts.
        
           | netsharc wrote:
           | I remember someone presenting a development framework and
           | saying something similar to this, "Of course, I used it to
           | build a blogging platform..."
        
         | freetonik wrote:
         | I've noticed this a lot, too, and made this drawing as a joke:
         | https://rakhim.org/honestly-undefined/19/
        
           | ceautery wrote:
           | I'm in the "old-ass blogger.com site" category, with posts
           | going back to '05.
        
             | martylamb wrote:
             | Literally just posted my newly hogoized site that dates
             | back to 2003 THIS MORNING. :)
        
           | realprimoh wrote:
           | This is hilarious, and so true
        
           | rsync wrote:
           | Oh, you put me on your graph!
           | 
           | "Weird Dude Who Writes Raw HTML"
           | 
           | My most recent example:
           | 
           | https://kozubik.com/items/wago_audio/
        
             | gen220 wrote:
             | Just a small word of unasked-for-advice... consider
             | compressing your images further! Even ignoring bandwidth
             | concerns, a 1.3MB image takes a while to paint :)
        
         | ChadMoran wrote:
         | 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 wrote:
           | 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
        
         | devsda wrote:
         | 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".
        
         | nickjj wrote:
         | 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.
        
         | sorokod wrote:
         | or filler posts like this one in the same blog:
         | 
         | https://ingau.me/notes/asymmetric-encryption/
        
         | BeetleB wrote:
         | A bit unfair to the OP, given that he actually does write posts
         | on his blog.
        
         | wolfgang42 wrote:
         | I've been through a couple of different tools for my personal
         | blog, and, having seen this trap, every time I did the
         | migration I made sure to write a blog post about something
         | completely unrelated instead. A few years ago I built my own
         | static site generator and I vowed that I would never try to
         | publish it for other people to use, another trap[1] that often
         | springs on enthusiastic developer-blogger types.
         | 
         | [1] https://news.ycombinator.com/item?id=21616774
        
       | philipwhiuk wrote:
       | > max-width: 55rem;
       | 
       | Why???
        
         | mfro wrote:
         | 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 wrote:
           | > It feels like it causes less eye strain.
           | 
           | Yes that was the intention.
        
       | chyueli wrote:
       | Local priority means that the written content can be
       | automatically saved even when there is no network?
        
       | mbil wrote:
       | Nice setup. I use Jekyll but recently moved to a flow where I
       | author posts as rich text emails and a process on the receiving
       | end persists them as markdown and compresses images. It could be
       | improved but so far has been working well.
       | 
       | https://matthewbilyeu.com/blog/2025-04-06/blogging-via-email
        
       | Dathuil wrote:
       | 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 wrote:
         | 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.
        
       | Brajeshwar wrote:
       | 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.
        
       | sneak wrote:
       | I'm tired of the git workflow. I yearn for a CMS for my Jekyll.
        
       | ksec wrote:
       | 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 wrote:
         | 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.
        
         | jajuuka wrote:
         | I grew up the same way and it's for sure wild to think back how
         | if we had a question about something we had to do digging at a
         | library to find the answer hopefully. Now it's just search and
         | done. Or read a wikipedia page about it.
         | 
         | I do see the "I asked chatGPT" response more and more and
         | initially had a similar feeling but I think it's still early
         | days for LLM's. Will they be around in 10 years and ubiquitous
         | like search engines? Who knows. But undoubtably they will get
         | better over time and more accurate. Just like how the early
         | internet had a lot of bad information on it, it got better over
         | time.
         | 
         | This might also be a divide between different types of people.
         | Personally I am very curious and want to really understand how
         | something works so I get tons of information that won't help me
         | solve a problem, but I understand the tool or part better. I
         | would guess you might be in the same basket. But there are also
         | people who just want the answer to solve the problem. They
         | don't care how it works they just want it to work. And that's
         | fine. It takes all kinds. Not everyone needs to have a masters
         | in CS to use a computer or program one. Best we can do is try
         | and nurture curiosity among other people and help them figure
         | out ways to learn more and more.
        
       | danieldk wrote:
       | 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.)
        
       | tjoff wrote:
       | 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.
        
       | bryanhogan wrote:
       | 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 wrote:
         | 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 wrote:
           | 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.
        
       | bix6 wrote:
       | 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 wrote:
       | Dropbox and Google Drive work for Obsidian on the desktop
       | version, but the iOS version does not seem to support them.
        
       | HenryBemis wrote:
       | 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 wrote:
         | 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.
        
       | flanbiscuit wrote:
       | 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 wrote:
         | 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 wrote:
           | ah yes, I was going to mention that if it's private then it's
           | not an issue.
        
       | Cieric wrote:
       | 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/
        
       | fareesh wrote:
       | I have a similar setup - my post goes into some more details on
       | getting a few things working like embedded tweets etc
       | 
       | https://fareesh.com/post/config-to-content/
        
       | superkuh wrote:
       | 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 wrote:
         | 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 wrote:
           | 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).
        
         | quesera wrote:
         | Yikes, I'd strongly discourage unfiltered ingress PAT to your
         | desktop machine.
         | 
         | I know you have acknowledged the decision to entrust nginx with
         | all of your personal data and tax records and bank statements
         | and legal documents and browser history and GitHub credentials
         | and ssh private keys and so on.
         | 
         | But it's still madness. You are one oversight, accident, or bug
         | away from total pwnage.
        
           | superkuh wrote:
           | All of this applies to using your browser and your browser
           | automatically executes code from _random sources_. If this is
           | your threat model then how are you even posting on HN? Shut
           | down that insecure browser quickly. It is tens of thousands
           | of times more likely to expose your personal data etc etc
           | than nginx.
           | 
           | Running nginx isn't madness. Thinking nginx is more of a risk
           | than your normal daily behavior certainly is.
        
       | hk1337 wrote:
       | 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 wrote:
         | > 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?
        
         | sureglymop wrote:
         | Just out of curiosity, what would the Hugo toml file look like
         | and do you use multiple themes?
        
       | D13Fd wrote:
       | 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 wrote:
         | 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 wrote:
           | 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.
        
       | netsharc wrote:
       | 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 wrote:
         | 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.
        
       | treeblah wrote:
       | 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).
        
       | pwillia7 wrote:
       | Big fan of DecapCMS if you get tired of only writing from VScode
       | or w/e.
       | 
       | https://decapcms.org/
       | 
       | Shameless plug for my AI blog run on Hugo --
       | https://reticulated.net/
        
       | crooked-v wrote:
       | 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 wrote:
         | 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 wrote:
           | -Your own- yes, but Cloudflare is extremely easy.
        
       | ksvarma wrote:
       | 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 wrote:
         | Thank you!
        
       | bad_username wrote:
       | > 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.
        
         | dathinab wrote:
         | 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 wrote:
           | You guessed one of the reasons correctly - I work offline
           | (deliberately or accidentally) fairly regularly.
        
         | dtkav wrote:
         | 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/
        
           | bad_username wrote:
           | Thanks!
        
           | sureglymop wrote:
           | Very interesting! A while ago I worked on a toy project that
           | would allow for realtime collaboration for obsidian vaults
           | located on a nextcloud instance.
           | 
           | Basically, I saw that nextcloud built their own realtime text
           | editor based on TipTap so I created an obsidian extension to
           | connect to it.
           | 
           | Unfortunately work and uni got in the way but it was a very
           | interesting idea/learning experience.
        
             | dtkav wrote:
             | wow, that's awesome! Did you open-source it? I'd love to
             | take a look.
        
       | exiguus wrote:
       | Is there a reason to use Cloudflare instead of github pages for
       | static site hosting?
        
       | dang wrote:
       | [stub for offtopicness]
       | 
       | [submitted title was "How I Blog with Obsidian, Hugo, GitHub, and
       | Cloudflare - Zero Cost, Fully Owned"]
        
         | Zambyte wrote:
         | 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 wrote:
           | 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 wrote:
             | Thank you for your post, it's very sensible setup. Does
             | Cloudflare Pages offer unlimited bandwidth?
        
               | ingav wrote:
               | Thank you. Yes they offer unlimited bandwidth.
        
           | lucideer wrote:
           | 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.
        
           | intrasight wrote:
           | 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_ wrote:
             | 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 wrote:
               | 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.
        
             | throwaway519 wrote:
             | 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.
        
             | angra_mainyu wrote:
             | "Vendor-agnostic" maybe? It's not perfect but I get where
             | OP is coming from. Personally, the use of the term is
             | completely reasonable.
        
             | gosub100 wrote:
             | You're being obtuse. Paper and ink are fungible
             | commodities. Try again.
        
         | righthand wrote:
         | Not "fully-owned" though if you need external services to do
         | the heavy lifting. I think they mean deployed onto a personal
         | vps.
        
           | jprjr_ wrote:
           | It's deployed onto Cloudflare Pages - I think this is 100%
           | the opposite of fully-owned.
        
             | riffraff wrote:
             | 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 wrote:
               | Yes. That's exactly what I meant. The content is not
               | locked-down and is fully portable.
        
             | wongarsu wrote:
             | 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
        
           | bitbasher wrote:
           | "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 wrote:
             | 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
        
           | Saris wrote:
           | 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 wrote:
             | But he doesn't. If Cf or Gh go down he has to reconfigure
             | the whole mess. Portability != full-ownership.
        
               | greyman wrote:
               | 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. :-)
        
               | Saris wrote:
               | 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.
        
               | yawnxyz wrote:
               | If he hosts from his house, if he loses internet he'll
               | still have to reconfigure the whole mess. We don't own
               | anything.
        
               | righthand wrote:
               | So we're agreed, "fully-owned" is not the correct choice
               | of words.
        
         | xyst wrote:
         | "Zero cost" until cloudflare management decide to kill the free
         | program.
        
           | bryanhogan wrote:
           | There are so many other services that allow you to host
           | static pages for free though, at least currently.
        
         | begueradj wrote:
         | Obsidian, Hugo, Github, Cloudflare ... none of those are owned
         | by you.
        
           | Brajeshwar wrote:
           | 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.
        
           | victorbjorklund wrote:
           | 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.
        
           | Saris wrote:
           | 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.
        
         | zoezoezoezoe wrote:
         | 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 wrote:
           | 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.
        
             | Minor49er wrote:
             | 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 wrote:
               | 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 wrote:
               | 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).
        
               | jollyllama wrote:
               | The phrase to use would be something like data ownership.
               | Something more specific.
        
               | kelvinjps10 wrote:
               | 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
        
               | johnmaguire wrote:
               | 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.
        
             | zoezoezoezoe wrote:
             | 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 wrote:
               | 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 wrote:
               | I'm definitely in that last camp I like self-hosting with
               | my own hardware on my own network because it's really
               | fun.
        
             | dietr1ch wrote:
             | 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.
        
             | 6stringmerc wrote:
             | 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 wrote:
               | Why would he need to be 'let back in to get' his content?
               | This is a static site: he's already got it.
        
               | blackoil wrote:
               | As long as domain control isn't lost, he can quickly move
               | from Github to Gitlab/gitee/self hosted and from
               | CloudFlare to Netlify/DO/AWS.
        
             | NelsonMinar wrote:
             | 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 wrote:
               | 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!
        
           | corobo wrote:
           | 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 wrote:
             | Can you make them give it back if they nerf / quash your
             | account? That's true ownership, in my view.
        
               | ForHackernews wrote:
               | Git is natively distributed. One would hope he has a
               | local copy of the repo.
        
         | focusgroup0 wrote:
         | not your atoms, not your bits
        
       | jagged-chisel wrote:
       | > ... and no risk of platforms disappearing or changing policies.
       | 
       | Those risks still exist. GitHub and Cloudflare can do these
       | things at any moment.
        
         | connicpu wrote:
         | 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.
        
       | tiffanyh wrote:
       | Or just use Obsidian Publish (and eliminate Huge, Github and
       | Cloudflare)
       | 
       | https://obsidian.md/publish
        
       | ipsento606 wrote:
       | > 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 wrote:
         | 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.
        
           | anon7000 wrote:
           | Similarly, Obsidian is just a markdown editor. So you're not
           | even relying on their free tier; you could use any other
           | markdown editor on the planet with the same results. Or any
           | cloud file syncing tool.
        
         | gexla wrote:
         | You don't have so much platform risk when you're hosting a
         | static site. It's not like spending a fortune on development
         | time to build on AWS just to find that the platform is a
         | liability for the company, but you're locked in to the vendor.
        
       | tmaly wrote:
       | 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.
        
       | trollbridge wrote:
       | Back in the day, I just blogged by appending a text file, and
       | then later an HTML file.
        
       | Vingdoloras wrote:
       | 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.
        
         | anon7000 wrote:
         | I mean, Obsidian is just a markdown editor. You could keep an
         | identical publishing setup and use any text editor on the
         | planet :P
         | 
         | But I honestly _despise_ writing raw markdown in an IDE. If I
         | 'm writing (not coding), I need it to be somewhat visual, which
         | means I want WYSIWYG -- and Obsidian is an excellent markdown
         | editor, even if you don't use the other features.
         | 
         | My reasons for not liking writing "raw" markdown:
         | 
         | - Long links take up too much space. I put it in text so it'd
         | be hidden
         | 
         | - No syntax highlighting in code blocks
         | 
         | - Text wrapping/font is typically not configured for easy
         | reading of text
         | 
         | - A ton of markdown features are for visual formatting.
         | Highlighting, bold, underline, strike-through, inline code,
         | etc. If you stay in raw IDE no-preview, you never get the
         | visual benefits.
         | 
         | - When I'm using markdown, I'm often _mostly_ reading, and
         | doing some writing, but even when I 'm writing, I'm re-reading
         | what I wrote constantly. It's annoying to switch to preview
         | mode. Writing mode in IDEs isn't a pleasant reading experience
         | unless you do a lot of configuration. (depending on the IDE of
         | course)
         | 
         | I mean, writing raw md is fine for tiny little things. But
         | because reading & writing are so linked, I don't like separate
         | modes for each. I want to write _in_ the visual mode I read in.
        
           | mrbombastic wrote:
           | I find it annoying that I can get stuck in a mode when I am
           | editing and the app is trying to render at the same time
           | (e.g. I write some backticks to make a code block and
           | Obsidian tries to be smart and add the second set and it
           | encapsulates a bunch of lines I don't want it to) but to each
           | their own I suppose. Vscode for what its worth has a preview
           | that you can keep open side by side to see the visuals as you
           | edit.
        
           | nottorp wrote:
           | > If I'm writing (not coding), I need it to be somewhat
           | visual, which means I want WYSIWYG
           | 
           | <cough> You didn't grow up with WordPerfect 5.1 for DOS with
           | reveal codes on, did you? :)
        
         | fallinditch wrote:
         | Another benefit of using an IDE like VSCode for writing and
         | publishing your blog is you can use the copilot AI to fill in
         | the front matter details for you, easily add a table of
         | contents, or add a cohesive structure of subsections. Don't
         | forget the shift + CMD + v command to see see a preview within
         | VSCode.
         | 
         | Hugo is a great choice for an SSG, I find it logical and
         | intuitive. As for extending it with a CMS front end, I looked
         | at Decapcms.org - formerly Netlify CMS - it gives you the
         | WYSIWYG editor and you can hook it up to an asset management
         | platform like Cloudinary for images.
         | 
         | BTW just checked Cloudinary pricing - generous free tier looks
         | like plenty for most blogs.
        
       | wood_spirit wrote:
       | I set up a friend's prolific blog with a very similar approach
       | many years ago using pelican and pushing to a git server vps
       | where a tiny custom python wevserver serves whatever is in git.
       | 
       | Only friend has struggled to get pelican and git etc set up on a
       | new laptop. And tbh I am lost - and horrified - at the latest
       | windows. Not keen on being tech support and working out why
       | python command hangs etc.
       | 
       | And my custom vps setup doesn't do tls. And I don't want to try.
       | 
       | So I'm wondering if there are any alternatives? Is there a web
       | frontend for blogging straight to ghpages, for example?
        
         | killingtime74 wrote:
         | Maybe your friend should pay someone (not you) for tech
         | support. It shouldn't take that long
        
       | sureglymop wrote:
       | Lately I've been trying out Astro for my blog and it's actually
       | kind of nice. I like how actively it gets developed.
       | 
       | What I regret though was using Tailwind. Mainly because I later
       | couldn't find a straightforward way to just use normal CSS and
       | ignore that within the scope of some component/page.
        
       | mmcnl wrote:
       | My blog is self-hosted on a Dell Latitude E7270 with 1 Gbit/s
       | fiber connection. No Cloudflare. It handled the #1 position on HN
       | last year quite well. I use self-hosted Ghost as a headless CMS
       | with a Nuxt frontend.
        
       | thevivekshukla wrote:
       | That's a nice way to write blog using Obsidian. I am using zola
       | for my blog[1] and I might use obsidian for better UI.
       | 
       | For my work[2] I am using SvelteKit and written my own blog using
       | mdsvex and enabled pre-render. That works well too.
       | 
       | [1]: https://vivekshuk.la [2]: https://daestro.com/blog
        
       | khimaros wrote:
       | the last i checked, hugo didn't support wikilink syntax. they
       | don't seem to be doing anything to get around this, so my
       | assumption is that they aren't using them.
        
       | hexage1814 wrote:
       | You can use archive.org for file hosting.
        
       | dv35z wrote:
       | I'm wondering if someone can help me brainstorm my setup -
       | 
       | How to handle images & video content, when using git to track
       | files? I'll explain my setup...
       | 
       | My vision is a somewhat "lo-fi" and 10+ year durable system - so
       | even my "CI/CD" is more local, in the form of shell scripts,
       | rather than remotely (like GitHub Actions)
       | 
       | I have a folder, that's basically my-website.com, and it has a
       | folder `docs` for content (that's `mkdocs` default content
       | folder). The top level directory is a git repository, which is
       | pushed to Codeberg (code repository, similar to GitHub).
       | 
       | As a content editor, I currently use VSCodium (open-source
       | VSCode) + FOAM (clone of ROAM, similar to Obsidian, which lets
       | you cross-link Markdown files with Obsidian-style links
       | [[MyLink]]. To be specific here, on MacOS, I created a shortcut
       | to the website folder on Finder, and I drag that onto the
       | VSCodium app icon, when I want to write. It's a pretty easy
       | workflow on my computer (not practical on mobile)
       | 
       | I use MkDocs to generate the HTML site. I use a simple deploy
       | script to run `mkdocs build` and `aws s3 sync` to copy the files
       | to an AWS S3 bucket.
       | 
       | This all works pretty well, but I'm now trying to figure out how
       | to handle photos & videos.
       | 
       | To give an example, I would have something like `~/_Websites/my-
       | website.com/docs` and inside of that I would have
       | `journal/2025/04/2025-04-23.md` as a journal entry. Related
       | photos and videos, I use `journal/2025/04/media` - so its sort of
       | a catch-all for all the media files for the month.
       | 
       | Recently, I added some large videos (unrelated: but I'm recording
       | video of my CNC router doing cool stuff), and quickly realized
       | 
       | (1) Git is not the right spot for large media (I knew this, but
       | just hadn't hit the problem yet - seeing how long `git pushes`
       | take).
       | 
       | (1.1) I actually have a broken repo right now, as I committed
       | video files into it, and can't `git push` without the network
       | connection being cut. I think it may be on the Codeberg side,
       | because they have a limit of 1 GB per repo.... So I'm also trying
       | to figure out how to back out the change, get the video file out
       | of there, and arrive to a better solution.
       | 
       | (2) After reading `git-lfs` (Git Large File Storage) website
       | several times, I can't quite figure out how to integrate it - or
       | IF I should integrate it.
       | 
       | (3) Now, I'm noodling on having something like a `MEDIA.my-
       | website.com` directory, which is basically a non-git-tracked
       | folder structure of photos/videos, which I would then rsync to a
       | separate S3 bucket - and then website content could reference it.
       | However - I'm fearful that over time, the markdown content and
       | the media site would be out of "sync" - I frequently re-organize
       | content as needed. For example, I might start with a `python`
       | folder, and a `java` folder, but then later create a top-level
       | `programming` folder. I could see doing the same with the media
       | folder too. `padel` and `squash` folder (containing video clips
       | of games, how-to's) might be grouped under a `sports` folder, and
       | so on. Dragging these folders around while the media content is
       | inside the folder usually doesn't cause problems, because of
       | relative links. However when the content & media are in different
       | file structures, broken links would happen - and this reduces the
       | "fluidity" / increases friction in naturally re-organizing the
       | site with time.
       | 
       | To conclude: - How to handle video media with git tracked
       | markdown content?
       | 
       | Anyway! I appreciate your patience in reading this, and hope you
       | get the idea of the setup - curious what folks who have been down
       | this route can recommend.
        
       | 1oooqooq wrote:
       | and no access logs :(
        
       ___________________________________________________________________
       (page generated 2025-04-23 23:01 UTC)