Share this post on Twitter

Better, Faster Dashboard

Amber Feng on March 15, 2012

We recently rolled out three cool new improvements to Enjoy!


Search has been much improved. One of the most common uses of the Stripe Dashboard is to immediately jump to a particular charge or customer, but doing so used to be fairly slow in a variety of cases.

To address this, we have deployed elasticsearch to make all queries far faster. In addition, we've simplified search semantics. Typeahead results used to differ from full search results; now, we always return the same results in both cases.

Client-side Caching

Until recently, every time you viewed a list of items in the dashboard (for example, the payments or customer lists), we fetched the latest data from the API. This round-trip led to a noticeable delay in rendering the page each time.

Within a session, though, it's usually the case that the list is the same as the last time you viewed it. To take advantage of that, we now use HTML5's LocalStorage (technically sessionStorage) to present the list immediately, without any latency, while fetching the most up-to-date data in the background. If there's new data to be displayed, you'll see a small notification at the top of the list.


Figuring out what’s going wrong in a complex stack can be pretty annoying. Building applications with Stripe involves sometimes subtle communication between your servers, your users' browsers, and Stripe, and debugging usually involves too much tail(1) and console.log.

It becomes even more complicated when you try to figure out at a later stage why something happened. For example, you may see a refunded charge and want to know how, why, or when it happened. To systematically solve issues like this, we decided to expose the raw HTTP requests sent to Stripe. Now, every Stripe API operation, including requests made using the dashboard itself, are available for inspection.

You can see all your requests in the new "Logs" section in the sidebar. Additionally, pages for individual objects (payments, customers, and so on) now show the HTTP requests pertaining to that particular object.

We expect that this will make development and debugging much easier, and we're really excited to launch it.