Dash 7: Now Available

TL;DR: Download Dash 7 for macOS and try it out!

Dash 7 is the latest version of Dash and comes with a general-purpose docset generator and lots of new features.

Dash 7 costs only $1.25 / month (billed yearly). Subscribe here.

There’s no need to worry if you purchased Dash recently, existing Dash licenses are valid in Dash 7 for 2 years since the date of purchase of the old license. Double click your license to open in Finder to add it to Dash 7.

Docset Generator and Website Copier

Dash 7 includes a general-purpose docset generator and website copier in Preferences > Downloads > Docset Generator.

You can generate docsets by copying any website for offline use, or from local HTML files.

The Website Copier is based on WKWebView and is able to scrape JavaScript-heavy websites.

You can generate docsets from the command-line as well, by exporting the docset config created in Dash.

DocC Archives and Swift Package Repository

Dash 7 is able to open DocC Archives and can generate DocC Archives for any Swift Package in Preferences > Downloads > Swift Docsets. Swift package search and discovery is powered by swiftpackageindex.com.

New Fuzzy Search Engine

Dash 7 includes a completely rewritten fuzzy search engine, which makes it easier to find the page you need, fast.

Streamlined Search Experience


  • Dash 7 will now search disabled docsets when you start your search query with the docset name or keyword (e.g. searching for “css display” will search for “display” in the CSS docset even when the CSS docset is disabled)
  • Docsets now appear as search results, so you can search for “css” if you want to easily activate or browse the CSS docset
  • Special characters and diacritics are normalized within the search index, so it’s easier to search for entries that contain these characters
  • URLs typed in the search field are detected and Dash offers to open them
  • Full-text search results will now perform an in-page search when you open them

Navigate Back/Forward Using Two-Finger Swipes

You can now navigate between pages using two-finger swipe gestures.

Other Changes


  • Searching the table of contents of a page using CMD+F now supports fuzzy queries
  • New Rust Docsets Repo in Preferences > Downloads, based on docs.rs
  • Tagged custom web searches. You can choose to include the docset keyword when setting up web searches, in Preferences > Web Search
  • Full-text search can now be enabled for all docsets by default, in Preferences > Docsets > Settings
  • You can now right-click links to open them in a new tab

New Pricing Model

I’ve decided to switch Dash to a subscription pricing model, as the paid upgrade pricing model is no longer a good fit.

Dash’s highest development priority is docset updates and supporting new docsets, but the paid upgrade pricing model focuses on new features. The subscription pricing model will allow me to focus more on Dash’s #1 feature: its docsets.

Download Dash 7

Dash 7 costs only $1.25 / month (billed yearly), and it’s free to download and try out. If you encounter any issues or need any help, contact me.

Dash 6: Now Available

TL;DR: Download Dash 6 for macOS and try it out!

Dash 6 is the latest version of Dash and comes with a new interface design and lots of new features.

Dash 6 is a paid upgrade ($19.99 + VAT). To upgrade, download Dash 6 and add your existing Dash license in Preferences > Purchase and you’ll be prompted to upgrade.

Anyone that purchased Dash after the 15th of November 2020 gets to upgrade for free.

New Interface


  • The interface was updated to feel more native, especially in macOS Big Sur
  • The tab bar has been completely redesigned to use a new full-width style and also hide when only one tab is open
  • New button icons in the main window and preferences

Full-text Search Support

The most requested feature is here. I think I finally found a way to make full-text search fit well within Dash, alongside the results coming from the docset index.

Some highlights:

  • Full-text search is opt-in. You have to manually enable it for the docsets you want, by opening the docsets in the docset browser and choosing “Enable full-text search”
    • Note: some docsets do not support full-text search. If you’d like to enable full-text search in one of these docsets, please contact me with some sample search queries where full-text search would help
    • Docset authors can choose to have full-text search enabled by default for their docsets using the DashDocSetDefaultFTSEnabled key in Info.plist
  • Search time does not increase if you have full-text search enabled, but the docset’s disk usage increases by 50% on average
  • Full-text search results are filtered against the main index results, so you won’t get duplicate results or have your search cluttered by irrelevant results

Search Filters

Press the button shown at the top right of search results or CTRL+F to filter your search results further, by type or docset.

Apple Silicon Support

Supporting Apple Silicon required pressing one checkbox in Xcode 12 and then spend weeks fixing all the interface issues caused by linking against the Big Sur SDK.

Other Changes


  • You can now choose if you want the Light or Dark appearance, separate from your system’s settings
  • The Go docset repo was updated to use pkg.go.dev and will now also grab the docs for all subpackages

