Header Ads

Launch HN: Slapdash (YC W19) – A uniform, low-latency interface for cloud apps https://ift.tt/3boeKmu

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/ ). 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 & 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 & 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) & 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 & 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 & 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. September 3, 2020 at 04:13PM

No comments

Powered by Blogger.