Hacker News new | comments | ask | show | jobs | submit login
DevDocs API Documentation (devdocs.io)
1239 points by nieksa on Oct 19, 2017 | hide | past | web | favorite | 141 comments

I can't recommend devdocs.io enough! It's such a fantastic resource.

* It links to the real documentation

* world class search

* lets you pick and choose versions and languages/frameworks you want to have searchable

* provides a consistent UI across all docs which is fantastic when you are switching between several while developing.

* Is updated with terrifying frequency (I don't think I've ever opened it and NOT had some kind of docs update notification!)

* There are editor plugins available that let you press a key and open the highlighted word as search in devdocs.io

If you use devdocs.io and feel like it has saved you time or money, donate to them on Gratipay [0].

[0] https://gratipay.com/devdocs/

Only receiving $16/week when all these Hacker News are pulling in 6 figures.

They would immediately be making more on OpenCollective

Agrees with all of the above, and would just add one point:

* Ability to tab-select [1] a language to limit your search to.

The lack of this feature in Zeal [2] is one of the reasons I stay with devdocs although i tend to like old-school real desktop apps.

[1] (Write the lang and press tab)

[2] https://zealdocs.org/

In Zeal, typing "javas" and pressing tab causes it to autocomplete "javascript: " for me. Is this what you're referring to?

Aha, perhaps the feature has found its way into a release, after I checked last. Gotta check. Thanks for the heads-up!

Something similar which I really love for terminal is tldr : https://tldr.sh/

Behaves like a substitute for man pages with most useful examples. Saved me hours of googling and searching.

Cool, it's even integrated in DDG: https://duckduckgo.com/?q=tldr+tar

Seems similar to bro pages (as a pun on man pages): http://bropages.org/

http://cheat.sh is a similar tool which I use a lot

Well dang, there's a new favourite

Reminds me of Dash[1] which is especially useful when configured in your editor: press a key to open documentation for the word under the cursor.

1: https://kapeli.com/dash

If you live inside emacs, https://github.com/areina/helm-dash/ will use dash documentation and use emacs for the search and display of the docs.

Also, works on GNU/Linux and Windows. Also, free software. Also, I'm the co-author.

I saw this a while back and it seemed amazing but I was wondering if there's any way to open the actual live documentation page. So for example if you choose the documentation for `Array.prototype.map` then it'll pull up that page on MDN, rather than the locally cached Dash page.

I know the whole point of Dash is to have locally cached, offline documentation copies, but I was thinking it would be amazing to use that to feed Helm candidates, but actually open the real, live documentation page.

you definitely can do it because the only thing that is in the docsets is a uri starting with https?:// or file:/// .

It seems there are some docsets already doing that[1]. Creating your own docsets is dead easy. just a simple sqlite3 file with a single table.

You can find an example I hacked myself here[2] (very hackish).

It's basically creating a table:

    create table searchIndex(id INTEGER PRIMARY KEY, name TEXT, type TEXT, path TEXT); 
    CREATE UNIQUE INDEX anchr  ON searchIndex (name, type, path);
And filling it with data:

    insert into searchIndex(name,type,path) VALUES ('foo','function','https://example.com')

[1]. https://github.com/areina/helm-dash/issues/65 .

[2]. https://github.com/kidd/AllegroLisp.docset

This is awesome - thanks for sharing your work!

This is great, thank you very much!

But isn't Dash just for Mac?

yup, "also" meaning "in addition". Dash is not free either, and I'm not its coauthor

Of course, "also" means "in addition". I was wondering what I'd do with helm-dash on GNU/Linux if Dash is only for Mac.

The helm-dash repo tagline on GitHub says "Browse Dash docsets inside emacs", so I quickly dismissed it as I don't use Mac.

Reading a bit further, now I see that it doesn't need Dash to be installed. So that's great! I'll see if an ivy/counsel version is out there.

Ah yes, sorry, I missunderstood your question :).

Yep, helm-dash can download docsets from dash servers and use them without the need of Dash whatsoever.

https://github.com/nathankot/counsel-dash .


This was my first thought, as well. I use Dash several times a day. It has been indispensable for me.

There are a few main things that will probably keep me on Dash, for the time being. In no particular order:

1. Global shortcut - Being able to quickly show-search-hide from anywhere is extremely useful for me. I can quickly refresh myself on the syntax of an uncommon function. The faster I can do that, the less likely I am to break my flow.