Download Dash 6

Dash 6 is a paid upgrade ($19.99 + VAT), but it’s free to download and try out. If you encounter any issues or need any help, contact me.

Goodbye, Dash for iOS

I’ve decided to discontinue Dash for iOS, as maintaining it is no longer sustainable.

Every year, Apple releases a new version of iOS, which requires updating Dash to support the new OS and work around any new bugs. Dash for iOS worked great on iOS 12, but is an unusable mess on iOS 13 and will only get worse.

Dash for iOS also uses UIWebView extensively, which won’t be accepted on the App Store starting with December 2020. Migrating to WKWebView would be more work than it’s worth.

Note: this does not affect the future of Dash for macOS in any way.

Dash 5: Now Available

TL;DR: Download Dash 5 for macOS and try it out!

Dash 5 is the latest version of Dash and includes a lot of improvements and a completely new, streamlined search interface.

Dash 5 is a paid upgrade ($19.99 + VAT). To upgrade, download Dash 5 and add your existing Dash license in Preferences > Purchase and you’ll be prompted to upgrade.

Anyone that purchased Dash after the 1st of September 2019 gets to upgrade for free.

What’s New


  • New Search and Navigation Interface – The search and navigation interface was completely redesigned to be more intuitive and fast
  • New Search Result Sorting and Nesting – Search result sorting and nesting were completely rethought and redone. The order of docsets in Preferences > Docsets or in your search profile will now matter a lot more, while also keeping your results uncluttered
  • New Browser Engine – Dash 5 uses WKWebView, the latest browser engine from Apple. Supporting WKWebView required rewriting a huge part of Dash, some of which to JavaScript, so please make sure to report any bugs you might encounter, no matter how small
  • Improved Dark Mode – The dark documentation style will now preserve colors instead of inverting them
  • New Snippet Navigation – Snippets can now be bookmarked and are part of the navigation history. Don’t like snippets? You can now completely disable them
  • New Support System – The in-app Contact Support option is now powered by replies.io, which makes it easier to improve your support request with screenshots, videos and logs, significantly reducing the time needed for your issue to be resolved
  • Lots of Small Improvements – New in-page find interface and result highlighting, new status bar, faster search and a lot more are waiting for you in Dash 5

Download Dash 5

Dash 5 is a paid upgrade ($19.99 + VAT), but it’s free to download and try out. If you encounter any issues or need any help, contact me.

Dash, Xcode 11 and macOS Catalina

In case you like living on the edge, Dash 4 seems to work great with the macOS Catalina beta.

The Apple API Reference docset was updated to work with the latest docs from the Xcode 11 beta.

To use the Xcode 11 beta docs, make sure xcode-select -p (in Terminal) points to the location where you have Xcode 11 installed.

Use xcode-select -s <path-to-xcode> (in Terminal) to change the active version of Xcode and then check for updates in Dash’s Preferences > Downloads to make sure Dash picks up the change.

The Swift docset in Dash is based on swiftdoc.org, which has not been updated to Swift 5 yet. As soon as it’s updated, the docset will also be updated. In the meantime, you can get the Swift 5 docs by using the Apple API Reference docset (mentioned above) with Xcode 11.

Please let me know if you encounter any issues or if you have any special requests.

Dash’s Year in Review: 2017

I’m happy to report Dash has had its best year to date. Revenue in 2017 was 30% higher than Dash’s previous best year, 2015.


Revenue Sources

Users from 128 countries have purchased Dash. The top regions and countries are shown below:

Bandwidth Usage

Dash used 520 TB of bandwidth in 2017, distributed over 7 servers:

Server Costs

Server costs were $4,835 in 2017.

Docsets

Dash currently has 202 docsets maintained by me, 316 docsets maintained by users and 112 cheat sheets. All these docsets take up 112 GB of disk space.

The top docsets are shown below:

Conclusion

It’s been an amazing year which will be hard to beat in the future. I’m very happy and grateful with how Dash is doing and for the community that’s growing around it. A lot of things are in store, stay tuned.

Happy New Year!

Dash for iOS: Back on the App Store

TL;DR: Dash for iOS is back on the App Store and it’s completely free.

Ever since I’ve open-sourced Dash for iOS there have been a lot of requests for Dash to get back on the App Store, as the process to install it from source isn’t exactly user-friendly.

Quite a few “developers” have even added it to the App Store themselves, violating the GNU GPL license in the process. Apple has been very responsive in removing these apps, but the developers kept adding it back in different shapes and forms and I got tired to fill the same copyright claim forms over and over.

