Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do you share/organize knowledge at work and life?
781 points by gavribirnbaum on Oct 21, 2019 | hide | past | favorite | 296 comments
I find it hard right now to share knowledge with everyone on the team and to turn knowledge into actual learnings.

I don't know how you guys do it, but I would love to know. We are now 50 people in the company and I don't know anymore how to make this scale. What is your process? Do you use any tool for it? How good is it? What needs improving?

I have a personal "knowledge base" that is publicly available at https://maxmasnick.com/kb/.

This is partially inspired by Chris Albon's excellent data science technical notes: http://chrisalbon.com.

I find it very helpful to have this kind of information on a public website. It's easy to search myself, quick to edit[^1], and helpful for sharing with others when someone asks me a question.

For notes I don't want to make public, I use OneNote. It's available on every platform, has a documented file format, and the sync works well. Of course, I have some more detailed notes on why I prefer this to other options: https://maxmasnick.com/kb/note-apps/.

[^1]: My whole website is built with https://gohugo.io. I use the GitHub Actions beta to automatically update the public site every time I commit to master. This means I can edit on a computer with a standard text editor, and also on iOS using https://workingcopyapp.com.

I got excited then for OneNote on Linux (Kubuntu) but a quick search suggests it's only available with a few hacky kludges and WINE?

I use OneNote on KDE Neon in a Windows 10 virtualbox. Yes, it's not the most efficient but I have found this approach much faster than using the sluggish web UI for OneNote. I also use my Windows 10 virtualbox for the rest of the MS Office suite through a university subscription, so I feel it justifies the 30GB of disk space it takes.

There is OneNote online, it's a little slimmed down from the desktop app though.

I use the online versions of OneNote and also the other Office 365 apps (Word, etc.) on Linux laptops. Great to have.

How do you backup OneNote?

The link to where you explain it is broken: http://protips.maxmasnick.com/backing-up-onenote-notebooks

You mentioned it as being a critical feature but from what I've been reading, it's pretty complex and tricky due to it's weird syncing rules and relationship with OneDrive. The only decent solution requires a Windows version. See: https://answers.microsoft.com/en-us/msoffice/forum/all/good-...

I usually use this way of exporting Notebooks for personal accounts.


Dropbox. Basically, you can create a new notebook and all pages under that notebook are organized in a directory hierarchy. I've done this for just under a decade without issue.

Sorry about the bum link (it's fixed now).

The simple answer is you can download zips of the entire OneNote notebook from the OneDrive web interface.

You are able to print entire notebooks as a pdf. Its not the best, as text can be cut across pages if you don't originally fit into nice-paper sized areas, but it does export everything quit easily.

I am impressed. Whenever I try to build a tree of thoughts, I run into the problem that I want things to fall under multiple categories. I might start by classifying them according to subject area (as you have done), but then I might want a collection of those notes to also fall under "could help with project X" or "would be of interest to person Y" or "can be learned from reference Z" or any number of things.

This is a use of AI I've not seen yet, to sift through soups of knowledge, categorise it and make judgements on what else is related and relevant

Isn't this essentially what search engines do? Ie. Google's Page Rank.

It doesn't really seem very AI-ish except maybe for some NLP. Otherwise it's very straightforward indexes and catelogues.

I used to work at a company that used Elasticsearch to catelog and group articles and small snippets. I'm currently working at a company that's using Algolia to do something similar.

Not really what I had in mind, to be honest. I mean, yes, you can search by keyword, but I was thinking of it being more like a research assistant.

Isn't that what tags are for? Search by tag?

I don't know. Can you point at an implementation you like?

[pinboard.in][1] has an implementation that I like. What I especially like about pinboard is that you can chain tags together (logically AND'd, not OR'd) to narrow/filter topics to highly specific criteria. This all works well provided you usefully tag your entries.


This is what links were originally invented for.

Links are fragile and one-sided. You might move the destination. You might edit the title of the destination and want that to show up in the link text. You might want the content, not just the title, to be visible (preferably foldable) from where the link is. You might want to be able to see from the destination what links to it.

In Hugo its actually pretty easy to color code whether a page/destination exists. Optionally you could do up a Wiki using the Media Wiki stuff. Then links are color coded automatically.

really like your knowledge base and your build process.

i've been experimenting with personal knowledge bases for much of the last decade and have settled on a homegrown solution that involves ten thousand markdown files. notes are organized as trees with a top level domain (eg. aws, programming, finance, etc) and finding a particular note is a tree traversal down the tree. the main goal is speed and structure - want to access anything within my knowledge base in seconds and have a coherent way of modeling knowledge even as it scales past ten thousand notes

recently quit my job to build this into a service. would love to get feedback from people with similar challenges: http://demo.alphacortex.io

“ I use the GitHub Actions beta to automatically update the public site every time I commit to master.”

How do you set that up?

It's somewhat convoluted and custom to my specific hosting setup (I use https://www.nearlyfreespeech.net because I want an Apache server so I can use complex redirects). Essentially, the GitHub Action builds the site and then copies it over to NFSN. This is all done in a Docker container.

The only potentially interesting part about this setup is I take advantage of this git feature I didn't know about until I set this up: https://git-scm.com/docs/git-worktree. This lets you essentially check out a branch into a folder in a repo. Hugo can then build the site in to the special folder, and the built site is committed just to that branch. I then push this branch to NFSN, rather than using rsync or scp, which takes a lot longer for small changes compared with sending a git delta over the wire.

I plan to write up a more extensive description of this when GitHub Actions come out of beta. If you want to hear about it when it comes out, you can subscribe to my blog's newsletter: https://masnick.blog/subscribe/

If it's not too much to ask, I would add on here that I'd like to see your Hugo setup. I've been learning it recently but the examples I find are all rather simple. Just seeing what you've done gives me some ideas of how you did it, and I'll work on figuring it out - but information on how you organize things before hugo generates the site would be greatly appreciated.

Unfortunately I don't have a good way to reveal the source of my site as there are some things in that git repo that can't be made public.

I too have struggled to find examples of doing more complex things in Hugo. It's such a versatile tool that it's probably pretty hard to document everything in an approachable way.

I may write up how I set up the Hugo portion of the knowledge base as it has worked quite well. If I do, you can subscribe here to make sure you see it: https://masnick.blog/subscribe/

I understand. I'll subscribe - and just looking over the parts of the site and going back to the documentation has helped me to wrap my head around a few things that were eluding me.

Thanks for the response, I appreciate it and I'm really glad you took the time to post your original answer. It's a real help to me in ways I didn't expect when I clicked into this thread.

You can refer to GitHub Actions for Hugo https://github.com/peaceiris/actions-hugo

You could instead use Gitlab with their CI/CD tool: https://gitlab.com/pages/hugo

I haven't tried GitHub Actions yet, but Netlify makes this very easy to do.

Yes, unless you have my weird requirement to use an Apache server, I think something like Netlify or GitHub Pages makes way more sense.

Very interested in this as well. How do you do automatic deployments?

I described this briefly in a reply to the parent: https://news.ycombinator.com/item?id=21316442

Yes! I tried multiple things in last 15 years, everything but OneNote failed me in one way or another.

I agree with this. However, the only annoying thing is it copies and pastes text as a photo. I’ve stared using outlook email drafts as a place to put rough notes. They are searchable, they sync with the cloud and copy/paste works as expected. Give that a shot if you want.

Good to see a UMB alum here. Who uses Tachyons no less! Thanks for the tips.

Hi, thanks!

Out of curiosity how much traffic does the personal kb get?

Essentially zero. It's not well-advertised, and I only started it in earnest earlier this year.

My Technical Notes blog (https://tech-notes.maxmasnick.com), which is a similar idea but much more random in content, does get a fair bit of traffic on specific pages, presumably via organic search traffic. (This is the most popular Tech Notes page, which has had 30k views over the last 4 years: https://tech-notes.maxmasnick.com/ipython-notebooks-automati...)

Thanks for answering. Been toying with doing something similar - documenting stuff as I figure it out (webhosting, raspberry pis etc) & see if that attracts any traffic.

No mention of KeePass under password managers?!

I'm only interested in password managers with good desktop, web, and mobile support.


It uses a KeePass database and is a self-hosted app in the browser that works perfectly fine on mobile. I have the page up at all times in Chrome on my Android for quick and easy access. The desktop app I have on my home PC. Everything is synced through Dropbox which is the actual storage location for the encrypted database. I have the desktop app set to make backups just in case on my local PC as well. But Dropbox is what they all connect to. I personally love this web app implementation of KeePass much more than anything else like lastpass or other paid services. Been using it for several years now and I've never had an issue. You'll need to grant the web app special access in Dropbox to get it working properly, but it's easy to set up.

EDIT - by "self-hosted" I really mean cached in the browser so nothing is going through the site, it's all local to you after you load the app. Also, this means you can still use it offline if you need to because the Dropbox database is also cached until it can update accordingly when connection is resumed.

Just curious, what do you find lacking about Keepass in those areas?

For any system you build, keep in mind a few general truths:

1) The system isn’t just “the wiki” or “Notion”. The system is composed of both the tools you’re using AND the habits/expectations of the humans who use them. So, this is not just a matter of buying a tool. Its a matter of choosing tools AND designing a process made of humans habits.

2) The system will get messy and unused unless there is regular attention & time allocated to tidying it.

3) If you want people to do something, recognise and incentivize it. If there is a person who habitually sends out concise notes after meetings, make sure that their performance review recognizes that contribution.

4) A habit has three parts: {:situation, :action, :reward}


Situation: At the end of a retrospective meeting, we have learned of a need for a runbook on how to handle a type of automated alert.

Action: The team lead updates a runbook and tags a junior engineer to review it for missing context.

Reward: The team lead feels satisfaction that they’ve set their team up for future success. They add a bullet point to the notes to use during their next annual review.

> {:situation, :action, :reward}

RuntimeException Map literal must contain an even number of forms clojure.lang.Util.runtimeException (Util.java:221)

K this was actually a great joke, for the perfect audience. Sorry for the haters here’s an upvote.

I use Markdown documents in Git repositories whenever I can. Also try to evangelize for this at work. PRs then include relevant changes to both code and docs and it's beautiful. For personal project docs I use this exclusively. At work it depends on the team, some people don't like it, but most often it is because they don't like keeping docs at all, not because of an alternative preference. I avoid UI and WYSIWYG based systems like Confluence like plague. I personally can't stand them and every time I have to use one I do my hardest to pretend I'm writing Markdown in my head.