2. Support for random/obscure projects - On top of community-added docs, Dash lets you point it at any random GitHub project and it will pull down the README. This has come in handy plenty of times for me when using small tools and components. Sure, it's not as nice as full documentation, but it's nice having that README searchable in the same place and offline (see reason #1).

3. Docsets - Dash lets you define groups of frameworks (etc.) and name them. You can even specify which version of a framework to use in the docset. This allows me to tailor my results to a particular stack, depending on which project I'm currently working on.

EDIT: I should read :)

The Dash author engaged in unethical practices and then attacked Apple when they closed his account.


This a most irresponsible post. The situation was somewhat complex and not easy for outsiders to parse out of the crossfire. You state one side's position as fact, quoting only one highly tendentious Gruberish Apple protagonist in support. Is this how fairly you'd like to be treated in public if you got into a spat with a major company? Please have a little thought for the welfare of others before you type.

In any case, it's water long under the bridge now, and Dash is an excellent app used my many developers (including within Apple). Trying to poison the well is in pretty bad taste.

Doesn't seem like a particularly complex case to me.

Facts not up for debate: the developer of Dash enrolled two accounts in the ADP with the same credit card, and these accounts shared at least one test device. One of these accounts participated in obvious fraudulent activity.

Unfortunately, nobody is around to corroborate Bogdan's side of the story. As far as we know, Bogdan made up his supposed relative/friend (ala "I didn't send that embarrassing text to my crush - it was my asshole friend!") to escape blame. And even if his side of the story is true, how is he not partially culpable for the fraud? By enrolling an account with his credit card and giving it to someone else, he enabled them to commit fraud on the App Store. If I buy a gun and give it to my brother and he shoots someone, am I not partially responsible for that outcome?

It's not quite damning enough for me to not use Dash, but it doesn't exactly give me faith in Dash's developer either.

What? That link doesn't have any proof that "the Dash author has engaged in unethical practices". Neither any other link I could find about the whole controversy. Actually, everyone seems to be saying things are complicated, what seemed to be true actually wasn't, it's hard to take sides, etc:


Gruber makes it pretty clear in your link that the author of Dash engaged in unethical practices, just not with the Dash app (or the account used to publish Dash). Heck, publishing the phone call alone is unethical, regardless of any of the alleged app review behavior.

I think you or the mods should remove your comments because they are potentially defamatory. There is indeed no evidence that the Dash author himself was responsible, he says it was a family member.

“Almost 1,000 fraudulent reviews were detected across two accounts and 25 apps for this developer so we removed their apps and accounts from the App Store,” Apple spokesperson, Tom Neumayr

They’re allegations, sure. I said that in my second comment. But Tom didn’t hedge his words there.

Well, what is clear to me is that another account, not Dash's author's, engaged in unethical practices. The author said it was a family member, but I can't verify that, so it is still unclear.

Publishing the phone call was kinda dumb, yeah, but it's still pretty far from "engaging in unethical practices". It seems more like a guy feeling cornered, acting under pressure and making bad decisions.

Dash is back on the iOS app store[1], so they probably worked out the issue

[1] https://blog.kapeli.com/dash-for-ios-back-on-the-app-store

I found it slow. Also, just remembering this now but I came in to work one morning only to be questioned as to why I was downloading GBs of data while I was out of the office. I guess Dash was refreshing the local copy of all the docs every night. Uninstalled it right away.

Slow? It's insanely fast on my 6 year old desktop and doesn't download "gigs" of docs every night...also, what kind of workplace monitors individuals net usage then gets upset at them for downloading "gigs" when their job is to program.

"Shift+K" does the same in vim. However, it looks for a manpage matching the word under the cursor, so it won't help you unless you're doing C or Perl.

`K` in vim uses the program defined in `keywordprg` which is `man` by default, but can be set to whatever you want according to the file type.

Remapping `K` to devdocs.vim is quite handy.


I use dasht[1] and vim-dasht[2] but that looks nice.



Yes, but this is free and more complex.

More complex or more complete?

But you pay for Dash subscription, this one seems to be free.

