8 ms·
Launch HN: Slapdash (YC W19) – A uniform, low-latency interface for cloud apps
Hello HN,
I'm Ivan, one of the founders of Slapdash (https://slapdash.com/ https://slapdash.com/). Slapdash lets you work across all of your cloud apps at desktop speed, sort of like an OS for cloud apps.
We have built a uniform, low-latency data browser (kind of like Finder) as well as a unified command line-like interface (kind of like Spotlight) for the applications you use at work.
When we left our big company jobs, one of the difficult things to part with was the tooling. Companies like Facebook and Stripe build a class of tools internally that unifies all the employees and any collaboration apps, so you can find anyone or anything the company knows. Everything is just a quick search away [0]. It’s quite a useful way to work. Common questions in day-to-day work are easy to answer. What’s the history of this code abstraction? What are my colleagues working on? What’s the story with this customer?
Building such a system today means connecting people's cloud apps, because that's where most of the work is happening today. Even for a small team like us, our work spans Drive, Dropbox, Figma, GitHub, Asana, Notion, Docusign, Slack, Quip, etc.
The first thing we built was a low-latency file system for cloud apps. You connect an application like Drive, or GitHub to Slapdash and we give you a way to search and browse the data in a uniform interface (kind of like Finder). It turns your working world into a database you can easily query.
We modeled our file system as a graph and we built our architecture to match, with a focus on performance. We built an import system, which effectively solves a graph replication problem (translating the structure of the app data to the Slapdash graph and keeping it in sync). We then built a graph database on top of Postgres, added a data access layer with graph semantics, with GraphQL API delivering the data to the client.
Of course, the data we store is encrypted on disk, in-transit and in the data store. Slapdash employees can't see the contents of what we index since everything except the reverse index is encrypted. It’s not zero-access yet, but we’re building in that direction [1].
What we discovered is that by applying optimizations to how we store (sharding & colocation) and retrieve data (batching & coalescing) we could achieve an almost zero-latency [2] experience when browsing application data. As a result, it's much faster to browse Google Drive in Slapdash than in the Drive interface itself.
While the low-latency file system is interesting, we learned that being able to search and navigate is not enough utility for a single individual. People don’t search as much as they think they do, and most have their unique information foraging habits that work well-enough.
However, we wanted Slapdash to be useful for anyone, not just an employee at a big company, so we turned our attention to building a new experience on top of the file system. Our goal was to take a leap in speed with which people can control their computers. We thought this was possible because the difference in UX between desktop and cloud app environments was so acute: the desktop OS is principled, integrated and fast, while cloud apps are latency-laden and confined to crowded browser tabs.
To that end, we built the Command Bar (Command Line + Search Bar). The Command Bar is best experienced as a desktop app, where it’s invoked with a global shortcut. You can quickly search your apps, file tasks, peek at your calendar, create zoom meetings, etc: all with a couple of keystrokes. Of course, you can also write your own commands too.
In practice, it meaningfully cuts down the time you spend controlling the computer. For example, filing a task on GitHub might take 10 seconds of just navigating to the right screen, while you can start writing the task title within 2 seconds by invoking the "Create New GitHub Issue" command with the Command Bar. Things like searching for a customer record, doing a quick spreadsheet calculation and even routine things like opening an existing document are measurably faster. [3]
For teams and companies, Slapdash provides a unified interface to a team’s collective knowledge. This has traditionally been reserved for top technology companies, but we are bringing these advantages to everybody else. And for the individual, we are making the use of disparate cloud apps feel closer to the classic experience of a desktop computer OS - fast, integrated and more productive.
We are still figuring out what apps to support, what commands we should build and how we can open up the platform for others to build on as well. We would love to hear from you on any of those counts and any feedback you might have!
[0] Facebook has something called "intern" and Stripe has an internal product called "Stripe Home".
[1] Content is stored using ECIES (with Secp256k1 curve and AES256 cipher in CTR mode), public-key-encrypted with individual per-user, per-app key pairs.
[2] It's actually not zero latency, of course, but by preloading most things on the hover state we can cut ~50ms of perceived latency (as long as the server response time is under that, which we try to do, it feels instant).
[3] We use the keystroke-level GOMS model to evaluate interface speed, but the speed difference here is large enough that it can be intuited.
Example of filing a task on GitHub: Time controlling computer: open browser, command + L ( focus location bar), type partial URL of repo until it auto-completes, wait for page to load, click on Issues, wait for page to load, click on “New Issue”. Expressing actual intent: typing title of task.
Filing a task with Slapdash: Time controlling computer: Type Command + J, type “Cre gi” to fuzzy match “Create New GitHub Issue” command, hit enter. Expressing actual intent: typing title of task.
- shay_ker 6y agoThis sounds interesting at a high-level, and the octopus is cool, though I'm having trouble understanding how it'd impact my day-to-day. There's a gif on the homepage on how to... add to a "space"? I'm not totally sure what value this would bring to me. Do you have a gif or video showing someone already set up with everything, and then show them solving a few problems? And maybe even a side-by-side with someone trying to do the same thing, without Slapdash?
- orliesaurus 6y agoAlso came here to ask to see more examples of day to day usecases!
- kanevski 6y agoHere is a sampling of ways I use Slapdash daily. * Open files I know exist without touching the browser[0] * Create new issues without touching the browser * See what my colleagues are working on[1] * Launch Mac Apps * Use custom commands to speed up debugging. We have commands like "Find Customer" * Use commands to launch recurring Zoom rooms * Open my VSCode to a specific directory to start coding * Use spaces to organize work I'm currently working on researching In practice, everyone uses the computer differently, so when we get people set up on Slapdash, we do something called an "ergonomic fitting". We learn how use the computer and then we match you up with the features that you would benefit from most. [0] https://twitter.com/iKanevski/status/1261410583951204352 https://twitter.com/iKanevski/status/1261410583951204352 [1] https://headwayapp.co/slapdash-changelog/visual-search-filters-165093 https://headwayapp.co/slapdash-changelog/visual-search-filte...
- hugodutka 6y agoHow do you use Slapdash to control VSCode? I thought that maybe I could create a command that executes a shell script, but it seems a command can only open a url in the browser, right? I can't find any docs for custom commands on your website.