I’ve made a personal developer account which Apple accepted and the review for Dash for iOS went through without any issues. I hope this will somewhat stave off the pirated copies of Dash from appearing on the App Store. We’ll see.

The macOS version of Dash will continue to be sold exclusively on kapeli.com.

Dash 4: Now Available!

TL;DR: Download Dash 4 for macOS and try it out!

Dash 4 is the latest and greatest Dash release. It incorporates the most popular feature requests in a new streamlined interface. Enjoy!

Dash 4 is a paid upgrade ($14.99) for existing Dash users. To upgrade, download Dash 4 and add your Dash 2 or Dash 3 license in Preferences > Purchase and you’ll be prompted to upgrade.

Anyone that purchased Dash after the 1st of December 2016 gets to upgrade for free.

What’s New


  • New Interface – Clean, modern, with a focus on what matters most: the docs
  • New Dark Mode – Night owls, rejoice! The entire Dash interface can now be turned dark
  • Web Searches – You can now add/edit fallback web searches (e.g. Google or Stack Overflow) in Preferences
  • Docset Playgrounds – Most docsets now show “Play” buttons which let you quickly test snippets of code
  • Search Using Selected Text – This feature has been completely remade and is now more reliable, even in apps that don’t support system services. Set a hotkey for it in Preferences > General
  • Tab Improvements – You can now reopen the last closed tab, duplicate tabs and close all tabs except for the selected one

Lots of other improvements:

  • You can now easily manage docsets directly from the docset browser, using drag and drop, right click and/or the add button
  • You can now manage bookmarks from the top menu bar
  • Searching in Preferences > Downloads is now synchronised across all docset sources
  • You can now copy the external URL of documentation pages for easier sharing
  • The Add button in Preferences > Docsets now offers the option to download docsets
  • Installing a docset will now also add it to your currently active search profile (Note: can be disabled in Preferences > Docsets > Settings)
  • You can now manage the default profile settings from the search profiles popover
  • Dash’s web browser is now a bit smarter

Download Dash 4

Dash 4 is a paid upgrade ($14.99), but it’s free to download and try out. If you encounter any issues or need any help, contact me.

100 Days Without the App Store

A lot of users have expressed concerns about the future of Dash after Apple removed it from the App Store. This post is meant to give some insight into how Dash is doing exactly, as well as some interesting tidbits.

Revenue in 2016

All of Dash’s App Store revenue has migrated to direct sales, with a slight increase.

The downhill from Q1 to Q3 is due to saturation of the Dash 3 paid upgrade. I haven’t had any sales or promotions for the entirety of 2016.

Dash for iOS was never a significant part of my revenue and like most iOS apps it was never sustainable. I should have open-sourced it a long time ago, as it now brings in more revenue by promoting Dash for macOS.

Users

Most of the App Store users of Dash 3 have migrated their license to the direct version. I was able to use the in-app notification mechanism I had to let them know about what’s going on so that they don’t get cut off from the app they paid for.

Unfortunately I have no data on what happened to the App Store users of Dash 2 and I have no way of notifying them.

Interesting Tidbits


  • Dash for iOS returned to the App Store just a few days after I open-sourced it, thanks to He Tiancong and Jie Wang. This is despite the fact that I specifically chose a license that’s incompatible with the App Store. I highly recommend avoiding Dash on the iOS App Store, as I do not know what modifications they have made to my code.
    • Later Update: Two more developers just released Dash on the iOS App Store as paid apps: Cuilian Su and Zuogen Zhang.
    • Later Later Update: These apps have now been removed from the App Store.
  • Dash continues to be used by a lot of Apple Engineers and I’ve received great help from them in debugging issues and in supporting the new Xcode 8 documentation format.
  • It feels great to have full control over my business and to avoid App Store installation/updating/purchasing issues.

Conclusion

I was lucky to have setup a direct way of distributing Dash a while ago and as a result I’ve been mostly unaffected by the removal from the App Store.

Dash for iOS 1.6.0

Dash for iOS 1.6.0 is now available.

What’s New


  • Added support for cheat sheets – #22
  • Added support for user contributed docsets – #20
  • Added state restoration support. Thanks to @zhongwuzw for the great work on this – #18
  • Fixed Unity 3D docset bug which caused it to not remember the selected language. Thanks to @hantengx for reporting the issue – #17
  • Fixed a crash in the docset downloader. Thanks to @zhongwuzw for the fix – #16
  • Stopped an evil if() from taking over the world. Thanks to @BalestraPatrick for reporting the issue and @flovilmart for fixing it – #4