[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)