For personal agenda I use Apple Notes with basically just a huge list of things to do and events that are about to happen and I curate that list more or less non stop during the day. If something comes up and I'm with people and don't want to be rude and spend too much time on the phone editing things to be in the right order and have all the relevant info captured with them, I just plop a line at the top of the note knowing I'll groom it later.

I do this too. I use Sublime text in distraction free mode with a git plugin so I can easily commit/push changes.

On my Mac, I can do the 4-finger swipe to check my full-screen notes. Usually I have a folder structure like notes/2019-10/2019-10-21.txt. If I want to tag things, I'll just write #idea #work somewhere in the text file.

Then easy to search with Sublime or whatever tool you want. I also like this approach because it's future-proof. Just a folder full of text files.

Curious how others are handling this same workflow.

Same here, though mine is one gigantic text file that dates back ~20 years.

Expect to continue updating/referencing it for decades to come, bar some calamity.

How? Chronologically or structured by topics? Appending at the top or buttom? Timestamps? Tags? How do you navigate through the file?

There are a couple sections, but for the most part it's chronological, with new entries at the bottom. Started adding dates to new notes/quotes/observations about 5 years ago.

It's a sprawling mess, so I rely on search to find what I'm after.

I reference it often -- it's like an extension of my brain.

I do the exact same thing. Just a text file that these days I store in a Dropbox folder so that no matter what system I'm on I can just "vi ~/Dropbox/notes.txt".

Similarly, several years ago I added a keybind to my .vimrc that, by typing ",a" I'm moved to the bottom of the file and today's date with a separator line underneath. My leader key is "," and I mnemonically associate "a" with "append".

The earliest date recorded in it goes back to 2006 and is about 300KB in size. I still reference and add to it on a regular basis.

This is pretty much exactly what I do, too. The only difference is that my use of Apple Notes is mostly for quick, personal things ... I move material into Markdown documents within git repositories as soon as I can, because then it's easy to share it, trace changes, and organize contributions.

Oh, and one more thing: my Markdown documents are normally R-Markdown documents, so I can incorporate calculations and graphs as needed. (Also, R-Markdown has a nice metadata section for document title, author, date, etc.)

I, too, am a fan of R-markdown for this purpose

Do you use any specific structure for your markdown documents? Confluence i believe helps structure the knowledge

But Confluence crucially isn’t source-controlled within the same repo. It’s not source controlled at all.

I find this a terrible workflow problem. As often a change to code requires a small or large change to documentation that is best bundled in alongside.

It does have change history of each page. However, if you use a lot of embedded tables, it is quite hard to do change comparisons.

I would suggest a single source of truth.

In my marriage, it’s my wife’s google calendar.

My personal projects are in a single google doc with tags I search for. I document my personal projects because sometimes I do stupid stuff and wipe out my work on accident.

For work, We use confluence as the source. We have daily stand ups that go on there. For any screenshare 1v1s I create a quick doc to cover what we discussed. We have a global team and even documenting everything will not suffice and you will need to meet on a screenshare. Record it for later reference.

I’ve been leading trainng sessions and they basically are a little technical stuff but mainly processes and where to go when you run into a problem. The best way to force people to use your wiki is to take time off or become unavailable for whatever reason.

> The best way to force people to use your wiki is to take time off or become unavailable for whatever reason.

THIS 100%!

Your audience should post the content about the screenshare session. The point of the screenshare is to share information. Your audience confirms receipt of that information by posting about the session.

> We use confluence as the source. We have daily stand ups that go on there.

You record your stand-ups on Confluence? I think retrospectives should probably be recorded (on something - Confluence I guess if you're using it) but stand-ups? Genuinely curious if you think you get any value from this? How often are they referred back to?

I’m not sure if our stand ups are similar to other companies but each person tracks what they are working on in sales force cases or in JIRA.

Our stand ups are for trending issues, global/timezone concerns, and really important things. They last around 15 mins. The notes we put in confluence are @mentions and the next steps.

Anything else is tracked in jira/salesforce.

I imagine each team member writes down their status in a daily page.

Yes, very much this sort of thing. Every organization needs a single authoritative source of truth, whether that organization is a single person, a couple, a team, or a large corporation.

I work in a team closely related to another team, and together we're about 30 people in the midst of THOUSANDS of engineers responsible for shipping product. We are dying under the burden of tracking and correlating engineering decisions across product lines and customers through presentations (you can't have a meeting without PowerPoint!) and spreadsheets -- scattered all over internal shared drives -- email, and Skype chats (which the company won't allow history for). Just this week, I'm supposed to start working on a plan to implement a knowledgebase system to capture all of this information. Obviously, I'm very interested in the answers here.

The original question was about sharing knowledge amongst a TEAM, but almost all of the responses are about PERSONAL systems. I know most people watching this board are small-company startup types (in general), but I'm hoping that some of the old codgers, like me, working in creaky, legacy firms, have more to say. If we can't find something off-the-shelf here, I'm going to wind up writing some kludgy homegrown tool with Elasticsearch, and, frankly, this just doesn't interest me. I need answers people! The leader for large teams, according to what I see here, seems to be Confluence. Notion LOOKS cool, but putting this data in someone else's hosted service is an absolute non-starter for us.

I've worked at several multi-billion dollar corporations. Here's what was used, to varying degrees of success:

Private owned retailer: used Sharepoint and / or word documents on a shared network drive. This didn't work very well, but it ticked the "I did it" / corporate compliance boxes.

University: we use OneNote notebooks for each team. It's stored on a file share, and since everyone already uses Windows 10 / O365, it's an easy thing for our security concerns. It's also auto-backed up to the cloud (O365). It's also easy for business users / BA's to view and contribute to. Downsides: it's hard to flag info as out of date, or notify people of changes.

Healthcare provider: we used Markdown / Git. This worked because there was a single (mono) git solution for the entire org. Technically there was an SVN thing too, but the org was working to actively remove that / transfer source code to BitBucket. We required each project to have a README.md. This file included what the project did, and all the info a new analyst needs to know to get up and running: how to build the project, what servers it deployed to, what testing / production URL's applied to the project, what tools you installed on your local machine, etc.

We had a separate repository for "standards" that applied to all projects or across different global teams (think "internal" - EPIC, Sharepoint, etc teams and "external" product teams). These were just markdown files that contained policy info, best practices, libraries to use, etc. There was a "standards" team made up of a dozen individuals from separate teams that met quarterly to make updates to these standards. Changes were managed in Git and any issues were created there as well. It worked pretty well, since policy / standard changes tend to move slowly in large orgs. It also gave all teams visibility to the policies so they were all on the same page.

> We are dying under the burden of tracking and correlating engineering decisions across product lines and customers through presentations (you can't have a meeting without PowerPoint!) and spreadsheets -- scattered all over internal shared drives -- email, and Skype chats (which the company won't allow history for).

Sadly, a tool isn't going to get you out of this. You will end up with all the files uploaded to a wiki or repository. One would hope that seeing all the chaos in one place would make everyone say, "Oh, maybe we need to change how we do this," but that is unlikely. What will probably happen is, "This new knowledge management system is a chaotic mess. Let's abandon it."

I would completely ignore tools when you start on your plan. This is going to be a slog about setting expectations for how things will be decided, documented, and referenced, about getting managers and tech leads onboard to discipline their groups, and about having the whole thing not collapse into a bureaucratic nightmare.

Since you're shipping software, I might start with articulating the kinds of documents groups are expected to produce and keep up to date such as design documents that include why particular decisions were made, reference docs and docstrings to let users of a system find what they need, and tutorials/introductions to get users up to speed. Then expectations about how things should be recorded (in an expected class of document, not buried in a PowerPoint, and non-trivial examples).

Then you need buy in from management that engineers should put cycles towards this, and technical writing support to keep the whole think functioning. But think about behavior, not tools. User stories, if you will, of what kind of information people look for and when, and what kind of information people produce.

Search a job board for an experienced ”Document Controller” with experience from large engineering projects and hire one or more. You need more than a tool, you need processes and a strong owner of those processes.

I'm in a similar company, but the main issue is that almost all modern solutions store the data in the "cloud", which isn't acceptable in that situation. Either my company has a contract for that tool (not our level of decision), or we have to store the data in-house.

Very few tools are made for self-hosting or using mapped shared drives nowadays.

Shameless plug here. Exactly why FileCloud does the job in this condition. You expose your shared network drive over the network and then via FileCloud it is just seamless access to those documents etc. no more slow vpn.

We run a server internally and all our documents are stored there.

We use confluence. To overcome the issues some other people have mentioned (namely, lack of version control), our confluence docs are generated from version controlled markdown docs. It’s integrated with our build system so it doesn’t require much thought, you get the benefits of having your documentation living with your code, and you generate a doc that’s easily searchable and shareable for non-engineers.

The only thing that sucks about this setup is that you can’t fix typos without making a diff :)

I'm pretty sure every company I've ever worked at has been in the middle of trying to fix their document management & sharing. It's all sucked.

The overall best knowledge-base I've ever used has been... Slack :-(

Email is probably second-best but suffers from too much spamminess—"here's a progress report you don't need, for that project you're kind-of on part time, sent once a week, to pollute your search results for same project if you ever actually need anything, oh and there'll be a 20-reply thread here which may or may not contain anything worthwhile to anyone at all, good luck sorting wheat from chaff". Plus if you have both Slack (or similar) and email Slack's more likely to have the Real Stuff, and email may miss out on entire topics.

I've used Confluence with teams of hundreds, and it's ok.

It is reliable, flexible and has a pretty good search which works when you have multiple access levels. It's a bit clunky sometimes though.

Wouldn't a self hosted Wiki or Gitlab instance using markdown files be better than a homegrown solution?

How could that incorporate the endless PowerPoint files that, unfortunately, contain critical details about design specs? Cut that content out, and put it in MD, after the meetings? An import process that does this for us? I'm not saying it's a good system, but this is the corporate culture. The vast majority of our design history is only codified in PowerPoint. We have a PTC Integrity system, but it's so slow and so bloated, people avoid it at all costs.

Well Wiki's support file uploading and you can always source control the ppt files and use MD files where appropriate.

