16 ms·
Blog with Markdown and Git, and degrade gracefully through time
- Ericson2314 6y agoI hope with the IPFS and nix stuff I've worked on, we could someday have a world where you can distribute and archive the source of a static site, and the thing can be built and rendered on demand without tons of security and reproducibility issues.
- prepend 6y agoI think this is an important “feature” but find that people either get or don’t. When I describe how cool it is that the version and history of a post is included in git and therefore reliable, I get sort of pleasant nods. But then people will fixate on having bullet lists in tables or something and give up on markdown. Not that blog posts are life changing or anything, but having a format that’s durable and reliable seems important. I lost my blog from college back in 95 when I got my first job and didn’t think to archive my shell account. I wish I had, even as a memento. One thing I think that factors into it is that age is kind of nice for slowly removing stuff that’s not used from existence. Posts from 20 years ago might not be good to keep around if no one is reading them. No the gradual degradation that comes naturally from new phones, computers, hosts, jobs might be a feature for some people who don’t necessarily want everything around forever.
- ljm 6y agoThis is pretty much how I do it. I built my SSG using Hakyll and host the resulting binary on my own Debian repo, that way I can write a post in any flavour of text that Pandoc supports (though I go with Markdown for simplicity) and within about 20 seconds my CI pipeline has built and pushed a new version of my site (using scp). Easily done by myself too but at least I know with the CI approach that I'm writing to git first and then publishing. I'm part way through the implementation of showing the commit history for each post and linking it to the commit hosted on sourcehut. It provides another view on the content the same as hosting a gopher or gemini version would: clone it and read the things in the posts folder however you want.
- benedikt 6y agoHow do you push and install a Debian package with scp?
- ljm 6y agoAfter compiling the binary (with haskell-stack) I use fpm to package it up as a .deb (https://github.com/jordansissel/fpm https://github.com/jordansissel/fpm). I then scp the file into the pool directory on my server, and re-run a script that calls apt-ftparchive and regenerates the contents of the repo (https://manpages.debian.org/buster/apt-utils/apt-ftparchive.1.en.html https://manpages.debian.org/buster/apt-utils/apt-ftparchive....). My web server hosts that directory with indexing enabled, but I don't use apache for it like most examples do. There's nothing special about it, it's just a directory tree built in a way that apt likes. (https://pkg.kamelasa.dev/ https://pkg.kamelasa.dev/). In fact, the entire configuration of the repo is visible there. There's a step in the middle where I sign the packages with my GPG key, and the public key is available on Ubuntu's keyserver (http://keyserver.ubuntu.com/ http://keyserver.ubuntu.com/). I don't need to run this workflow very often, as it'll take about 40 minutes to rebuild and push. But if I do update my SSG I know it'll end up in my debian repo with a version bump, so I'm happy. On a second pipeline I can just do a simple 'add-apt-repository' and 'apt install'.
- 0xbadcafebee 6y agoThe longest living websites are forgotten accidents. It's always some ancient webserver using maybe a single RAID-1 array of two tiny spinning disks, running forgotten software that is never ever updated. The uptime on those boxes are not uncommonly measured in decades. Somebody's credit card just keeps gets charged $40 a year ($10 for the domain and $30 for the website hosting), and the machine never gets touched. Typically it sits in the back of a dusty rack for a website hosting vendor (or, rarely, a colo provider) and the gear has long since paid for itself, but also is unmaintainable due to not even having the remotest semblance of a service warranty or service parts (other than what somebody might have ordered as spares years before). If it ever loses power, everything starts back up on boot time and it keeps on chugging, defying the usual laws of computer entropy.
- bobbydreamer 6y agoI am using Gatsby for my site https://www.bobbydreamer.com https://www.bobbydreamer.com and saving the markdowns at git here https://github.com/bobbydreamer/bdv32 https://github.com/bobbydreamer/bdv32 I haven't setup CI pipeline yet. It true whats said in the post, I used to save links thinking it won't disappear. But most the links, I had saved, it's no more.
- simpixelated 6y agoI have a similar setup for my blog and I'm using Netlify for both CI and hosting (free). It's been great! GitHub Actions could probably work well for you if you already have decent hosting.
- ketzo 6y agoAny particular guide or set of docs you recommend for that? I've heard a lot of good things about Netlify as far as hosting, and I've been wanting to set up a blog; seems like as good a time as ever to start learning.
- jdsalaro 6y agoI've evaluated Netlify for my blog at https://jdsalaro.com https://jdsalaro.com and I'd advise against that unless you're missing a CMS on your static site generator. Other than that I personally felt it didn't bring much to the table. I do admit that their CMS is slick, but it wasn't really a feature I needed. Of course I'm not sure what other people are using them for, but in my case GitLab/GitHub covered all my bases pretty well since I wasn't looking for a pelican/hugo CMS and you still host somewhere else (not Netlify).
- linkdd 6y agoGithub's main business is not Github Pages or be a CDN. Netlify's main business is. Netlify also provides deployment previews for commits and PRs, and a complete CI/CD pipeline that you would have to implement yourself with Github Actions or something else. The CMS isn't what I need either, but there is so much more than just hosting.
- johnchristopher 6y agoI wish people would stop using github as a swiss knife CDN (free hosting, hooks, history through git repo, etc) and build higher altitude solution that could leverage git/MD/whatever but with free/opensource/selfhosted/alternative tools (like gitea instead of github and minio instead of S3 for instance).
- snow_mac 6y agowhy?
- eevilspock 6y ago"free/opensource" -> !M$
- johnchristopher 6y agoNot really, "free/opensource/selfhosted/alternative" [0] as in "here this minio bucket that behaves like S3 but you can play with it without an amazon bill of death that may or may not be coming". [0] Also, thanksnotreally for cherry-picking and putting words in my mouth with your use of `!M$`, screw you too.
- chipotle_coyote 6y agoSetting aside how weary I am of "M$" (it's just about tied with using "sheep" to describe Apple users), what on God's green earth does Microsoft have to do with the OP's point? GitHub itself is not and was never open source. It's not like Microsoft bought it and closed off the source. Do you think using Microsoft tools demonically injects anti-FSF sentiment into your work? ("I started using VS Code, and now whenever I try to work on GPL 3 software, my keyboard becomes too hot to touch until I close the window!") Personally, I have a different take than the OP, although I'm not sure this is really a disagreement. I would argue open data formats are more important in this context. If I write text in Markdown, it doesn't matter whether I'm using Emacs or a closed-source, proprietary commercial editor; the text isn't tied in any meaningful way to the editor. Likewise, a Git repository hosted on GitHub isn't tied in any meaningful way to GitHub. It's... a git repo. As long as GitHub isn't doing anything that I particularly object to -- and "oh woe, it is owned by Microsoft" is not an objection I share -- there's a pretty good case for continuing to use it. I'm taking a calculated risk that it's both unlikely to go away anytime soon and to markedly change business direction in an unfriendly way, but if it does? As long as my local copy is up to date, I can re-publish it anywhere and just, well, stop using GitHub.
- Smaug123 6y agoI used to have my blog source on GitHub, but then it turned out I didn't want my half-finished works-in-progress public. To use a private repository would rather defeat the point; using a private repo and a public fork is inviting confusion. Now I just use a private repo on my own server, cloned to my dev machine. Does anyone have a usable solution for that problem?
- wereHamster 6y agoStop caring about unfinished, public wip. In the end, nobody but you is really bothered by its imperfections.
- Smaug123 6y agoI knew someone would say that. It's not about imperfections per se; more that I sometimes write stuff that I then reconsider and delete before it ever sees print. Admittedly nowadays I mostly self-censor that stuff before even starting to write it, but a few years ago I wrote a lot more stuff that, after reflection, I considered it would be unwise to go ahead and publish.
- simpixelated 6y agoI personally don't move anything into git until it's close to ready. WIP writing is kept on Bear (Markdown editor). But there are tons of other apps, including ones that sync to a cloud.
- gglitch 6y agoI have a branch and remote called "publish", and a branch and remote called "draft". I suppose if I ever accidentally pushed the draft branch to the publish remote, I'd just delete the branch from the remote.
- samatman 6y agoYou could set up an integration to automatically reject a branch called 'draft', if you really cared to. Edit: this is easy, in fact: you make a copy of your 'publish' branch on the publishing site, call it 'draft', and then protect it.
- vitorfs 6y agoI started my blog about python/django (https://simpleisbetterthancomplex.com https://simpleisbetterthancomplex.com) using Jekyll and hosting on Github Pages and it was pretty good to get started because back then I wasn't sure if I would keep it up or not. After a year or so I migrated to a 5 USD droplet on Digital Ocean (back then GH Pages didn't offer https for custom domains) and integrated with Github webhooks to automate the deployment when pushing new markdown to the main branch. Over the time it indeed started to degrade. The build time takes almost a minute, but after building the website is just a bunch of static html pages. Nowadays it is annoying to write new posts because I like to write locally and refresh to browser to check if it's looking good or not. So I would say it degraded for me but for the reader it's still as fast as it was when there was just a couple of posts. I thought about migrating the blog to something else, but because I used some custom markdown extensions for code highlight and other things, it would be painful to migrate all the blog posts. So I've been postponing it since 2019.
- dopeboy 6y agoSide note - big fan of your blog. You're killing it at SEO.
- vitorfs 6y agohey, thanks! :D
- Lammy 6y agoIs it slow to regenerate a single post even with Jekyll’s ‘—incremental’ mode?
- vitorfs 6y agoyes because of a bad design decision I made to create a custom "related posts", which is a code that searches all my markdowns to pick the best pages and add to the current page. so even with `--incremental` it take quite some time to regenerate
- pronoiac 6y agoI worked on a wiki that fell off the web; I've thought about recovering it from scrapes, and rewriting entries so that search wasn't needed, so that the Wayback Machine mirror worked better. Maybe using Kiwix tools to make a self-contained, downloadable backup, too.
- w4rh4wk5 6y agoSomething that I feel is missing here is the problem with dead links. Even if the same content is still available on the very same blog, links might change when you decide to change your stack. I might still be able to get around it, but it's still a pain.
- habitue 6y agoIn terms of extracting the actual blog content from pages, there is a go library that implements the readability algorithm: https://github.com/mauidude/go-readability https://github.com/mauidude/go-readability This is the kind of thing pocket/instapaper do to extract the main content from a page in a format that's easier to read (and also probably to programmatically modify)
- intrepidhero 6y agoFor all the (deserved) complaints people have about wordpress, it's been around since before git or markdown was even a thing. For all its faults, its been pretty resilient to time. The real reason most websites disappear is a much more human one.
- hobofan 6y agoYes, if you constantly update your installation, which is the exact opposite of what this blog post is about. Otherwise you run a pretty good risk of your installation being hijacked, overtaken by spam bots or similar after a few years.
- freedomben 6y agoYep. I run a few WordPress sites and the amount of maintenance with them is crazy. The plugin model makes maintenance brutal too since it's all independent devs with different release cycles, testing practices, etc.
- spurgu 6y agoFollowing the philosophy of simple hosting + MD outlined in the OP then the WP equivalent would be something like a simple (official twenty*, or your own custom) WP theme with zero (or minimal amount of) plugins. Enable auto-updates on WP and you're done. The more plugins you use, the faster entropy kicks in without maintenance. With WP in general though I definitely agree.
- freedomben 6y agoAgreed, if you stick with the twenty* themes and keep it simple, you can get pretty far with very little maintenance. For simple sites, especially where we don't do comments, I've started using Simply Static though to just generate pre-rendered pages. All the benefits of static site builder with all the conveniences of a CMS.
- 6y ago
- staysaasy 6y agoIMO the biggest barrier to blogging (and the cause of most blogs dying) is inconvenience, and minimizing that if the biggest advantage of Markdown + Git. If there's any inconvenience at all, it naturally drags on the process of writing, and writing takes enough time and focus that if there's any friction it's too easy to push things off to the next day. My co-author and I use Markdown and Git as the author suggests, and one of the best things is that between simple CI/CD pipelines and effortless scaling of a static site, we don't need to do any technical work so there's no friction on my lifestyle. We've been writing for almost a year now, 4+ posts a month, and 99% of that "work" has just been writing. Writing with a partner helps a ton as well.
- yhoiseth 6y agoLove your blog!
- WorldMaker 6y agoOn the inconvenience front, I think that also makes it clear why so much stuff that would have been blogs, say prior to 2013 to pick a pseudo-random date [1], is that the convenience of various walled gardens got very convenient. It's really easy to post an update to the walled garden social media site of your preference (Twitter, Facebook, TikTok, Tumblr, whatever), and with network effects really conveniently easy to have some sense of readership (even if it just Likes or Faves or whatever). There are some blogs that I realize will never "come back" so long as "everyone is on Twitter these days". Because Twitter is still so much more convenient that blogs (even ones in Markdown + Git). [1] Okay, not actually random, it was the Google Reader shutdown year. Google Reader provided a lot of convenience to RSS, including social media-like network effects, that almost brought blogs mainstream.
- ducktective 6y agoAnyone have any experience with Hugo? It started out as a fast single binary static site generator but it seems it is now dependent on Go being installed on the host...
- Arainach 6y ago....no, it's not? It still works just fine as a static generator.
- tristor 6y agoIt's not dependent on Go being installed on the host... I'm not sure why you think this is the case. Like most Go applications, it's compiled into a single static binary.
- ducktective 6y agohttps://gohugo.io/hugo-modules/use-modules/#prerequisite https://gohugo.io/hugo-modules/use-modules/#prerequisite And it seems some themes are using this feature, therefore one can not say that Hugo is a single-binary static site generator anymore.
- chubot 6y agoThis is how the Oil blog is made: it's markdown in git, and it renders fine in Github. I use a bunch of old Unix tools that will be around forever to make it look nice: http://www.oilshell.org/site.html http://www.oilshell.org/site.html The toolchain has changed significantly in 4+ years. It started as literally a shell script invoking Gruber's original markdown.pl. Then I switched to CommonMark, etc. But the core data hasn't "rotted" at all, which is good. Unix is data-centric, not code-centric. Previous thread that mentions that Spolsky's blog (one of my favorites) "rotted" after 10+ years, even though it was built on his own CityDesk product (which was built on VB6 and Windows). He switched to WordPress. Not saying this is bad but just interesting. https://news.ycombinator.com/item?id=25675869 https://news.ycombinator.com/item?id=25675869
- frenchy 6y ago> The toolchain has changed significantly in 4+ years. It started as literally a shell script invoking Gruber's original markdown.pl. Then I switched to CommonMark, etc. Wouldn't switching formats like that break peoples pages? That's one concern I have with using markdown for a site like this. For anything non-trivial, you either end up using HTML (in which case, what's the point) or some dielect-specific feature.
- chubot 6y agoCommonMark solves that problem! It's a precise standard for Markdown that multiple implementations are converging on (Pandoc, etc.) CommonMark is a Useful, High-Quality Project http://www.oilshell.org/blog/2018/02/14.html http://www.oilshell.org/blog/2018/02/14.html At the bottom of this article I note one incompatibility I encountered with the reference CommonMark vs. markdown.pl. But I just fixed those and have been using it for 3 years, and it's been great. ---- The key point is to have a diversity of implementations, so you don't get locked into one, which may go away in 10-20 years. In 10-20 years, I'm very confident that there will be CommonMark renderers available. (Even apart from the fact that the reference cmark implementation I use is extremely compact C with no dependencies. C will outlive Perl -- the Lindy effect at work! http://www.oilshell.org/blog/2021/01/philosophy-design.html#the-lindy-effect-designs-that-have-lasted-50-years http://www.oilshell.org/blog/2021/01/philosophy-design.html#... )
- fudged71 6y agoMaybe a naive question... But wouldn't it be great for Github to have a blog-specific type of repo? With functions similar to substack and medium.
- jerrygoyal 6y agothat's exactly what I did for my blog and achieved 90+ on lighthouse audit. Google is considering core web vitals to rank pages from this year (may 21). I don't want to rely on an external hosting provider who usually loads tons of tracking code, analytics scripts, irrelevant scripts to hosted sites (looking at you Wix). blog: https://gourav.io/blog https://gourav.io/blog repo: https://github.com/GorvGoyl/Personal-Site-Gourav.io/tree/master/pages/blog https://github.com/GorvGoyl/Personal-Site-Gourav.io/tree/mas... Build with next.js, mdx, tailwind and deployed on vercel.
- walterbell 6y agoYour favorite static site generator can be used with free, no-ads hosting at indie https://neocities.org https://neocities.org. Their $5/mo plan adds custom domains and higher disk/traffic quotas.
- android2222 6y agoI actually follow this sentiment with my resume andyhablewitz.com
- Falkon1313 6y agoWhen I last had mine out I went a step further. Just a single static HTML page, with a little CSS in the HEAD. A single request for a single file, easily saved. No build or deploy process. No javascript, no stack of dependencies, no docker containers, no dependence on github or any other third-party site. For a full blog, I would use a static site generator, but not for something well-served by a single static page.
- allanrbo 6y agoA bit morbid I know, but I've been thinking I would like my blog to outlive me. I have my blog on blogger.com, and while I've been tempted to switch to something more modern and fun in a container on a VPS, I've resisted, because I think blogger.com is not going away in my lifetime. A VPS and a personal domain on the other hand is going to get shutdown when someday I die and my credit card gets closed. At this stage Github Pages is probably also as likely to stick around as Blogger though.
- Ayesh 6y agoOf all the Google services, blogger is surprisingly kept alive for all this time. I don't think it gets any new updates or new features though.
- jaredcwhite 6y agoThere is a problem in the CMS industry. Everyone wants to build a headless CMS to power Jamstack sites—only the content itself lives in databases and the CMS is usually a proprietary SaaS. Doesn't leverage Git for content in any way. This is deeply problematic. We should have dozens, if not hundreds of contenders for "the next WordPress" that leverage Git as a foundational aspect of content management. Instead we have a bunch of Contentful clones (no disrespect to Contentful) with REST and/or GraphQL APIs. It's bananas that if you search for Git-based CMSes you have NetlifyCMS, and…wait what? Is that all??? Forestry gets mentioned a lot because it's Git-based but that's also a proprietary SaaS. I just don't understand it. Is this a VC problem or a real blind spot for CMS entrepreneurs?
- lhorie 6y agoOne explanation comes from just looking from the content creator's point of view: they kinda don't care what previous iterations of the work really look like (draft-final-v5-oct27-FINAL.doc anyone?) The things a content creator might be more interested in aren't really core git strengths: SEO, publishing schedules, editorial back-and-forth, social media, etc.
- jaredcwhite 6y ago"SEO, publishing schedules, editorial back-and-forth, social media" Hmm, not really core PostgreSQL strengths either. What am I missing?
- bobthebuilders 6y agoPostgres can automatically optimize those things.
- lhorie 6y agoWordpress isn't popular because of its choice of database or any specific technology, it's popular because it's feature set is user-centric.
- misterbrian 6y ago
- pjfin123 6y agoIf you want something to live on the web long after you've lost interest in it static HTML/GitHub pages seems like the way to go. The chess board I built in high school to learn JavaScript is still going strong: https://github.com/PJ-Finlay/JavaScript-Chess-Board https://github.com/PJ-Finlay/JavaScript-Chess-Board
- mod 6y agoPer the timestamp, that's ~5 years. I've got a personal domain I've had for 20 years now. GitHub wasn't there, and I wouldn't bet a whole lot it will be there in another 20. I think it's likely, but nothing close to guaranteed. Git didn't exist then, either. It's pretty easy to mirror your own git repos, so that's a nice option, and to have stuff hosted on GitHub, your own, and maybe BitBucket as well. But nothing is going to beat having your own backups--which I DO still have, from as early as 2000.
- calessian 6y agoI run my blog using perhaps the most boring option - Wordpress, with close-but-not-quite the default theme (different fonts mostly). Outside of adding a cover image on every post and occasional footnotes, I don’t really need much. However, that’s pretty lightweight on decisions I had to actually make to publish, and all the alternatives seem to be more involved. I wouldn’t mind migrating off WordPress, but just on the theming side that has a decent chance of involving a non-free theme, making the idea of hosting it on a public repo somewhat of a non starter...
- dfinr 6y agoMkDocs plus Material theme on GitHub pages is pretty sweet. Automatic dark mode, useful plugins. I migrated from WordPress, no looking back.
- CameronNemo 6y agoI cut my teeth on Hugo and mdbook, and mkdocs was a breath of fresh air. No crazy templating, no pseudo-markdown index files, and lots of flexibility in the site and page structure.
- thebouv 6y agoNever heard of this but now I'm in love. Now to figure out what I can write about. Though I'm definitely going to use this for internal docs at work probably. Very nice.
- mfkp 6y agoDo you have an example link of a site running mkdocs with material theme? Edit: I'm guessing it's this? https://squidfunk.github.io/mkdocs-material/getting-started/ https://squidfunk.github.io/mkdocs-material/getting-started/
- byhemechi 6y agoyeah, that'd be the the one. Not too sure if mkdocs material is the best theme to go with for a blog, though. Here's a site using it: https://docs.libretro.com/ https://docs.libretro.com/
- tomcam 6y agoAt my age, degrading gracefully through time is about the best I can hope for
- dharmab 6y agoI'm using pandoc for my site (https://www.dharmab.com https://www.dharmab.com). It's a bio/profile, not a blog, but I think it's OK (other than I'm lazy and haven't auto-generated smaller resolution images for mobile).
- magicalhippo 6y agoSome 15 years ago or so I made a PHP script that took a Word document, saved in XML format, and turned into a static HTML page as part of my blog. It would rely on the paragraph style, turning "Header 1" into <h1> etc, as well as extract images and such. Lately I've been seriously thinking of reimplementing that, as I just can't seem to find a decent static site generator. They all seem to require a bunch of plugins and configuration just to do the bare minimum a blog requires. I just want to write, add some code or images, have it look somewhat decent and publish it without worrying about getting hacked due to some WordPress security issue.
- kemayo 6y agoDepending on what you think of as "the bare minimum", I'd think Jekyll or Hugo would work. E.g. the Hugo quick start guide is pretty much just "install Hugo, pick a theme, add your content" and gets you a barebones sequence-of-posts blog: https://gohugo.io/getting-started/quick-start/ https://gohugo.io/getting-started/quick-start/
- magicalhippo 6y agoThe issue with the quick start is that it's a bit too bare bones by the look of it, and the documentation for anything more complicated gets very confusing by someone new to it. I'll give it a whirl tho, thanks!
- tristor 6y ago> I just can't seem to find a decent static site generator. Maybe you and I have very different ideas of what is required to write a blog, but it sounds like you should be able to use Hugo + the theme of your choice and just go with it. It's /very/ easy, and posts are all written in Markdown.
- magicalhippo 6y agoThanks for the input. For me a bare-bones blog needs to support simple-to-use images, that is auto-resizing images with link to full etc without a ton of hoopla, syntax highlighter for code and some tex-ish thing for math. From what I can see Hugo does seem to have a lot of that these days, so I'll try that. One immediate issue is the highlighter not supporting my language at work (Delphi/Pascal) but I assume it being Pygments-compatible means I should be able to add that without much fuss.
- pinjasaur 6y agoPlug for Blot[1] which makes it trivial to have a directory of Markdown source files and supporting assets (images, mostly) for my blog[2]. [1]: https://blot.im/ https://blot.im/ [2]: https://paul.af/ https://paul.af/
- alexeldeib 6y agoblot is great! so simple, just works.
- Terretta 6y agoSee also Caddy web server: Rendered: https://caddyserver.com/docs/caddyfile https://caddyserver.com/docs/caddyfile Markdown: https://github.com/caddyserver/website/blob/master/src/docs/markdown/caddyfile.md https://github.com/caddyserver/website/blob/master/src/docs/... Unofficial How-To thread: https://caddy.community/t/markdown-support-in-v2/6984 https://caddy.community/t/markdown-support-in-v2/6984
- vhanda 6y agoSelf Promotion: You can use GitJournal [0][1] to manage the blog posts from your mobile. It's just a convenient git + markdown client on mobile. I'd built this for managing notes, but it seems that many many people use it for their websites. (Including me) [0] https://gitjournal.io https://gitjournal.io [1] https://github.com/GitJournal/GitJournal https://github.com/GitJournal/GitJournal
- Terretta 6y agoThanks for this tool, btw.
- tristor 6y agoI've found much the same. I hadn't touched my site in 2 years, and just started working on it again and was able to nearly seamlessly pick up where I left off thanks to it all being done in Markdown. The flip-side is that many of the resources I'd previously linked to are gone. I'm starting to take a more archival approach to source materials and references as I write about them in the future.
- m463 6y agoI wish emacs did markdown in native wysiwyg. I would use it 1000% more than I do now. I only know of emacs markdown where you run an external process to view it (and that requires and extra install or whatever)
- zoobab 6y ago"or fun, I tried “de-archiving” an old colleague’s blog from The Wayback Machine. Getting the first few pages was easy, but getting the whole thing, and with quality/precision, was very hard." Any good tool to extract a website from archive.org?
- gwern 6y agohttps://github.com/hartator/wayback-machine-downloader https://github.com/hartator/wayback-machine-downloader (I discuss it on my https://www.gwern.net/Search https://www.gwern.net/Search tutorial and use it every once in while eg to make my mirror of 'Climb Mount Improbable' https://www.gwern.net/docs/genetics/selection/www.mountimprobable.com/index.html https://www.gwern.net/docs/genetics/selection/www.mountimpro... or 'Hard Truths From Soft Cats' https://www.gwern.net/images/hardtruthsfromsoftcats.tumblr.com/index.html https://www.gwern.net/images/hardtruthsfromsoftcats.tumblr.c... )
- samatman 6y agoThis reminds me once more of a piece of the puzzle which we're still missing. Markdown + git is great, but leaving your blog up on Github is just another central point of failure; Github feels like a fact of nature right now, but it's just a website at end of day. Most broadly, it's called content-centric networking. Bittorrent is a piece of that puzzle, but too static, with no obvious way to connect disparate hashes together into a single entity. IPFS and Secure Scuttlebutt are groping in the right direction. There was a project called gittorrent which, as you might guess, was trying to be 'bittorrent for git'. It never really went anywhere, the crew at https://radicle.xyz https://radicle.xyz are looking to revive it and I wish them the best of luck. What I want is a single handle, such that, if there are still copies of the data I'm looking for, out there on the network, I can retrieve them with that handle. And also, any forks, extensions, and so on, of that root data, with some tools to try and reconcile them, even though that may not always be possible. That would be really powerful. It would made information more durable and resilient, and has the potential to change the way we interact with it. Like I find typos in documents sometimes, it would be nice to be able to generate a patch, sign it so it has a provenance, and release it out into the world. When I browse old blogs which still exist, I routinely hit links to other blogs, video, and the like, which are just gone. Sometimes Wayback Machine helps, often it doesn't. This problem can't be fixed completely, when data is gone, it's gone, but we could do a lot more to mitigate it than what we're doing now.
- pwdisswordfish6 6y agoA general solution for Wayback-style long-term distribution and archiving has been spec'd out (as part of the Memento Project), but nobody seems to be adopting it.
- misterbrian 6y agoI agree with Markdown + Git. I recently migrated my personal tech blog from Jekyll to Nuxt with static generation and the @nuxt/content API. I had some difficulties preserving the /YYYY/MM/DD/slug.html routes that I had used for my markdown files. It is very nice to be able to mix markdown and Vue components, but this adds additional work for cross-posting and future site migrations. For example, I recently wrote an article about YC's Work at a Startup that contains some interactive visualizations embedded in the markdown file I used to draft the content as Vue components. If I want to cross post, I'll probably need to maintain another version of the markdown that either contains static images of the interactive elements and/or links back to my site (on GitHub pages).
- gitgud 6y agoI use hexo, it's a simple structure (git + md) easy to publish to a CDN and the src lives on github. https://hexo.io/ https://hexo.io/
- luord 6y agoI use GitHub/GitLab pages and build my site using Pelican, so I'm pretty much already there. Coincidentally, just two days ago I too went through my RSS subscriptions and, fortunately, most of them were still online, but sadly quite a few hadn't been updated in years, so it's likely that this will happen to them. Safe to say, I agree wholeheartedly with the author.
- einpoklum 6y agoWhat if you started blogging in 2000? Or even in 2005, when git and Markdown existed, but were still not popular? Would you say... HTML and subversion/CVS is appropriate for long-term blog storage?
- coding123 6y agoThe thing about the net is that it's free to go viewing it. It costs money to put something up _that you control_. For example you have to buy the DNS name. You have to get a host, etc.. I know there are IPFS folks out there but I just don't know if there's anything there yet. Normal people need a way to have a permanent place that can't be taken down and doesn't auto-expire with your credit card.
- HotVector 6y agoI was thinking of using Markdown and Git for a static website (not a blog). Is this a good idea?
- CodeMichael 6y agoHugo and Mkdocs are both frameworks you should take a look at for building websites with markdown.
- mjgs 6y agoI currently think that the best option for a personal website / blog is a statically generated site. It’s just the most robust way to build things for the long haul. Minimal maintenance, and easy to move all your files to a new hosting provider. Having static html files is very robust. I think for business websites it starts to make sense to use something like Wordpress. The fact that it’s open source is amazing, so you can always self host. But it’s more effort. But you get lots of neat plugins and templates. But it’s more complicated. Both are great solutions, but my current thinking is ssg for personal, for business maybe Wordpress.
- weeboid 6y agoIs there anything out there, a desktop app to write blog in markdown and deploy to netlify et al … like, removes tech ops
- banditelol 6y agoWhat does the author mean by "degrade gracefully through time" ?
- therealmarv 6y agoThis grabbed more my attention: Internet Archive for web pages is not discoverable, hard to crawl and download content from. I noticed that too. I would be happy to find content directly on the archive (which is a complex search problem) and be able to download a snapshot of a website (and all its assets) from a certain point of time. I would even pay for both services.
- codevscolor 6y agoThis is true. I started my blog https://codevscolor.com https://codevscolor.com in wordpress. 5 years later, last year, I moved it to markdown + git with gatsby. I am never going back.
- smlckz 6y agoI'd like to suggest Fossil SCM[1]. Your content (text, images etc.) is stored in a SQLite database [@] which is great! SQLite is a recommended storage format[2] for datasets according to US Library of Congress. Also, the SQLite developers pledge[3] to support it atleast until 2050. [1] https://fossil-scm.org https://fossil-scm.org [2] https://sqlite.org/locrsf.html https://sqlite.org/locrsf.html [3] https://sqlite.org/lts.html https://sqlite.org/lts.html [@] a single file, not a bunch of files in a directory
- moosebear847 6y agoDoes [@] mean clarification?
- simonw 6y agoMy blog is Django and PostgreSQL on Heroku, but last year I decided I wanted a reliable long-term public backup... so I set up a scheduled GitHub Actions workflow to back it up to a git repository. Bonus feature: since it runs nightly it gives me diffs of changes I make to my content, including edits to old posts. The backups are in this repo: https://github.com/simonw/simonwillisonblog-backup https://github.com/simonw/simonwillisonblog-backup
- estaseuropano 6y agoI disagree with the core tenet of the article. Does everything really have to live forever? Most blogs are probably not worth preserving, just like most speeches in history are not worth preserving. Most books are never reprinted. Time is a great filter. Yes important stuff gets lost but not each thought or word is worth preserving and not every moment in life needs to be captured and kept for posterity. I would prefer if more SO answers, more old tweets, more outdated tech blogs, more old unflattering photographs, ... disappear in the void. The death of geocities meant some valuable stuff was lost, but it also meant that much much more crap was lost. The world does not gain from keeping every scrap, rather the filter of 'did someone care enough to preserve this' adds value as the signal to noise ratio improves over time.
- AmericanChopper 6y agoAncient Roman graffiti is seen as being valuable enough that significant time and resource has been spent on studying it. The anthropological value of it seems obvious to me. Perhaps low effort thought-leadership or social media drivel has little contemporary value, but it could be a fantastic historical resource. The selection bias of history that was chosen to be preserved (and the people who were doing the choosing) puts a rather firm set of constraints on our ability to understand the past.
- estaseuropano 6y agoAbsolutely agree. At the same time, this roman graffiti is valuable because there's not that much of it and not much other records of the time. We have more from Rome than most other times and places in history, but overall no much. There are probably more words of Linkedin 'thought leaders' publisher per hour than all the the text that has reached us from Rome. I would still argue that we live in a time where many things are needlessly preserved (not to mention the privacy implications...).
- mro_name 6y agoI like the approach but prefer it more consequent: every tooling breaks over time, if not statically linked. Even better: no tooling at all. Just files. Means HTML then. And self-contained e.g. per year. So you don't need to touch old stuff when changing style or production tool.
- SPBS 6y agoI feel like the author makes a good point, but it does not solve the original problem he was describing. The only reason why those websites disappeared is because the owner was no longer interested in maintaining it. It's a human factor, not a technological one. Even if they had written their files in markdown and git, the website would have disappeared anyway if they stopped paying the domain/hosting fees. Now if you're arguing for putting the website source on GitHub, that's an entirely different matter. GitHub addresses the human factor by being entirely free with no effort required for site upkeep. That's why it's durable, it's not about keeping it as git and markdown.
- afarrell 6y ago> a human factor, not a technological one I think the author's point is to highlight the relationship between technological and human factors. Git+markdown has a better user experience if your user is a developer who uses git every day.
- cheph 6y agoMarkdown does not even gracefully degrade to github because you are not using markdown, you are using markdown with some arbitrary extensions, and you are doing this because markdown is useless without extensions. Just stop, use asciidoc.
- louismerlin 6y agoI created a few years ago a blog that lived in the issues of the blog's repo [1]. Cool concept, although the content itself does not live in the git repo. [1] : https://github.com/louismerlin/blissue https://github.com/louismerlin/blissue
- akho 6y agoAny kind of source that requires rendering is inherently fragile. We’ve all seen old posts messed up by a template change. There is no reason to think that GitHub will live (and continue to render markdown) much longer than, say, GeoCities. The simplest subset of HTML you can manage coupled with an uncomplicated layout and no external assets is better in terms of longevity.
- hhdave 6y agoTo go one step further you can add an HTTP redirect for /info/refs to direct to wherever the GIT repo is hosted. For example, if hosting with gitlab pages or on Netlify you can put in a file called _redirects containing something like:- /info/refs service=:service https://gitlab.com/<user>/<project>.git/info/refs?service=:service https://gitlab.com/<user>/<project>.git/info/refs?service=:s... 301 Then if your website is at https://example.com https://example.com someone can just 'git clone https://example.com https://example.com'. They can periodically do 'git pull origin master' and you can also push changes that way. There's no problem moving to a different git repo provider (github/gitlab/whatever).
- hhdave 6y agoWell, this works if publishing via Netlify anyway. Gitlab doesn't like the query parameters, but it also errors with 'no domain-level redirects to outside sites'
- timwis 6y agoCan’t believe I’m the first one to mention IPFS! I’m not clever enough to say something coherent about it, but IPFS though!!