And open-source :) (https://github.com/Thibaut/devdocs)

Disclaimer: I'm the maintainer of DevDocs

Well then let me thank and congratulate you for your efforts in building this.

As a long-time dash user in the past, devdocs felt like home and just works nicely and without any unnecessary features.

Is Elm support planned?

For `is * planned` refer to https://trello.com/b/6BmTulfx/devdocs-documentation. (Elm is in "To Do".)

You pay for the software but it’s not a subscription. Just to clarify.

For what it’s worth on Linux the open source alternative is Zeal


And dasht for the terminal


Subscription? Dash is not subscription based.

I've used this off and on for a while, but the hardest thing for me is breaking the google habbit (or ddg as often as not in my case) and actually performing the search on that site.

I can !dd with duckduckgo to get to devdocs, but I wish there was some natural language processing that knew I wanted to look up a cpp/rust what have you term and send me there.

Additionally, C# doesn't seem to be included, which is a big bummer.

I don't think there's any reason to use this for Rust, honestly. You'll want to unify your dependencies using `cargo doc` and then just browse std documentation on https://doc.rust-lang.org/std/ (and other stuff on docs.rs)

Rust has spoiled me so bad with cargo doc. Even Python feels like a fossil when I can generate a linked doctree in my target directory and use it offline / on demand and generate them immediately and effortlessly if I ever need to fork / patch / use git / etc anything.

According to the docs (http://devdocs.io/help#search) you can actually integrate DevDocs into your search habits by using the browser bar search (on Google Chrome, at least).

Go to search bar -> type in 'devdocs' -> hit tab ("Search DevDocs"). You can then search directly.

It's pretty awesome.

If you use duckduckgo, adding !dd to your search does the same thing.

This sounds like a job for a browser extension.

I really like this service and really wanted to add some more docs I often use to it. Unfortunately I discovered why some interesting ones can be missing. For example AWS can't be included, because Amazon forbids third party distribution of their documentation pages. It's really disappointing when companies limit the usability of what they produce that way.

Where's Jeff Barr when you need him?

How summon

For PHP it's missing the comments at the bottom, which are often essential to understand certain strange behaviours.

I almost always end up scrolling straight to that section in the PHP docs when looking for help. Such is PHP.

Ditto, and I don't even mean it in a bad sense. After you get used to it, this really isn't that bad, this format seems to work for PHP. I'd even say, that because of that PHP docs turn out to be quite better than "clean and nicely written" ones for other platforms.

Worst is that some information is only provided in the comments and not in the documentation itself.

Due to some very annoying behaviour of gratipay (the donation service devdocs uses) I have donated over $100 to them last year of the course of a few months. Not what I wanted to donate, but then again there aren't many websites that I use more often in my day to day work. So I am not too bummed about it.

Great work guys!

Thanks! Your donation is very much appreciated.

Don't feel like you have to donate, though. The app is cheap to host (one of the benefits of an offline-enabled, no-accounts-required, optimized-to-the-max web app is that the backend doesn't do much :P), and I'm lucky that MaxCDN & others are providing free service to the app.

What keeps me going is seeing the impact that DevDocs is having (people using and liking it). So the best way to "give back" is to spread the word, send a thank you note, and contribute (one thing in particular that would be great to see is more/better extensions & integrations with code editors).

(I'm the creator/maintainer of DevDocs)

Can you elaborate a bit about your implementation? I'd love to learn more about the techniques you have used.

I elaborated a little bit in the past here: https://groups.google.com/forum/#!topic/devdocs/T9_FsjB1kHw

I've been thinking about writing blog posts on DevDocs's internals and the techniques it uses for a while, but it's hard to find the time, especially when I already spend a lot of my spare time maintaining/updating the app.

That said, feel free to open a GitHub issue to remind me to write blog posts at some point (if there is interest), or if you have specific questions.

I was going to suggest -- a VS Code Extension would be cool.

edit: nvm. I found it: https://marketplace.visualstudio.com/items?itemName=akfish.v...

Could you specify more on the front-end code on this project, did you hand-roll your own javascript front-end or did you use a framework? The whole thing is rather impressive and I'm looking to do something similar to your sidebar with my own project. Is all of your open source code open to be re-used/modified?

Thanks! The front-end doesn't use any JavaScript framework. See the code here: https://github.com/Thibaut/devdocs.

All of the code is licensed under MPL 2.0 [1], so you're welcome to reuse/modify it in your own projects.

[1]: https://github.com/Thibaut/devdocs/blob/master/LICENSE

One of the greatest in-kind sponsorships MaxCDN did for sure. Really happy to see you're still at it after all these years Thibaut!

It happened thanks to you :) And you/MaxCDN also played a part in getting the app open-sourced sooner rather than later.

Happy our paths crossed again here!

Is there a way to request Elm library docs be included?

Nevermind. I just saw https://github.com/Thibaut/devdocs/blob/master/CONTRIBUTING....

You can submit pull requests to add new docs if you're so motivated.

Interesting, I don't use the daily, but when I need, I REALLY need it. How come you use it that often is it your main go to? My day to day is mainly googling as a portal to stackoverflow for specific doubts.

It is my goto yes. I use it anywhere from checking how some method or function is named again to finding out what I can do with certain types of objects or classes. The search is really practical for me there. I also peek into the source code of functions etc. it is the only pinned tab I have usually.

This was first posted 1500 days ago - https://news.ycombinator.com/from?site=devdocs.io

It seems that this time it got more traction. Good luck with your project!

DevDocs is old, roughly 4 years or so; I know it from the beginning.

That being said, not every HackerNews reader is aware of every single project in the wild, so re-posting the link from time to time is a good idea, not only to let more people know about it but also to increase the contributions and donations which may be forgotten after the popularity fades away. I can see this re-posted many more times in the future.

Remember that every year new Computer Science students graduate and and they are going to be the ones saying "First time I see this project" next year. So let the re-posts flow no matter what.

For some reason, the theme/colors were a bit of a shock to my eyes. I can't explain why...maybe because it was my first time seeing it.

Compare these two pages:



I think the blue "sections" on devdocs are really <h3> so they are not sections at all and it throws me off.

Devdocs has an option for dark thene I use

Oh my god lol, I can't believe I never saw this. Thank you.

Agreed. The thin and bright text is hard to read.

Modify and submit a PR?

Surprised that R isn't on there since it is a top 10 language. The ecosystem though is pretty huge and R Base without Hadley Wickham's tidyverse isn't very useful for me.

Also would love to see Racket notes.

Not as pretty as DevDocs, but https://rdrr.io covers the R ecosystem.

(I'm the author.)

Been using DevDocs as my documentation reference for a couple years now, has everything I need with no extra fluff, would recommend.

This was my first time seeing DevDocs, it's awesome! I've used other all in one doc solutions but I always end up going back to google because they slow down once I add all the languages and packages I use.

I love everything about the design of this page. Settings, search, etc. You have great taste.

I have frequently used devdocs.io on long flights, love the offline mode.

I've used Zeal for Linux and Windows: https://zealdocs.org

For offline docs. I prefer a native UX. I've found it doesn't always work well to access an offline capable page from my browser without internet.

This looks awesome - is there a way to get an offline version of this?

DevDocs works offline — http://devdocs.io/offline — on mobile, and can be installed on Chrome.

There is an Electron app here — https://github.com/egoist/devdocs-desktop

There's also https://github.com/ragingwind/devdogs. Same idea.

Yes, look in DevDocs' settings - you can download for offline usage.

That's a really cool offline experience. Works almost too well - I would have never expected to be able to simply load the site via the url when offline.

Looks nice, but seems to be mostly focused on web dev. No Scala, Java, .NET/C#/F#/Powershell, Win32, Azure... Would be great to have JVM and/or Msft ecosystem in there.

The webapp includes a copy of the documentation for Rust, Go, Nim, Lua, Julia, Haxe, Tensorflow, Numpy, among many other technologies. If you consider these "web dev" then label me crazy because I see these as system programming languages and/or data science libraries more than anything else. The lack of Scala, C#, etc is due to the complexity of the documentation which cannot be downloaded so easily as the others, or the license of the documentation itself. Feel free to contribute through their repository [1]

Java is under the JDK section by the way.

[1] https://github.com/Thibaut/devdocs

I was curious to see how it was able to run so snappy. It actually feels like the help section for a native app. I found the source code: https://github.com/Thibaut/devdocs It's not really using a client side framework and runs Sinatra on the back end. I will definitely dig more into how it all works.

Thanks for sharing!!

Finally, they added java (seems like the openjdk has all the same stuff as the oracle's Java). That was the only thing stopping me from using it.

Awesome just wish it supported offline mode using something like:


EDIT: NM it already supports offline mode. Nice work.

I very much like DevDocs. But it looks like Python and Go documentation are incomplete. In Dash, the full documentation is available: the library reference of course, but also the language reference and other things. In DevDocs, I only see the library reference. Am I missing something?

For the record, here is DevDocs answer on Twitter:

There were technical reasons in the past [1] but not anymore. Should be able to add those. Feel free to open GitHub issues so I don't forget.

[1] Non API entries are harder to index (need unique names); for a while I wanted to keep the app focused to API docs; and the scraping framework used to only support one root URL per doc (most docs host guides/manual on a different domain than API docs).


Did you Enable it?

Yes, I enabled Python and Go (and other things I use), but only the standard library is covered. The language reference is not available. According to the README on GitHub, it looks like it's a design choice to focus on APIs...

Nice.. I didn't know about this.

Some people here seem to recommend it and they have been using it a lot apparently. Where did you learn about it? Is there a community our there I am missing out on?

DevDocs is old, roughly 4 years or so; I know it from the beginning.

That being said, not every HackerNews reader is aware of every single project in the wild, so re-posting the link from time to time is a good idea, not only to let more people know about it but also to increase the contributions and donations which may be forgotten after the popularity fades away. I can see this re-posted many more times in the future.

Remember that every year new Computer Science students graduate and and they are going to be the ones saying "First time I see this project" next year. So let the re-posts flow no matter what.

To answer your question, there is no extracurricular community, it's just people like you and me who one day know the project, and next year decide to post it again so the new university graduates can learn about it, that's it.

I didn't know about this either, but I guess people find these things by visiting sites like HackerNews, just like us!

I learned about it from HN during the legal issues with Dash a while back.

DevDocs is great. I use it all the time.

If only it had the Elm docs as well :)

It also packs well as a fluid app if you'd prefer a standalone (and fluid doesn't seem to purge the cache and lose offline mode like your browser might)

Kudo to devdoc.io I've been using this app since I first learnt of it sometime ago, and have seen most of the features impleted. <3

what is the technology stack used to make this site?

Nginx 1.10.3 via Cloudflare.

Source: the WhatRuns browser addin: https://www.whatruns.com/?source=plugin

Site doesn't load in Firefox Focus on Android.

DevDocs is running inside an Android WebView. Some features may not work properly.

Having played around with it for a few minutes, this is really cool! The live search is particularly great. Kudos!

I'd use this if they ever add testing-related docs like JMeter, gatling, taurus, cucumber, selenium, etc.

It would be nice to have R on here !

Isn't some R documentation only accessible via pdf files? I couldn't provide a clear example, but months ago when I used R intensively I stumbled upon very extensible documentation via PDF only

and oddly enough: XML and XML schema languages … a strange omission

Mind to share the stack behind?

And is it indexing all popular tools into one place and providing a search box?

It appears [0] to be Ruby.

[0]: https://github.com/Thibaut/devdocs

This looks great, I may be able to remove a number of bookmarked doc sites.

I really wish I could integrate this into macOS' spotlight

Spoke too soon. There is a way via Flashlight --> https://github.com/w0lfschild/Flashlight But there is a problem with the dependency mySIMBL and High Sierra --> https://github.com/w0lfschild/mySIMBL/issues/62

They also have a chrome extension. Devdocs.io is awesome.

Tried this against some Rails and Ruby stuff..... Wow.

I'd use this if you added the kubernetes docs

It's open source and very welcoming to new documentation additions!

Take a look at [0] and see if it would be worth the trouble of adding it yourself or at least starting the process.

[0] https://github.com/Thibaut/devdocs/blob/master/CONTRIBUTING....

Thank you everyone who helps out on this project!

Add elm docs and I'll come along.

The Elm docs unfortunately don't work without JavaScript enabled, which makes them difficult to scrape / add to DevDocs.

Elm package documentation is just JSON. Very easy to scrape.

Here's a list of all published Elm modules pointing to their respective packages: https://github.com/fiatjaf/module-linker/tree/backends/data/...

Scraped with this simple fish script: https://github.com/fiatjaf/module-linker/blob/backends/data/...

Too bad they don't do syscalls.

This is fantastic!

No Scala docs?

good form. this is excellent.

Thank you!

Deja vu.

deja vu

no java?

http://devdocs.io/openjdk~8/ (Java SE is proprietary; OpenJDK is open-source)

Look under openjdk

and no Scala.

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