What I'm shooting for is to index the content of Office files. I've now looked, and, apparently, Confluence doesn't do this. Given this requirement, I seem to be looking down the barrel of Elasticsearch with FSCrawler.

You might need to simply create a workplace rule that powerpoints are not to be considered stores of information, and that any specs contained in them will be discarded at the end of the presentation.

Public and private Git repos of markdown files that sync to Dropbox, so;

- I can use my IDE in desktop to search / change them.

- On iOS, iA Writer can access to markdown files

- I get PRs to my public notebook because it’s on Github: https://github.com/azer/notebook

- The format and tooling are unlimited. Images, sound files, jupyter notebooks, everything fits

- It’s not binded to a product or protocol. I have freedom to personalize it and keep it the way I want.

- It scales beautifully. It’s been 3 years since I started it.

- The only problem was to have same IDE style for both code and markdown, I solved it later: https://kodfabrik.com/journal/ia-writer-mode-for-emacs/

I’d recommend it for those looking for alternative options.

Just curious - why do we need to sync to Dropbox if they are already hosted in a Git repo?

I want to access them on my iPhone 6. iA Writer is my favorite app and it supports Dropbox in addition to iCloud.

You can directly edit files in a repository using Working Copy. You access it like any other external file store using iA Writer. You can push changes from Working Copy.

Wikis built with org-mode is my magic bullet with everything under version control. The major problem was that everyone needed to know both git and Emacs to contribute but this is not the case since I made a proper web client https://github.com/mickael-kerjean/filestash

Is there an org-mode editor besides Emacs that has a lower learning curve?

Yes, my favorite is the one I built myself which look like this: https://demo.filestash.app/view/emacs.org?share=hn

It can create entire wikis by rendering documents in many formats: For example:

- HTML: https://demo.filestash.app/api/export/hn/text/html/emacs.org

- PDF: https://demo.filestash.app/api/export/hn/application/pdf/ema...

- markdown: https://demo.filestash.app/api/export/hn/text/markdown/emacs...

- txt: https://demo.filestash.app/api/export/hn/text/plain/emacs.or...


Also, the document shown here is coming from this github repo: https://github.com/mickael-kerjean/nuage_org_demo and the app itself is free software: https://github.com/mickael-kerjean/filestash

This looks really nice and quite useful, you should do a Show HN! (By the way, that first link doesn't work)

oh, WOW this looks great. Serious, enthusiastic-yet-polite applause!

Yes, there's Spacemacs which is a Vim-a-like configuration for Emacs which works well as an org-mode editor too. It uses composable commands, like "space f s" for save all files. I've found it works very well across my work Mac, home PC, remote workspace, and Windows 10 WSL v1 and v2.

If you'd like to know more, either reply here or get in touch via my profile, I'd love to help you out (although it may be a bit delayed because I'm suffering from back issues right now). There's also reddit.com/r/emacs which helps a lot with org-mode stuff, much more than the org-mode subreddit. Plus you get to learn a bit of Lisp, which is pretty cool ;)

I've been using my own orgmode plugin for SublimeText [1] for a several years.

It doesn't have all the features emacs has, but I'm quite happy with it for personal notes and simple TODOs.

There is another plugin for SublimeText [2] but apparently I like it less :)

[1] https://github.com/dim-an/Zorgmode

[2] https://github.com/danielmagnussons/orgmode

I've been using the org-mode plugin for VS Code for 6 months or so and really like it.

what makes you think Emacs has a high learning curve?

1. OP never mentioned VIM, so I do not see how it's relevant to compare EMACS to that - editor wars are long over ;) 2. OP asked for an alternative to EMACS for ORG-mode editing, as he obviously does not wants to use EMACS at the current time being.

Just saying that it's all so easy and making peoples issue with a complex editor like EMACS seem irrelevant or non-existing won't help anybody.

So, some alternatives to EMACS seem to be:

* for VS Code: https://github.com/vscode-org-mode/vscode-org-mode

* for vim: https://github.com/jceb/vim-orgmode

* for atom: https://atom.io/packages/organized

* sublime: https://github.com/danielmagnussons/orgmode

Also, some more information about integration can be found at: https://en.wikipedia.org/wiki/Org-mode#Integration

Why are you comparing Emacs to primarily modal editors? This discussion is not about those.

You can't use Emacs as notepad.exe, and comparing it with vim shows how low you're setting the bar. Out of the box it doesn't even have standard ctl-zxcv shortcuts. The keybindings it does have are terrible and give RSI, and crucially because there's a whole ecosystem of addons that try not to collide, they can never be changed, which is why CUA mode isn't default.

Some of us just don't want to 'invest' in tools that are profoundly flawed and will never be fixed, to the extent of causing physical injury.

> The keybindings it does have are terrible and give RSI, and crucially because there's a whole ecosystem of addons that try not to collide, they can never be changed, which is why CUA mode isn't default.

Everything you are claiming is wrong. I came to Emacs from the Apple HIG shortcut world (which btw, Apple copied from PARC), and I think the keyboard shortcuts Emacs comes with are better thought out and more ergonomic to use. That is why they are the default (Emacs users prefer them), instead of cua-mode, which comes with Emacs and is easily activated.

Emacs key bindings are also far easier to change that in any other application, because Emacs keymaps are first-class objects with inheritance and are separate from commands. That is why Emacs can easily support not just completely different keyboard shortcuts, but completely different input methods such as modal editing.

> what makes you think Emacs has a high learning curve?

The fact that I need to constantly look up how to do stuff and the modifications that I want to make work as I want them to only some of the time.

The fact that on more than one occasion, I've downloaded Emacs, started using it and gave up after less than an hour because of how unclear things are.

The default configuration of both ViM and Emacs are both pretty unerognomic. And both can be configured to work in pretty much the same way. Both have plugins.

All the tool recommendations are nice. I am sure that folks have really awesome Confluence set-ups.

Whatever you do, however, there is NO replacement for face-to-face discussion and interaction. There's no replacement for pedagogy that is as old as history itself: the Socratic method. The best way to learn something is for both the teacher and the student to ask and answer questions, to solve problems together.

Yes, it's true that it only scales like 1 -> N, where N is a small number. BUT, each of those people in that initial small "N" can also rollout knowledge if they've mastered it, if they have the right attitude about sharing knowledge, and if you trust them to do that.

First I distinguish between two kinds of knowledge: one is like encyclopedic knowledge, just with private topics (what is X, why did Y come into existence, things you must know when Z), the other overlaps a lot with opinion, "best practice" and "style guide" would be examples.

Both may end up in the internal wiki, but that's a write-only operation unless you get people to read. And a wiki is nothing anyone reads front to back, wikis are entirely pull.

For the encyclopedic kind, I try to sprinkle some links where there is a chance that people (e.g. me, two months later) actually do an index search. This is not the wiki, this is email (or some successor thereof).

The opinion type knowledge will be even more lost in the wiki. Outside of extremely chain-of-command oriented organizations, the only way to spread that kind of knowledge is by actually convincing others. And a wall of text in an internal wiki will never do that. But the wiki page can be very useful as a collection of convincing examples etc to reference in a discussion that happens elsewhere.

The tragically correct answer. As I ready this I was hoping you were going to come up with a magic bullet at the end.

I use the Notes app in iOS/OSX which has been getting insanely powerful in the last few years. Not only does it sync notes across devices, but indexes them for spotlight search anywhere. It also transcribes handwritten notes and makes them searchable, as well as scanned documents like receipts and business cards. Attaching photos, hand-drawn diagrams, tables, checklists and formatted text are simple. Notes can be hierarchically organized into a folder structure (work, blog, 1:1s, ideas etc.) and locked for privacy (1:1s, performance reviews, holiday gifts etc.). They support sharing and basic collaborative editing too.

Notes seems so simple on the surface, but every time I use it I am delighted to find power-user features throughout.

My #1 feature request would be code blocks with syntax highlighting. It supports monospaced blockes for now. Perhaps even better would be if it would detect, accept and render markdown formatting.

Until then, a simple trick I use is: copy the RTF text from Notes into a GIST. It auto-converts to MD.

I used Notes, until a botched sync flushed all my notes on my phone , propagated that to iCloud, then to my computer.

If you use notes, make sure that time machine actually backs them up. Otherwise you’re playing with fire.

Spaced repetition [0] systems like Anki are usually used to study technical subjects or languages, but one of my "decks" is titled "my truths" and it contains insights I want to internalize. Repeated exposure is absolutely central actually making an idea part of yourself and acting accordingly. So instead of maintaining a large knowledge database, I'd recommend sticking to solid principles and reviewing them on a regular basis.

Once your team is getting slightly annoyed about how often you repeat something (solid code review principles or the importance of testing come to mind), you know you are saying it often enough.

I'm not a religious man, but an observation in an article called "We only learn if we repeat" in the "the book of life" [1] stuck with me: It's no coincidence that daily repetition of principles is a core tenant of the big religions. There's a fundamental insight about human nature in that and we can apply it to modern technology teams the same way it has been used in monasteries for centuries.

[0] http://augmentingcognition.com/ltm.html

[1] https://www.theschooloflife.com/thebookoflife/we-only-learn-...

I tried to start with Anki, but didn't really figure out how.

If you have a "truth" you want to remember, do you need to split it up into some sort of question / answer format to put on the front and back sides of a card?

I am already scoring well on the "annoying my team with repetitive statements in discussions" front.

yes, formulating a good question that leads you to the insight is important. Forcing yourself to recall something is an effective way to learn.

Documentation has a tendency to not keep up with what it is documenting, etsy has a great blog post about this and their shift in philosophy around documentation https://codeascraft.com/2018/10/10/etsys-experiment-with-imm... .

we've adopted something similar at work where we've necessitated that all support related questions be asked through https://www.discourse.org/ . This allows the most timely solutions to surface to the top and if a question hasn't been asked before it gets thrown into a slack channel where a subject matter expert can answer it. Making this one change has monumentally reduced the support burden of our teams.

