How often do you go through the following process when coding?
- Need a [insert programming language here] function definition and examples
- Google for said function
- Click first result which is either w3schools if you’re out of luck, or the online manual of the language you’re dealing with.
- Realize you need another function demoed and explained
- Go back to Google instead of using the search on the language’s website because it’s inexplicably awful and slower than actually reloading the tab after a new Google search
- Rinse and repeat
As a developer who deals in web technologies to a great extent, I’ve encountered this quite a lot. Simply finding the technical definition of a function or statement has become far more difficult than it ever should have been – not in terms of complexity, but in terms of time wasted. Wouldn’t it be great if we could have all our development docs in one place, in a beautiful, offline-enabled interface with a super fast fuzzy search, for any language? Enter devdocs.io.
What is it?
DevDocs is a web app aimed at providing you with quick access to the reference manual of just about every front-end language and library. It lists all the APIs of a given selected language and their official documentation in an easily browsable and viewable format, without the needless menus and tacky attempted styling that official sites like php.net try to pull off.
What does it do?
It aggregates the reference manuals of all popular languages (provided they have their manuals in an easily accessible and machine-consumable format). It provides you with a slick and fast interface for fuzzy searching the documentation of all selected languages, in order to find the information you need in as few key presses as possible. What’s fuzzy searching, you may be wondering? Fuzzy searching is searching for a string that approximately (not exactly) matches what you entered. It’s what editors like Sublime Text and LightTable use for their command search windows – entering something like “sa” will give you “Save As..”, because the input matches the initials of the command. Entering “delte” will offer results containing “delta” and “delete” and entering “bgcp” will even give you “background clip”. This type of search allows for super-fast fine tuning of results, and since they’re real-time, you can mix and match on-the-spot.
It’s important to note that the contents fetched are official-only. This means user submitted entries like comments and samples are ignored.
You can search DevDocs in a specific language scope (for example PHP only) by prefixing your search query with “php” and hitting tab or space (on mobile). This switches search mode to “selected language only”. To exit this mode, simply backspacing out of it does the trick.
Open source and local
DevDocs is open source and encourages the community to contribute in a variety of ways. First off, it’s on GitHub, and invites users to submit issues and improve the code, like any good open source project. Secondly, DevDocs can easily be deployed locally, so you can run or host your own version. Adapting it to, for example, the API of your company’s internal system is a breeze. Last but not least, DevDocs uses Trello to gather user feedback on desired languages. Trello, a very efficient team based task list, supports various boards of information where people can collaborate, discuss and vote for cards (topics). DevDocs uses these cards to collect votes for individual language integration. To participate, see here.
DevDocs is maintained and updated regularly, and provides various means of keeping up to date with the changes:
- the site itself will spawn a popup with the latest changes if you happen to leave it open through the update date
- there is a newsletter
- there is a Twitter account
- there is even a mailing list
- there is an up to date changelog
All of these seem to be drawing from the same source, so it’s best to subscribe to just one of them.
DevDocs is fully optimized for mobile devices, and highly responsive. It opens in a flash, and works exactly the same on mobile as it does on desktop. It’s built the way websites were always meant to be built – a smooth, fast and identical experience on every device. Thibaut Courouble really did a fantastic job.
As mentioned, the app installs as a plugin for Sublime Text and Brackets – meaning you can search for the API you need right from your editor. More plugins are on the way, most notably JetBrains product plugins. The app is also being ported to a standalone zero-configuration downloadable offline version.
DevDocs can be installed as a search engine in Firefox and Google Chrome, and basically any other browser and app supporting OpenSearch. OpenSearch is a collection of standards allowing a certain resource to identify itself as a search engine.
A variety of keyboard shortcuts are offered too, all intuitive and very useful, providing a truly smooth experience.
If you haven’t heard of DevDocs before reading this article, I fully encourage you to give it a go. The web is in dire need of such highly usable resources, so spread the word and help the community find better solutions to problems they’re dealing with. If you can contribute, DevDocs is on GitTip and supports PayPal donations – but arguably the best way to help out is to just use it, tell others about it and, above all, improve it by contributing to the project on GitHub.
Bruno is a blockchain developer and technical educator at the Web3 Foundation, the foundation that's building the next generation of the free people's internet. He's also a DX person at Diffbot. He runs two newsletters you should subscribe to if you're interested in Web3.0: Dot Leap covers ecosystem and tech development of Web3, and NFT Review covers the evolution of the non-fungible token (digital collectibles) ecosystem inside this emerging new web. His current passion project is RMRK.app.