Diátaxis
Posted by ryanseys 1 day ago
Comments
Comment by rkangel 1 day ago
Diataxis was fantastic. It took a bit of effort to work out what the page titles were to cover everything we needed, but then when you were writing a page it was glorious.
It was so clear what you were saying and what "voice" you were writing in. If it's a Reference page you're all descriptive, with diagrams and bullet points. When it's a guide you're more discursive, but you know you're just imparting information not trying to teach. It made it so much easier to be coherent and clear about everything.
Comment by DanieleProcida 1 day ago
Comment by Hnrobert42 1 day ago
Comment by swyx 1 day ago
Comment by blanched 1 day ago
Comment by NamlchakKhandro 1 day ago
Comment by cwmoore 1 day ago
Comment by jamilbk 1 day ago
If you're embarking upon a refactoring / rewriting journey for your docs, the only advice I'd share is to actually read the website beginning to end before starting. Especially this page: https://diataxis.fr/complex-hierarchies/. The guide is (unsurprisingly) very well written, and it's easy to internalize the concepts because they're repeated often.
Comment by DanieleProcida 1 day ago
There is a real problem there, and that page doesn't do a good enough job of dealing with it. I have something cooking that is much, much better.
Comment by zenoprax 22 hours ago
The docs I have built up are at times too technical for users and not detailed enough for developers. I am not sure if it's a skill issue on my part for an individual piece of text, a skill issue on my part in applying the principles outlined by Diataxis, or a fault in the framework itself (or its self-documentation).
Comment by mstade 1 day ago
Comment by nlawalker 1 day ago
Comment by LoganDark 1 day ago
Comment by zahrevsky 19 hours ago
Huh. The “Start here” page says exactly the opposite. It's literally the first two sentences on the page:
> You don’t need to read everything on this website to make sense of Diátaxis, or to start using it in practice. In fact I recommend that you don’t.
So what makes you recommend reading it all first?
Comment by tedd4u 1 day ago
Comment by conradludgate 1 day ago
Comment by WillAdams 1 day ago
https://github.com/WillAdams/gcodepreview
In particular, it made it seem obvious to split up the documentation between:
- Overview --- readme.md
- Tutorials --- handled in various template files
- How to Guides --- embedded in the Literate Program code
- Reference --- the indices and Command Glossary
Comment by nchmy 1 day ago
Comment by i_v 1 day ago
Huge fan of Diataxis over the years!
Comment by radicalriddler 1 day ago
Comment by c0rruptbytes 1 day ago
Comment by amazingman 1 day ago
Comment by conradludgate 1 day ago
Comment by amazingman 1 day ago
Comment by keeganpoppen 1 day ago
Comment by mmargenot 1 day ago
It’s hard to keep documentation up to date, however, and I find that items like tutorials and reference materials (unless generated off versioned code) can drift pretty far over time.
A feature I like in concept that notion introduced with wikis ages ago was a “verification” timestamp, where you specify a timeframe after which the doc owner has to reconfirm that the doc is up to date. A bit too easy to rubber stamp, unfortunately, but maybe if it took the doc offline entirely without a more robust audit.
Comment by mmyrte 1 day ago
- Tutorials are implemented as "vignettes", executed on package validation - How-Tos are attached in roxygen documentation chunks, likewise executable by default - execution disabled when expensive or to avoid side effects. - Reference is implemented in a TeX or Markdown format, commonly parsed by roxygen
The only thing that's missing is a canonical way of documenting implementation rationale. Having the documentation outside the repo worked before LLMs, but there was always that weak point of code drifting away from the documentation...
Comment by mmargenot 15 hours ago
Python has pretty good autogenerated reference docs, but if you want more than markdownified docstrings it makes them as difficult to maintain as the other pillars. As a set, the pillars aren’t as neatly grouped in Python documentation tooling, but I typically differentiate how-to, tutorial, etc with type tags in Notion or other indexes that point to where each type of thing lives.
Comment by nneonneo 1 day ago
Comment by somewhatrandom9 1 day ago
Update: https://diataxis.fr/colophon/#origins-and-development (Divio came first).
Comment by DanieleProcida 1 day ago
Comment by yipinwong 1 day ago
Comment by hahahaa 1 day ago
Comment by d0mine 1 day ago
Comment by 5ersi 1 day ago
Just released, alpha quality, need feedback/fine-tuning. Testing it now on my OSS repos.
Comment by galaxyLogic 1 day ago
Comment by marcosdumay 1 day ago
Comment by thisisauserid 1 day ago
Parataxis: arranging alongside
Diátaxis: arranging across
Comment by smokel 1 day ago
Comment by aeden 1 day ago
Comment by wonger_ 1 day ago
It feels so natural and obvious compared to Diataxis' forced abstractions, where I'm still left wondering "what's the difference between a tutorial and a how-to guide?"
But! I'm glad for anything that helps people organize and maintain docs.
Comment by rlpb 1 day ago
I don't find this question difficult. Without looking anything up, a tutorial exercises a contrived example for learning purposes, whereas a how-to guide provides instructions suitable for real world execution.
Comment by wonger_ 1 day ago
Comment by ashu1461 1 day ago
Example in our codebase
- How to clear the cache ?
- How to configure the logger ?
I liked the idea of separating our how to guides and explanations / tutorials, because sometimes you just want engineers to follow a specific flow without going too much in depth.
Comment by bolt012 1 day ago
I read a lot of cookbooks, and interestingly enough, I never stopped thinking about what makes a good cookbook (except for its recipes). Diataxis answers that in a way. Indeed, the best cookbooks I have read in some way or another followed Diataxis.
Comment by lathiat 1 day ago
Comment by lijok 1 day ago
Comment by Cynddl 1 day ago
Comment by i_v 1 day ago
Really curious what the major differences are that have you preferring it over other methods / winging it.
[1]: https://c4model.com/
Comment by rjmill 1 day ago
Overall, the movement is good, except for how it tends to turn 1-click docs into 2-click docs (or more for folks who don't know that API docs probably live under reference.)
You are allowed to have a top level tab/link to API docs. Please do not hide those from me while you "improve" your docs.
Comment by vanderZwan 1 day ago
Comment by rlpb 1 hour ago
A lookup table of normative specifications of CLI arguments would also be Reference.
So they are not synonymous.
To be clear, I'm not advocating for navigation that must always have this structure in cases where it's redundant. I think people should do what makes sense. But I think it is nevertheless useful to not mix the different categories.
Comment by rjmill 1 day ago
Depending on the docs theme, it can require clicking through to get to it.
It is a minor annoyance.
edit: Also gonna tack onto this that my original comment reads way more acerbic than I actually feel. I was sleepy and didn't proofread for tone like I normally do.
Comment by vanderZwan 1 day ago
Comment by broken-kebab 1 day ago
There are repetitive bloated texts with unnecessary distractions and unenlightening illustrations. It is maybe well-organized, if one can speak about good organization of poorly expressed knowledge at all.
Comment by CompoundEyes 1 day ago
tutorial/setup-buh-snuh-env.md
how-to/configure-buh.md
install-snuh.md
reference/buh.md
snuh.md
snuh-licenses.md
explanation/why-we-use-buh.mdComment by 01HNNWZ0MV43FF 1 day ago
1. In general, do whatever Wikipedia does. e.g., start with a one-sentence definition, then a couple paragraphs of summary, then go into short specified sections, and keep links to the "Citations" at the end. It's been refined for 25 years, it's older than most of your engineers, it's 50+% correct by default.
2. Keep every section to one screenful. If your reader can't see a headline, they get lost.
3. Put a funny picture at the top of the page. Or at least something off Wikimedia Commons.
4. Don't spend a lot of time writing anything. And don't use AI. The AI doesn't know what's inside your head. You yourself have an inkling. The longer you write, the further you'll get. Just write one short thing at a time and refactor aggressively later. Never throw shit over a fence blind. Nobody reads shit that's been flung over a fence.
Steven King said writing is telepathy. All mediated communication sits on a Pareto trade-off with face-to-face communication. Media is always less interactive with slower iterations. You need to figure out exactly what your audience needs, right when they're reading, and write just that, knock 'em dead, and leave. Don't add detail. They'll ask if they need detail.
Comment by cryptopian 1 day ago
I went to a documentation workshop at Pycon UK by Daniele, and this was actually quite similar to his approach for writing front pages for documentation. He'd give the same questionnaire to a few teams, with prompts like "in one sentence, what is this product?", "What can a user accomplish with this product?", "Who are the primary users of this product?" Once everyone's aligned on answers, the page writes itself.
Comment by voidhorse 1 day ago
Comment by krackers 1 day ago
Comment by tizerluo 1 day ago
Comment by mendapi 1 day ago
Comment by amai 23 hours ago