I use Notion (https://notion.so) for pretty much everything (budgeting, tracking my PhD progress, high-level work-related projects, financial planning, etc). It's so flexible and has all the features you might reasonably want for managing information etc. It's essentially Evernote and Trello in one beautiful tool.

At work we use Wikis for most things.

Can you make backups of your data that don't rely on notion to exist to be usable?

Everything can be exported, but once exported it can not be directly re-imported.


I use Emacs Org mode in a git repository hosted on my Raspberry Pi. On my phone, I use Orgzly to edit the files, along with Termux to manage the git repo. I also use Termux to launch Emacs from time to time when I need an advanced operation not yet supported by Orgzly.

I keep sensitive files encrypted using GnuPG and my private key lives on a Nitrokey Pro (a GnuPG token).

I usually export to various formats with Org mode built-in exporters (mainly ascii, markdown, html and pdf) but I sometimes use Pandoc, especially to export to docx.

I have even started blogging with that system. I can edit an Org file on my phone using Orgzly or Emacs, and then use Termux to automatically 1. push the change to my Git repo 2. publish the files to html using Emacs in batch mode 3. send the html/css files to my website using a bash script and sftp.

I don't think I will ever look back :)

For those who haven't used it, it's hard to describe how amazing Org Mode is. In the same file format, you can create outlines for documents that collapse so you can see the big picture; generate PDFs/HTML; you can create a spreadsheet to understand whether you've done enough of Activity X for the past year; you can track your meeting notes organized by meeting theme.

I am starting a new venture and will use BookStackApp (https://www.bookstackapp.com) as my single source of truth.

It is searchable, offers markdown and WYSIWYG editing, page templates, and is quite opinionated on how to layout things.

My reasoning for this is to layout basic templates and processes for sales, support, ops, and office management.

This is also used to lay a foundation for ISO 27001/27002 compliance and certification along with Eramba (https://eramba.org)

The last part is really niche, but coming from a Healthcare background taught me hard lessons in NOT HAVING YOUR DOCUMENTATION AND COMPLIANCE SHIT TOGETHER (TM) when you get vendor or compliance audits.

Wow..! BookStackApp looks beautiful to my eyes from what I see on the website!

Also seems like it is real open source : )

(Trying the demo was a bit confusing, but that might be because there is a lot happening around me at the moment.)

Well, I just found BookStackApp yesterday after months of searching. Then imediatelly installed it in my small company. Now, we're migrating from Paper to BookStack and it looks very promising.

Love bookstack. Thanks for sharing.

Dokuwiki and optionally Mediawiki seem to go a long way in shared environments. For personal use, https://zim-wiki.org is my favorite right now. It uses files as the storage backend and can therefore be tracked and shared via git. Features are extendable via plug-ins.

As others have mentioned, using one single central tool is crucial, even if it is only used for references to external tools (e.g. reference to pads). It should represent the first point of entrance in the search for knowledge in any team.

This also includes the possibility of migration, export, and self-hosting to have full access and backups at any time.

Dokuwiki is great. Self-hosted, low requirements (no DB, just php), easy to maintanin, plain text files so data always accessible. It's a wiki so easy to edit and publish; readers can register and contribute.

I only run documentation for a small team (4 people), so can´t comment on scaling. But after a lot of failed attempts (word document, text files, wiki) for now we settled on MS OneNote... yeah I know... as team leader I was resistant to it. But after noticing my team members had each started their individual notebooks, I thought - what's the point on trying to force them to use something I think is better but that is not working for everyone, when they already found the solution for themselves.

The setup we use is a monolithic MS OneNote notebook stored on MS Sharepoint.

I know this setup is dependent on your shop buying the "expensive MS stuff", but we already had it anyway...

This setup gives us the following "features":

- Everyone can edit at the same time

- Changes are tracked and identifiable by username (you can rewind the file history)

- Editing process is very easy and user friendly (you can drag in files, images etc into your notes, and it just integrates seamlessly. particularly with the rest of the MS Office suite)

- OneNote notebook layout is actually pretty good (horizontal tab based main sections, that can each hold multiple pages of content. these pages can be visually organized in a hierarchy)

- It has good search functionality

The takeaway here isn't to use OneNote, but to utilize a tool your team is comfortable with and will contribute to. Kudos for going against your own preferences to accommodate your team.

My team's got OneNote notebooks stored on shared network drives, which works very well with same the benefits you list.

To open the notebook and be able to start typing (or pasting in from email etc) is a very low barrier of entry, compared to say using a Confluence wiki page and having to login then click edit.

That's what we have in a lot of teams here, and we have to look for an alternative now that Microsoft is dropping support for local storage in Onenote.

The last version to work with local storage (not cloud) is Onenote 2016, which is supported until 2025.

My experience is similar to yours.

We also have a monolithic MS OneNote notebook. The notebook is shared by 30+ people and we haven't experienced scaling issues at that level either.

To add to your list of features, the macOS and iOS apps work well which is nice since we have a mix of Windows and macOS users.

> "To add to your list of features, the macOS and iOS apps work well which is nice since we have a mix of Windows and macOS users."


And it also has a very good web version so you can easily browse the documentation even if you are not on your main work computer (from home, from a coleague's desktop or laptop). This is a feature I really on all the time actually.

IMHO MS has really step up their game in terms of the web versions of their apps. A couple of years ago we were still being force fed this clunky outlook web version that only worked properly in IE, and now we have popper functional cross browser web apps for everything.

Screenshot of One Note web interface: https://www.microsoft.com/en-us/microsoft-365/blog/wp-conten...

Isn't Onenote only available on Onedrive (Microsoft's cloud) after Office 2016? So you won't be able to keep it on your Sharepoint in the future.

In my case we have Office 365 subscriptions so everything is guaranteed to keep working in the future. I said it is stored on sharepoint because technically it is where it is stored. In terms of user experience it is surfaced via MS Teams (i.e. I upload it via MS teams, and I go to MS teams to get the link. but the file itself lives on the office 365 provided sharepoint server... this part of the MS ecosystem is shambles...)

Seconding TiddlyWiki.

I use it as a personal wiki at work.

It even supports LaTeX (via KaTeX)!

Here are the customizations I found useful:

* Table of Contents:

By default, there is not Table of Contents in the wiki. So a TableOfContents tiddler was added.

The tag $:/tags/SideBar adds it to the nav bar, and the field list-before controls the position.

New entries are added to the table of contents by adding the TableOfContents tag.

Note: the same code can be used in tiddlers to list tiddlers with a given tag.

* Journal:

New Journal date format was changed to YYYY/0MM/0DD (DDD, MMM DDth). This makes lexicographic ordering of Journal tiddlers to be chronological.

That is, Journal tiddlers will be sorted by date when sorted by name.

Visual theme:

The layout was changed to fluid-fixed Settings - Appearance - Theme Tweaks - Options - Sidebar Layout: Fluid story, fixed sidebar

Sidebar width: 350px

This looks particularly well when occupying one half of a wide screen.

Appearance - Code Foreground was changed to #0a5701 (green, used to be red). This affects the color of text enclosed by single tick marks.

New Journal, Attachment, Configutation, Manager buttons were added

* Plugins:

The following plug-ins were added:

KaTeX for LaTeX support;

Highlight.js for code syntax highlighting

It's a great tool. All the information is stored inside a web page, which in turn means I can view it on any device that has a browser.

But what makes it more powerful is scripting support. One can not only customize its look and feel using CSS but also modify its behavior with scripts. Its scripting system is very powerful, for example, one user has a build a version control system for the TW notes using the TW scripting language.

TiddlyWiki has been my go to for my personal Zettelkasten. I've found it has covered all of my needs in a single file without having to even install or sign up for a single thing. I adore TiddlyWiki.

This is the best answer. Dont fall for these startups shilling their products here!

I started using mine a while ago. See https://wiki.desipenguin.com/

I used it for a while and really enjoyed. But I wanted to make it work with github pages and it did not seem easy. Has anyone here managed to do that?

Does tiddlywiki work with Markdown?

Yes. You'll need to install the optional plugin for it. Then you can create and edit tiddlers in markdown syntax.

Can you edit and save the notes in markdown? I’ve got a bunch of notes in this format and ideally would like to keep them that way if I move them to a new platform like Tiddlywiki

Yes. You'll need to install the optional plugin for it. Then you can create and edit tiddlers in markdown syntax.

For teams I've used Raneto[0] in the past.

I use Notable[1] and MkDocs[2] for personal notes and technical documentation respectively.

All three are markdown powered of course. Raneto and MkDocs can use a Git repo with your preferred build pipeline and the HTML can be hosted internally or on Netlify, etc. Works well for teams.

With Notable I use Syncthing to keep notes synced, but that's a personal use case.

For teams you may also want to give Outline[3] a try. I haven't used it as yet but it does looks pretty good.

[0] https://github.com/gilbitron/Raneto

[1] https://notable.md

[2] https://github.com/mkdocs/mkdocs

[3] https://github.com/outline/outline

The Notable + Syncthing setup is intriguing – might have to switch off Evernote and give that a shot. How do you view/edit your notes on a mobile device? Thanks for sharing!

Well, here is the issue: “... to turn knowledge into actual learnings.”

As you know, the solution is not just about an electronic system to expose the data.

The problem is that it is up to your colleagues to read and absorb your “knowledge” so they become “learnings.”

Now, the solution is also not to force them to do this. There simply isn’t enough time to absorb the notes of 49 other people every day and still do a full days work including churning out notes for the others.

This is a bandwidth issue. Does it really make sense for everyone to know what everyone is doing?

I think they actual solution will be tailor made for you company. Who does what? Who needs to know what? You have to start with the details.

To bring some structure I think the tool is less important than having procedures to provide a framework for everything.

I would look at Standard Operating Procedures. They will greatly decrease stress and give structure to every process that’s important to your business, and make it easier to scale, onboard people and allow people to fill in for others.

Also, you iterate on these procedures. As you find improvements you roll them into the process and that way becomes the new way to do something.

If you just keep documenting and improving the improvements will be noticeable quickly.

Personal organization:

(1) Use the Windows file system to create a directory ("folder") tree that is often a taxonomic hierarchy. Have some good little command line tree walking commands.

(2) Do a lot with just text in simple text files. Generally prefer just simple text. Manage these files with a really good text editor. Have a lot of macros for the editor. E.g., start each entry in a file with a time, date, day of week stamp from a macro -- good to have to document the entry even if don't have much more.

(3) In each directory, have a text file that describes the other files or directories in that directory.

(4) Have a file, I call FACTS, just a text file, that has little facts: Each entry starts with a delimiter line, then a time-date line, then a line of keywords, and then the entry. The entries have user IDs, passwords, credit card info, e-mail addresses, USPS addresses, phone numbers, URLs of interesting Web locations, names of people and/or notes on them, etc. really just lots of short facts. Write a little editor macro to do search keywords.

E.g., since this thread likely has better ideas than I have, I put the URL of this thread in FACTS!

Big point: A single file of a few million characters searches essentially instantly and can hold lots of facts per day for years!

(5) For more, that is, for more serious information, knowledge, etc., write notes, even nice papers in D. Knuth's TeX and index them in FACTS, describe them in the documentation file of directory of the paper, etc.

For what to share with others, I'd suggest relatively well written notes or papers. For more, have a directory, make a ZIP file of the whole directory, and share that. For more, maybe use GITHUB or some such.

Awesome, thanks

Create a knowledge-team whose sole job is to take information from all the other teams, digest it, and make it available to the rest of the firm. Call it "corporate communications" or "internal marketing" or whatever floats your boat. If you can't get a proper department, at a minimum you can get a on-staff librarian who is a good technical writer who you can pass around the firm (as long as they have the ear of the CEO/COO).

In a programmer environment, this is impossible. A programmer will always need to document his own things for a simple reason: (s)he is the only one who really knows. Putting people in the middle of that who can barely understand all the details, seems like a lot of overhead for a worse deliverable.

A programmer who writes their own documentation is like a barber cutting their own hair: Economical perhaps, but worse for anyone who has to look at the result.

And yes, if your audience is programmers, then ideally you can hire technical writers who can program, and who can speak to programmers, but failing that, technical writers who can get proofread by a programmer can also work.

Having a single consistent voice is what matters, and that comes from giving a person the responsibility to be that voice.

A programmer writing documentation is far from economical, since most of the time their time is worth more than technical writers.

It depends on the type of documentation of course, but if you work in a 50 person team and you want to document internal architecture or code structure, you better let the programmer that knows about the stuff write it.

First getting that technical writer up to speed about how everything is structured, the little implications etc, is pretty insane. It's like that phone game where you tell one person something, and then that one tells the next.

> A programmer writing documentation is far from economical...

And then you go on to explain a way that it is more economical; Time is also an important economic consideration.

> First getting that technical writer up to speed about how everything is structured, the little implications etc, is pretty insane. It's like that phone game where you tell one person something, and then that one tells the next.

No. That's what happens when you have a non-technical writer do technical writing. I wouldn't have felt like I have to say this but just because someone has "technical writer" in their job title doesn't mean they can do that job.

Yes, but they didn't do that job.

If my colleague programmer works a week on refactoring some code, I honestly have no clue what was changed. There is only 1 person who actually knows what and why.

I don't believe you can have 50 people producing knowledge and checking in code that nobody ever looks at or reviews, writing documentation that all 50 are expected to know, and have even a good portion of that 50 people understand it well.

I also think that if you have developers working for a week without anyone who knows what they're doing you have a management problem.

We might be talking past each other, and I might not understand exactly what you're saying.

Recently came across this interesting approach for organizing knowledge across all domains (life and work):


I haven't fully implemented it yet, but the general concept is:

Projects: a series of tasks linked to a goal, with a deadline

Areas: a sphere of activity with a standard to be maintained over time

Resources: a topic or theme of ongoing interest

Archives: inactive items from the other three categories

Disclosure: I am a founder at bytebase.io, currently in closed beta.

My former team used Confluence and Google Docs for knowledge sharing and found that it worked great for planning projects, but fell short for things that change quickly or are relevant for only a short period of time - code commands, debugging tips, meeting takeaways.

We relied on slack and personal notes for these tidbits which resulted in the information being difficult to find.

This experience inspired us to start Bytebase, the byte-size knowledge base for engineering teams.

Everything in Bytebase is a "byte" - a short chunk of information - not a document, and bytes can be composed of other bytes.

Bytebase makes it easy to capture and share bytes using a shortcut-heavy UX that feels familiar to engineers.

Would love any feedback or ideas. Email me (cara@bytebase.io) to get access to the closed beta with HN in the subject line.

I'm really waiting for a service like yours to "make it" - We've tried things like Guru, which I think is similar in theme (small, time sensitive bits that need to be updated/maintained), but sharing the maintenance across the company meant nobody prioritized it.

Bytebase looks super straight forward and minimalist, I wish you the best of luck in improving this space!

* I use a Leuchtturm1917 A4 square-dotted hardcover notebook for immediate notes.

* Longer-term items go into Org-Mode in Spacemacs.

* On-the-go to-do items go into Org-Mode as well, via the excellent Android app "Orgzly". These are shared via Dropbox with the Spacemacs instance.

* Habits are also in Org-Mode, with the org-agenda habits view showing me how I'm doing on that. A habit being a repeated task, something you want to do semi-regularly like "remember to take preventative inhaler" or "do yoga at lunchtime when working from home". This is a good overview of org-agenda + habits view: https://blog.aaronbieber.com/2016/09/24/an-agenda-for-life-w...

* I used to also save technical discoveries as a long list on my personal DokuWiki page in our work instance. It would get written as "Short Headline", then description, then code examples. Things like Title: "YUM wildcards", Description: "Use “yum list”", Example: "[root@wiki01 ~]# yum list "php*fpm"". I intend to get back to that by using the note taking org-mode capability in Spacemacs and scripting a dump of those into a personal wiki "somewhere".

Mediawiki works quite well. Most people use Wikipedia, so are able to quickly learn & use Mediawiki. Wikimedia Foundation has a number of initiatives to increase the diversity of Wikipedia contributors, so that translates into features non-technical people in your org will appreciate.

Microsoft was using Mediawiki for external-facing developer docs (at least on the HoloLens site), but after the GitHub acquisition has switched to a workflow that uses VS Code as a Markdown editor & publishes to GitHub pages. That kind of workflow can be okay if all the people in your company are highly technical.

As your company grows you may get value out of internal conferences or mini TED style talks.

Video & screen recording can really help too.

For personal notes, I’ve fallen back to plain text files with Markdown formatting. They’re relatively easy to search & avoid vendor lock-in so I can retain access to my writing. I try to include a common word in the title of related text files to aid finding them. But usually I can just type a phrase into Mac or Windows operating system search and find the note I’m looking for. I’m still deciding if it’s worth organizing my notes into folders.

Previously, I wrote papers and notes in a variety of word processors and page layout tools (Claris Works, Word, Apple Works, Pages, InDesign). Over time I’d miss an upgrade cycle, switch OS, or couldn’t justify the cost of an upgrade and lost access to many of those files. So far text files have proven to be quite portable across editor apps & I’ve also found writing in plain text helps me focus my thinking.

I use https://standardnotes.org/, which allows me to tag my notes and search, it also syncs to my mobile.

There are some great "organizational" options in this thread though!

I wrote standardnotes-fs, if you'd like to mount your notes as a file system:


I rely heavily on https://workflowy.com/

Here is a quick interactive demo: https://workflowy.com/list-maker/

But I'm not sure how well that works with 50 people. You should probably mention what kind of knowledge you want to share and what features you might need.

Second workflowy. There are other zoomable nested lists (e.g., dynalist), but they're too slow. Workflowy forces minimalism, which ensures your data is portable and that the handling of it is fast.

Adding colored tags[2] and the Workflowy Code Formatter extension[1] makes it really great.

[1] https://chrome.google.com/webstore/detail/workflowy-code-for...

[2] https://chrome.google.com/webstore/detail/painter-for-workfl...

I was a heavy Workflowy user for my own personal notes for a few years, and then I switched to Dynalist after a colleague recommended it to me. It can do a lot of things that Workflowy can't (or at least it could when I switched a couple years ago) such as format LaTex code. I rely heavily on this software for organizing my thoughts in both work and my personal life, and I use it daily.

I've tried using these tools in a work environment but my colleagues have never really loved it, so it's more of a personal tool. We just use Google Docs in my current work environment.

I built Logbook for my own personal note taking.

Two key features for me:

1. Tagging notes works better for me than a directory structure

2. "Feed" style of notes allows me to go search more notes.


For sharing with public I use GitBook https://www.aizatto.com thought here are some short comings https://www.aizatto.com/why-gitbook . I personally like how it can output to Markdown, so that means I can have a copy of it anywhere

What a cool thread, I mean it.

I don't know how to organize wiki-like things for teams, but here are my two cents for the topic of personal knowledge bases.

First of all, regardless of software, I prefer less structured and less constrained approaches so that it doesn’t take too much time and effort to add things to my knowledge base. I try to minimize the total number of entities (lists, files, notes) and to avoid folders at all. Usually I achieve this by using tags.

Secondly, I am still in a search of a perfect approach, but here is one thing where I succeeded to some extent, namely collections of homogeneous items. I use AirTable for that, but one can use Notion. For example, here is a list of software, I started it several months ago: https://airtable.com/shr8Wd96FurJmiTLs/tbl0n17xFuXrs0kMS?blo... I have a similar list for scientific papers that I read. And I started two more lists for other things. It is important that 1) the number of lists is low (I have 4 now) 2) the lists have simple structure 3) I can always download them as csv and do whatever I want.

As for the rest, I use markdown notes (I edit them with https://typora.io) stored in a dropbox-like cloud for ideas-like stuff. I use Google Keep for super-simple lists and I also have there a temporary note that serves as a buffer for sudden thoughts and ideas, from where I move them later to more appropriate place. I use https://todoist.com for my tasks, they are not organized very well (because no tags in the free plan), but the app is really nice and the number of tasks is not that great, so for now this works fine :)

Over the years, I've tried everything from MediaWiki, Evernote, OneNote, Confluence to Google Docs. Each seems awesome when you start out, but after a while, the novelty wears off and out-of-date crud starts accumulating.

The only thing that has remained constant for me are text files. I use two forms: if it's related to a component I'm developing, I tend to place it in the repository itself, in README.md, or docs/.md. Other stuff I keep in text (.md) files in a Dropbox.

Only those things that don't fit well into the above two formats go into Confluence.

I second the needing a single, searchable source of truth. One of the main needs is for it to be maintained and updated. Having it all in one place helps with that and reduces the cognitive load of making the decision of where to update.

We use fossil; a bit minimalistic, but you get a wiki + code repository + tech notes + issue tracking all in one place and auto-updated with the code, and you can run it as a server with a web interface for those who don't need permissions to clone the repo.

Does anyone annotate code for knowledge management? I've reached a point where I've worked across so many projects and languages that when I return to code after some time, I can longer completely remember where I used certain patterns or other that I want to reuse elsewhere. Grep can only help so much with code alone. Documentation doesn't cover this category, either. So, I've started experimenting with ways of doing so.

I am experimenting with a custom markup that exists in code comments before, within, and following a code block that is the subject of discussion. I reuse markup attribute values to standardize categories.

Then, an app scans source for annotations and indexes them. I can then fuzzy search against the index using a range of words and get references.

If anyone likes this idea and would like to collaborate with it, and have the chops for doing so, contact me..

I didn't used to when i was first coding as a youngblood. But I'm now beginning to annotate code more for knowledge management. I'm finding that now that i'm getting back to coding on a (tiny, little more) frequent basis, my memory is suited to recent stuff...and to offload the "why" i coded something a certain way is helpful.

Putting all your company's data in a random startups hosted service is something not everyone can and should do though. Even if it looks really nice.

As much as I love Notion, things that you've mention really holding from moving sensitive data into Notion. Wish they had more solid approach to security.

Not sure if this is still relevant, but at some moment they acknowledged their stuff access to client's data. This is huge no-no for any privacy conscious person.

Other that that it's a great tool for organising personal information for me.

Don't most companies that have access to your data have the ability to screen it (at least theoretically, if not practically.) E.g., Google for Gmail, Microsoft for Outlook etc.

I keep hearing how much people love Notion, but I really didn't enjoy it. I found the desktop app (Electron, no doubt) rather slow/unresponsive. And I hated the login system where they just email you a new temporary password each time you want access. I use a password manager, so this is absolutely awful for me. And I don't know how many times I wanted to reference a note on mobile without signal and was asked to log in again, which was of course impossible without my email! I just could not get into this product.

I also couldn't get into it but I can't really explain why. FWIW, the tool I use to cover the type of stuff Notion does is Zenkit. I really like Zenkit. I'm not sure if it has a ton of fancy features, but I don't need fancy. It's easy enough to use and it's exactly what I want. I've used Asana as well and I enjoyed that. But for whatever reason I like Zenkit.

Yep, I've been forcing myself to use Notion more. It's such a great tool for taking notes and such.

It's also really versatile. You can use it as a wiki, as a document hosting platform (like google docs), etc.

I add Google Calendar to it for time-based organization and Google Contacts for people knowledge. (I really wish this existed: A tool to aggregate my conversations across multiple mediums such as emails, tweets, DMs on various services etc and tie them to my contacts in Google Contacts.)

can recommend, it makes it so easy to start knowledge sharing. you'll have to implement some rules after a while, otherwise it becomes victim of its ease of creating new content

I honestly can't see any reason to use it over Confluence. Apart from better emoji support

I use ontologies like https://webprotege.stanford.edu

Fewer descriptive words, more structure.

A company ontology has three top level categories: Parties(internal, external), Metrics(Platform, SaaS), and CompanyStructure which has links to things like cap table, incorporation artifacts, org chart, accounts, etc.

The metrics piece is useful because it provides north star metrics for a SaaS business, and then performance ones for the Platform itself. All features roll up into these, and then their git codebases are linked from there.

If your features don't drive your metrics, you're just in the custom dev business.

I use it personally, but it's a bit dominating to have an umbrella framework that encapsulates what people think is their special contribution.

Documenting / sharing what you collect at work and at life are two different things. Usually platforms used at work requires enterprise sharing, security and authentication capabilities whereas the ones you use at home don't need to have those.

At work:

* Confluence (http://confluence.atlassian.com)

* Balsa (https://getbalsa.com) - this one is open source, can be deployed on premises and has several security features - think of it like Evernote replacement but you keep your company files with you.

For personal use:

* Sublime text (when I don't need any sharing among devices)

* Notes (if I need to exchange data between my iphone and my laptop)

Notion: https://notion.so

[edit: I work at Notion. I’ve added some more color about that to the top here. This isn’t marketing spam I’m commenting from bed on my phone - sorry that it came off slimy]

Notion is a malleable collaborative wiki that also has relational databases.

We build Notion, so it figures that Notion is our single source of truth. I think the way we use Notion internally works pretty well - with better results than the smattering of tools I’ve used at other companies - but we’re a smaller team...

Notion makes a good wiki because adding, editing, and organizing information has such low activation energy. Each part of the org (Eng, Community, Marketing, People, ...) has a tree of pages with process, information, etc.

We have a few big centralized databases that everyone uses:

- Tasks. Lets us see what anyone is doing, assign tickets, track progress.

- Documents. This one has a weird name. All teams put meeting notes, research, proposed designs, RFCs, specs in this database. The common thread here is that documents are artifacts of their time: they’re authored, reviewed and commented on by the team, iterated on, then ratified or archived. We rarely change them afterwards because they store historical context on decisions. If an RFC changes a process, or a design gets implemented, the affected team(s) might update their wikis.

- Goals. Stores objectives, product use-cases, and large projects. We relate Tasks and Documents with the Goals they support.

Centralizing these databases fosters cross-team visibility and assists with collaboration, eg seeing Eng and Marketing tasks related to an upcoming launch, plus the designs and research.


- Search. At the ~50 person size it isn’t a desperate problem but it does hurt.

- Integration with email and calendar. There’s no way to sync Notion to Gcal or react to incoming emails.

- Integration with Github: none.

- Mobile performance could be better.

[Disclaimer: I work at Notion.]

Notion is great - the most important thing to my mind is that it's easy to find information later (by navigation, rather than search. The search UX is... not great). I use Notion to record everything that doesn't belong in git, but still needs a canonical place to live.

>- Mobile performance could be better.

This is the reason I still use Evernote on mobile, even though I pay for Notion. Sometimes I'll even bend Trello into a note-taking shape. eugh. The startup time is far too long for the short interactions that you have on mobile.

There's one other shortcoming that drives me back to text files on a regular basis: often after highlighting some text in the desktop app, Ctrl-C doesn't copy. This is absolutely infuriating when using notion's code boxes to write down sequences of terminal commands. There's no way of knowing whether a Ctrl-C succeeded or not until I'm pasting the wrong command in a terminal. Text files, with any editor is a much more pleasant experience.

Even though this sounds like a list of gripes, I've found Notion invaluable as a knowledge base.

I’ll put your feedback about copy flakyness in our triage queue.

I love the product but I've not been able to switch all my note taking to Notion due to the lack-luster performance of the mobile (Android) client. It'd be fantastic if the app could cache data more aggressively enabling more fluid interactions.

I would love to use notion more, I like the way it works, it's flexibility, and would happily pay, unfortunately your offline capabilities arnt as good as I'd like it to be, and importantly your app startup time is very slow (which you already called out)

Will keep checking in in the future. Keep going though!

Hey I've been using Notion at work and its great so far. Do you know when will the api will be ready by?

IMO you should disclose (and it is a disclosure, not a disclaimer) your employer at the top, because it makes the rest of your comment something nearer to marketing copy than user review.

EDIT: Check OPs history, he asked this exact same question 46 days ago!

Ive never heard of this startup before, now they're all over this thread. Do you reckon they made this whole thread for marketing purposes? OP is a pretty anonymous user.

I already dislike them now & hopefully never have to use them. Someone else posted Tiddlywiki which is an amazing open-source program, suggest everyone at least check it out. It changed my life. I obviously have no stake in it, so why doubt me? No disclaimer necessary.

I don't think so, in that submission (which got much less attention) the only mention of Notion is OP doubting that it's more than hip design.

Tiddly Wiki is indeed awesome. There is one few feature I would like (export to a graph database), and the wiki syntax is something annoying to use but overall this is genious level idea and great execution.

They've been around for a few years, and really are a pretty good collaborative tool with a lot of possible workflows and use-cases.

I've seen Notion mentioned often on HN, and after giving it a try I'd recommend to at least look into it to see for yourself.

I agree: this trick of saying that you are using Notion as a source of truth when you work at Notion had left a bitter aftertaste, on a product I should love overwise.

Sorry about that. I edited to add the disclosure at the top as well.

Sorry about that! I added a disclosure to the top along with a bit more personal perspective.

Privately it's org-mode all the way.

At work it's a mixture of mostly Confluence and Markdown README files.

We're the same.

Confluence's inline and bottom-of-the-page comments are excellent. You can have proper chained discussions.

Blog posts have been amazing for us to share small "experiences" like how somebody setup their environment (as opposed to more standard env setup documentation). These tend to be more informal.

Markdown files in repositories have been alright, definitely good for readmes. However, they suffer because our tooling (Gitlab) does not support comments on the files.

I use Confluence at work, and it's quite good - biggest issue for me is the lack of markdown support. I'd really like to be able to author Confluence pages using markdown.

They've added markdown support in the new editor. Auto-converts as you type.

I use an outliner called Dynalist.

It’s an alternative to Workflowy. Workflowy development stalled a while ago so I switched but it seems to be active again so I might switch back.

An infinitely zoomable hierarchy works really well for my OCD :)

Another alternative is TreeSheets (http://strlen.com/treesheets/) which is desktop only but very fast and nice implementation of structured note taking tool. It's very well suited as replacement for mind maps, categorization of items and mapping hierarchical structures. I prefer it to any online solution because of speed and data ownership.

I use a combination of Things.app, Notion, and Trello.

Fortunately most of my client work involves the use of Trello. Either I come onboard and institute a board/process that they can jive with or they have an existing board/process. That has been great. Trello is only as good as the person managing it, that’s important and methinks why a lot of people dislike it. I do a good job of managing Trello to fit the general framework of working and thinking that exists for each project or client.

For client projects Trello is the boss hog. Everything is stored there. Things will get broken out into sub-boards when necessary.

For personal stuff, it’s a combo. I use Trello to track things that have graduated from the research/idea phase into the action phase.

The research and idea phase I speak of occurs in Notion or more accurately on paper documents (no. 2, 2B Soft pencil!) scattered around my physical desk that eventually work their way into Notion. There, I enrich things with outlines and maybe full blown documents. For instance I used Notion to do a big documentation project for a client, exported as markdown, cleaned it up, and then forklifted it into their Github project wiki.

I also use Notion for all sorts of personal stuff. My homelab for instance is tracked there, with tables describing IPs/hostnames or hardware in the rack etc. The hierarchical nature makes it great to start low fidelity and go high fidelity.

I’ve got random article ideas there, some in outline and others in more detail.

Will come back and update this post with more detail shortly. Doing this via mobile and gotta jet.

I will echo afarrell though and posit that the tools are less important than the process. Determine the process and the outcomes before you choose your tool!

I hold office hours: Two meetings a week with (usually) no agenda, and anyone can call in and ask anything.

Sometimes someone will email me the day before and suggest an agenda.

Other times, when there are newcomers, I'll set an agenda for a few meetings. Usually I discuss design patterns that we use, libraries that we use, ect.

A combination of:

- A shared Outlook.com calendar where we (well, mostly my wife) puts social events and commitments - Hugo/git as a general KB for work related stuff - Microsoft Teams as a day-to-day journal and tracking of personal projects. - Standard Notes / VS Code as a text-only scratchpad.

The best way to share knowledge at work and in life is regular conversation with the people on the team. No matter the method for capturing knowledge, a lot of folks on the team aren't going to find things in it. Many experienced people on the team having wide-reaching networks throughout the team will be better surfacing of various things they've all learned, as well as improve overall design and architecture of what you're working on, and improve the education and quality of work for the rest of the team. This can be further augmented with formal design and implementation meetings, where problems and choices are discussed with revolving groups of people.

I think you are right in most cases, but I find wikis to be excellent for how-to/recipe kind of information.

These can be either technical (e.g how to bootstrap a new repository or how to connect to this database), organisatorial (e.g how to apply for vacation or how to apply for conference funds) or simply office related (e.g how to print something, how to refill coffee-beans on the coffee-machine).

I put everything in trello. It’s terrible as trello’s search sucks. But I still do it.

I was searching for such tools and founded a useful one Restya. Restya is a productivity and management tool specifically built around a Kanban-style workflow. Great for personal use (FREE) and scales easily to business and team use. We use it daily for managing our project workflow. I work closely with the developers, so feedback is always great. Restya is an excellent free Trello alternative https://restya.com/board/comparison

Currently I use Dynalist.io, which is like Workflowy but adds the concept of documents and has a ctrl-P like fuzzy finder. My notes are a complete mess and I have not found a way to organize them into anything useful. Right now my brain dumps are basically write only. Solving this is an active interest of mine, since I want to publish my thoughts at some point.

My coach Malcolm Ocean has been speaking highly of https://roamresearch.com, which looks like a promising way to keep track of research-style notes.

You must try what's better for your team. Decide in subteams and share with the others the experience on workshops, then evaluate the pros and cons to decide and don't be afraid of try and change. The right set of tools also depends on the type of work you do.

Blogs, wikis and QA sites (also microblogging, shared conversations) witch a search center for all are classic instruments for implementing solutions that start by the organization (with agreement) of the "way of doing" by the teams and management. UPDATE: Like others say no replacement but a complement of teams and people face to face interactions, that can be perfectly established with some sort of SCRUM scalation.

On dev and DevOps environments, I prefer "doc as code" solutions (Github based); with one type of Github project as Hub for a collection of subprojects, using the main repo as documentation for guide, FAQ, status and blog post host (markdown or variants) as well as the Project Management and Issues management features as coordination tools.

Please elaborate on the kind of work and teams, the real need for integration with existent information management systems and the community will come with better suggestions. There is a lot of tools available, including more general approaches like a CMS portal with Sharepoint or O365 or Wordpress with plugins, some more direct to the KNB question only like QA for teams (StackOverflow), others tasks focused like Trello, etc.

For our support team of 5 we just started using a custom text expansion tool I built in Electron. The snippets (canned messages) are stored in a WordPress site (we already have the main website / docs in wp so it was a good fit) and we all contribute to them.

https://github.com/sareiodata/kbexpander https://github.com/sareiodata/kbexpander-snippets

The tool is mapped to a keyboard shortcut (the OS manages this) and searches the snippet title and content. So you can easily filter down stuff.

The WP plugin also has reports, like most used snippets (every-time you paste a snippet, we track that) per user / date / category. This way we'll try to see in the future if we can improve a particular part of our product, improve inline docs so we stop getting those questions. I'm not sure if this will amount to anything, but it's something we're experimenting with.

Other tools exist, but I didn't find anything with good enough search + a way to have a common repo for snippets + usage reports, thus the Electron monstrosity and WP companion plugin.

This is how it looks: https://pbs.twimg.com/media/EG_Ejy9X0AAnnMV?format=jpg

At work we have Confluence and MoinMoin as internal documentation wikis, so sometimes I use MoinMoin for stuff not in Confluence I put it under my own MoinMoin homepage. If a project has a space on Confluence I go crazy on it. At home I mostly write things down or use the QuickNotes app on my LG G7.

I am debating writing my own little utility or setting one up on one of my Raspberry Pis at home. So I can have some sort of small wiki for internal use at home.

Knowledge Management is clearly a ubiquitous and important business problem. I've struggled with Knowledge Management in previous roles and deployed a tool called Guru at two different companies. My teams found Guru significantly better than a Wiki because Guru distributes the maintenance load across a team of Authors (experts) and sets verification intervals (ie 1 week, 1 month, 1 year, etc) so that the Author is nudged to re-verify or update the info after the horizon expires. We found such success with the tool, and I enjoyed working with the Guru team on deployment so much, that (full disclosure!!) I now work on Guru's Customer Success team.

There was mention in the thread below about no tool being able to replace personal interaction. While I agree with that, Guru is the next best thing I've found so far, especially when teams grow to the point that the "Expert" is getting shoulder-tapped too often to focus on their actual job. Tons of other good ideas below that I don't have time to consume.

Check out getguru.com if curious!

Video chat sessions that are recorded and shared with everyone. This includes things like pair programming, but also just normal conversations on topics that are too green for any kind of formal documentation.

Then as you build consensus it makes sense to start putting things in writing to reference in future discussions.

When putting things in writing, put as much of this in your code as possible, and don't be afraid to repeat yourself in many places.

Be deliberate about how you name things. You should choose names that align with names used across disciplines/teams in verbal communication.

Cross reference things by these identifiers, even if you're not using any formal documentation generator.

Rely on new employees to write high level documentation, with seniors around to answer their questions. A new hire will have the ideal perspective, and will become an expert in the process. Pay them accordingly ;)

Don't worry about docs getting out of date. Again, rely on new hires to find issues with docs.

Be relentless about reducing "API surface area" of your subsystems.

Personally, I'm on a tight Things.app <-> Bear.app loop; professionally, it varies. For keeping professional stuff up to speed I'm on a Things.app ingestion -> Asana loop that throws off artifacts to a google drive and various git repository markdown files, which might be writing new documents or keeping existing documents up to date.

I recently switched to Notion from Evernote. Here's a referral link: https://www.notion.so/?r=a48a98c66d914566827b061a3e7efd91

It took about a week to get used to the way organization works, but the ability to nest things under things and have them more or less self-index is handy. If I move two things under the same item, the item will show a list of the two things in a new Page type item. You can turn that new page into a wiki, style it, add notes, etc.

If you've ever used Scrivener, Notion is similar to the way it lets you organize things in a freeform way. My only gripe is that export dumps everything into files in one folder. They need to copy the way Dropbox Paper (or Scrivener) exports that retains the structure in folders. At least they support Markdown exports. That's more useful than the full HTML pages most note apps export.

Founder of https://www.cacher.io here.

Cacher was built for the express purpose of team knowledge sharing via code snippets and Markdown docs. It has also been successfully scaled out to teams of dozens, with a few customers rolling out to hundreds of members.

We believe successful knowledge sharing comes down to several parts:

1) Organization via categorization. While retrieving knowledge, labels/tags are an important heuristic shortcut. We often have trouble remembering but details but can usually recall the purpose of the piece of knowledge.

2) Integration with existing tools. People hate changing their workflows. We've found that engineers who are used to coding in VSCode or IntelliJ would rather not leave their editor to retrieve snippets. The context switching is just too expensive. Cacher is integrated with major editors/IDEs for this reason.

3) The ability to keep other team members updated on progress and changes. A proper knowledge system uses notifications judiciously to keep everyone on the same page. Cacher does this via customizable desktop/email/Slack notifications.

4) A professional understanding of the knowledge workflow. It is important, regardless of which tool you adopt, to come to a consensus on how the knowledge will be used. Marketing and e-commerce teams use us to store HTML/CSS with the intent of creating a large library of components and patterns. Technical support teams create snippets for remembering how to update a user's billing account. Before settling on a tool, consider what kind of knowledge is important day-to-day and agree as a group on how you'd like to retrieve it.

I hope that helps! If you're team is looking to try it out and would like thoughts on how to set up an adoptable workflow, feel free to ping me: rui[at]cacher.io

We used to use Confluence but it always felt too bloated and cluttered. It was a pain to get people to contribute and even harder to find stuff because of how slow and broken the search was.

We have since switched to Nuclino (https://www.nuclino.com/) and are pretty happy so far. Refreshingly simple, lightweight, and focused on getting the essential features right. We are now moving away from Google Docs as well and trying to consolidate all knowledge in Nuclino. It's almost perfect for our needs, only a few nice-to-have integrations are missing (and will hopefully be added soon).

Finding the right tool is only half the battle though, getting people to actually use it and keep the content up-to-date is usually the real challenge. Switching to a more user-friendly tool certainly helps, but it isn't enough to create a culture of documentation.


To organize and share our knowledge at work, we use the project management tool we developed: https://en.beesbusy.com

We create projects and tasks for specific topics and use comments for updates. And for more complete information, we can add a link to shared documents or an attachment. For instance, we created processes templates that can be updated and duplicated.

I find it very useful because knowledge is then organized in a workflow perspective: for instance, our product roadmap information is updated by everyone on a daily basis.

Since Beesbusy can be used for any type of project and has a mobile app, I also use it to organize my personal life. I share projects with my wife (shopping list, travel plans and so on) and I have everything in one place.

I would also recommend using a wiki for in-depth information. We use the Gitlab wiki for its simplicity, and we add links to its pages from our Beesbusy tasks.

My website started out as a personal Wiki, and it still works like that under the covers - https://taoofmac.com/space/dev/Python (as well as hundreds of other similar pages) has a bunch of links and resources I found useful or notable, for instance.

These days most of what I write is online, too, although I have bunches of OneNote shared notebooks and other accoutrements that come with working at a large corporation (Microsoft in this case).

In previous jobs we used Wikis (Trac, PhpWiki, GitLab, etc.), mailing-lists, the works.

I would suggest picking something with proper versioning and access control regardless - OneNote has the additional benefit of having decent (if slowish) mobile clients that let you take some of the info with you offline on trips, but that’s likely not a priority given the scenario you outline.

My office of mostly non-programmers is looking for a knowledge base solution. A lot of these recommendations seem geared toward developers. I'm curious what user-friendly, dead-simple products are available. (Note: markdown files in a git repo only meets these criteria for people like me, not for my coworkers.)

In my team (also non-programmers) we're going for Google Docs in a folder structure. It's straightforward enough for most people and has all essential features. And my company went for G Suite so that fits well.

I just wished Google had a tool (or view in Docs) to make a note rather than a letter-type document. More like Dropbox Paper, less like Word. At least to get rid of the paper width and page separation.

For companies going for Office 365, Onenote is probably the best choice.

We do not use Notion where I work, but if I were doing something today I'm not sure why I'd pick anything else.

Primary reasons: Pages are easily created, can easily create templates for pages (reduce friction, increase consistency), easily shared among many people, and their "databases" feature which makes structuring all those pages much easier.

e.g. Have team meetings? Create a meetings database and change the default "new page" template to one with all the required areas to cover. Add some fields in the database for the date, who is in the meeting, where it took place, or whatever else is relevant.

If you keep projects in Notion you can link between databases and to other pages within the same database to provide links to relevant projects. Looking up all meetings referring to a project is as easy as filtering for all meetings with that page.

My issue with notion is that it doesn't support sharing PDFs/PPTs besides sharing the entire page. I'd like for it to backup my PDFs which is does onto AWS... but the links are gigantic (2k characters) and expire.

We use https://nuclino.com at Toughbyte. Here's their Show HN from a while back: https://news.ycombinator.com/item?id=14865666

Thanks for mentioning us! Let me know if you have any feedback or questions – I'm a co-founder.

At Mobile Jazz (fully remote company) we've a weekly 1-hour video-conference call dedicated to sharing knowledge and experiences with each other. For that we share a Google Doc where everyone has a section to write down a few bullets, add links or images. Then in the call everyone gets 2-3 minutes to talk. Usually it takes less than a minute and we have the other 2 minutes to discuss.

For the actual organization of knowledge we use Slack (#team room for work related stuff, #coffee room for everything else) and then for the serious information and processes we use a Wiki (Google Sites) and Asana.

We've also written an extensive Company Handbook [PDF] which can be downloaded here for free: https://mobilejazz.com/company-handbook-pdf

I actually launched https://ulluminate.com to help with knowledge sharing. I found myself looking through my bookmarks far too often to share things with friends and coworkers. I wanted a tool where I could segment my bookmarks into private, shared, and public spaces and provide annotations as to why I thought the link was helpful. Also the ability to search a link and domain across the network of public bookmarks will be really cool for discovering like minded people and subjects.

I still have A LOT of work to do on it, but the goal is to make it really valuable for team and peer communication. I think if you use a bookmark extension to navigate your organization's structure, it should stay more up to date than a wiki (at least thats my hope).

Sharing knowledge is tough; I don't think there's a silver bullet and everyone wishes they could do it better. Some strategies we use: - Mailing Lists - a collection of mailing lists people can subscribe to if they're interested in a topic. Bonus points if you dedupe messages, as it's kind of annoying to get the same message more than once. We BCC to avoid Reply-to-All discussions/arguments. - Discussion board - discourse... - Q&A - stack exchange like Q&A - Cross-team focus groups - these come in many flavours from "group level" (several teams sharing a common manager) to company wide. Some organise meetups/presentations that are really popular.

I'd encourage "all" of the above in some flavour or another, as people learn and teach differently.

Mailing lists is a trap. As your company grows it implements a data retention policy and poof, there goes all your knowledge when your old emails are auto-deleted.

Only use mailing lists for notification with links to the actual knowledge in a real document.

I think it's best to 1) store the original messages outside your email system and 2) keep discussions to discourse or similar. That way, you have tools designed for the job and independent storage of discussions.

Each person has their own OneNote. No one shares on the company OneNote, as it is not documented how to do so and IT seems to be clueless about it.

Beyond that we have MediaWiki which is a tar pit of ancient and current information that has horrendous search/filtering.

No one is maintaining it from an archival standpoint and there is a mixture of old commentary on obsolete alpha/beta engineering releases from decades ago, along with all sorts of old material that may or may not be relevant.

It is excruciating. I've created new content, that I can't find through the search box, so thankfully I bookmark it in the browser or look to see what items I've edited.

Work: OneNote, now that Office 365 it is basically "built in" to everyone's computer and it does not require any training for non-developers (as much as I'd prefer markdown or org mode!)

Personal: My family uses Google's drive, so we have a large document which has our current schedule, projects on the to do list, shopping lists, etc etc. We spin off separate docs for big projects such as our home renovation or list of contractors we've worked with. Combined with scanned invoices, this makes everything searchable from one place which is nice.

I initially wanted to try something like Trello but the google doc has worked best for us!

I use our own product (Asana - http://asana.com) to coordinate all our work and it's also become a library and "brain" for everything that's happened. Personally I also use and love Dropbox Paper (http://paper.dropbox.com) for more long-form or ongoing research on topics both professionally and personally (I create a doc that I'll work on for a long time and can easily part it and come back to it, even share it with other people etc).

I've been really enjoying Notion. I used to use evernote and apple notes. Apple notes is still so much faster for quick stuff. But for writing/thinking/capturing etc. I'm in the notion camp.

Work: Our team has an extensive set of interlinked linked google docs for everything from how to set up your dev env to the plan for the week and logistics for off-sites. As well as a thorough README.md for every project we work on.

What makes the above work is a simple protocol: if someone teaches you how to do something, you're responsible for writing that something down. It's a simple honor system, but people tend to stick to it, and the result is an ever growing, live body of knowledge.

Life: Bullet Journal is pure magic, when I manage to stick to it :/

I was searching for such tools and founded a useful one Restya. Restya is a productivity and management tool specifically built around a Kanban-style workflow. Great for personal use (FREE) and scales easily to business and team use. We use it daily for managing our project workflow. I work closely with the developers, so feedback is always great. Restya is an excellent free Trello alternative https://restya.com/board/comparison.

At work I just made a huge organization overhaul. Previously, the entire state of a project was scattered throughout some markdown files in an absurdly complex git repository, a gitlab wiki and a stash of hand-written notes.

It's now all nice and tidy in a Confluence space. Let's see how it goes and how this holds up when more people start working on this project again. I for myself are diciplined enough to care about good documentation, but my last colleagues left a huge pile of chaos which took a few months to sort out after they left.

Have you thought about having markdowns rendered to a Confluence page? And maybe Confluence edits could get rendered back to git.

For the first use case, there are libraries available that sync your .md to Confluence which you could add to your CI system.

With a bit of tweaking, Pandoc does a good job of rendering HTML that Confluence likes. I wrote some scripts a couple of years ago to do this, using the Confluence API to add and update pages. It’s also possible to do a round-trip because someone will invariably edit the Confluence page.

Actually this is something we try to do with tiomsu.com [1] (gaelic for ‘a compilation’ ;) ). We're not yet ready for a public launch (will be in week or two), but there is a short video showing what we're doing [2] (sorry for strange resolution, it was planned for constant playback on ipad).

[1] https://tiomsu.com [2] https://www.youtube.com/watch?v=mx7Ai-PhvAM

At our organization we use One Notes that serve as sort of Wiki's

My biggest inspiration was https://wiki.nikitavoloboev.xyz/

I just started my own Gitbook wiki https://wiki.emadkhan.net/ and whenever I synthesize all this raw data with some insights I want to share, I'll blog about it at http://www.emadkhan.net/

We are working on a rather intuitive way to do that:


Basically, the AI determines everyone’s expertise and ranks content and people. We also have plans for AI Q&A.

In most companies you use things such as Confluence, Github/Gitlab wikis, Slab, Jive and tons of other page systems. The problem is still searching them effectively. Also most knowledge is actually in people’s heads. So you still have to search for the authors.

Nelson Joyce is building Tettra to solve the very problem you're describing

Nelson on Twitter - https://twitter.com/nelsonjoyce

Tettra - https://tettra.co

Edit: I'm not affiliated to him or Tettra in any way. I just follow his Twitter for his transparency and useful insights in building a company. Hence I would happily recommend his product to anyone facing the exact problem

I believe it is less about the tools to pick, but more about building the culture. Especially how to build the knowledge sharing culture among a small group of people at the beginning and spread it across the company.

But still, a good enough tool is a must.

We build knowledge base software Kipwise and have been helping various companies build their knowledge sharing flow.

Our focus is to help customers establish a culture. We start with the managers and seniors, and facilitate them to spread the culture among their own teams step by step.

It takes time.

I use the following stack:

1. Caret (https://caret.io/) for taking notes. It's a simple Markdown note taker with some really nice features. It outputs plain .md files and works with folder.

2. All my Markdown file are in a folder synced on Dropbox.

3. I use a custom Alfred workflow which uses riggrep to search very quickly through the notes.

One thing to mention is that I want my stack to be private, so this doesn't publish anything to the web but it does sync.

For work use I haven't found a good system. For personal use, I do the following:

- Sublime for very quick temp text files.

- Apple Notes for quick notes or for non-health related notes.

- TiddlyWiki for health tracking and identity tracking (e.g. what I value in life). Note: it's a bit unconventional to do questionnaires in TiddlyWiki, but it can be done quite well. Especially now that I know how their plugin ecosystem works and can extend the system with JavaScript. I'm happy to share my template.

- BoostNotes for coding snippet.

We created a new website with Gatsby exactly for this: https://til.cybertec-postgresql.com/

Each day, a GitHub Actions bot chooses one of the open post PRs and merges it.

The content is open source here: https://github.com/cybertec-postgresql/today-i-learned-conte...

For me knowledge sharing is about first having ideas captured in a suitable form. I have been using mindmapping software and find them amazingly useful in team meetings. No more powerpoint agony. Meetings go very smooth. Everybody sees the context visually when a mindmap is used for capturing the whole meeting interactively. Sharing them is easy as well. Just export to pdf and send after the meeting.

At work, I use Confluence to log and share knowledge and I also ask others to do the same. Over a period of time, this has worked wonders.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact