Back to blog

Operator Log #0001

Serverless Beta, Object Browser, New Infrastructure

Operator log

Hope everyone had a great week, we sure did! Starting this week and for the foreseeable future, we will be dropping weekly “Operator Logs” (i.e. change logs) every Friday. These serve two key purposes:

  • Keeps a running log of bug fixes, improvements, and changes to the platform.
  • Gives us a place to share weekly updates regarding product, roadmap, direction, etc.

Serverless Beta

Up until this point, getting setup and using Operand generally was a multi-day, multi-email affair. It involved starting a hefty subscription up-front, and on our side, spinning up dedicated compute resources on a per-customer basis. Although this still remains an option for companies with unique requirements, such as dedicated support & infrastructure, we’ve recently been focusing on making our systems accessible to anyone.

As of today, we’re excited to announce that our “serverless” platform beta is now available — you can sign up here, and start using our systems immediately, for free. Before you get too excited, we want to be very clear that this system is still in very early beta, and we’re frantically rushing to patch up holes and fix bugs. While we don’t recommend using our serverless platform in production just yet, we won’t stop you from doing so :)

As per pricing, we haven’t figured this out yet and frankly, don’t expect to have enough data to make a proper decision here for a while. In the meantime, the plan is to offer a free tier along with a “developer plan”, which gives you (reasonably) unlimited usage for a flat fee per month ($20).

Note: This idea of a reasonably-unlimited usage initial developer plan (while we figure out more sustainable pricing) is flat-out stolen from the early days of Railway. Thanks Jake & team.

Object Browser

The first thing that you’ll see when you login to the dashboard is the “object browser”, which is a thin UI wrapper atop our serverless API. You can think of this almost as a filesystem, or a “dropbox” if you will, with some additional functionality and properties. You can index your first object with the provided CMD+K menu, or by dragging and dropping a file.

We currently support indexing:

  • Text documents
  • Markdown files
  • HTML files
  • Images
  • PDF documents
  • Github repositories (containing markdown files)

As our documentation is limited, feel free to reach out if you have any questions or issues. We’ll do our best to get back to you ASAP.

The sidebar on the object browser allows you to perform a semantic search over the contents of any objects you’ve indexed. This is a convenient way to see results instantly, without needing to write code or use our API directly.

API & Typescript SDK

Our API documentation is located here. Although limited, should provide a reasonably up-to-date view on our REST API. You can get your API key from the dashboard (Settings → API Keys) and should be attached to requests as an Authorization header (no need for Bearer).

We’ve also shipped our TypeScript SDK, which should be a slightly more convenient way to use our API. This code is open source, and located here.

We’re most certainly missing a few API libraries for key languages, let us know which languages you want SDKs for (and maybe what project you’re working on) and we’ll build em’ out for you :)

New Infrastructure

As a company we’re working towards a vision of “[Human]-Computer Symbiosis” (see: paper), which means it’s important our systems are able to operate at the speed of human thought. Generally this means aiming for sub-100ms latency for requests, which allows us to keep up with our users as they’re typing, i.e. firing requests each keystroke.

To accomplish this, we’re now operating in multiple regions throughout the United States, and using a geographic load balancer to route requests to the nearest datacenter. This means our latency is drastically reduced, and the system as a whole is more reliable.

In the coming weeks, we’ll be releasing more information about our new infrastructure, and even take a deep dive into some of the fundamental distributed systems work that went into building it.

Bug Fixes / Improvements

  • Fixed issue when uploading large files (i.e. PDFs) from the object browser.
  • Beefed up our indexing pipeline for image objects, specifically, added OCR and content-recognition models. This means that users can index and search over images, and their content.
  • Switched to higher-performance drives for our production deployment, reduced our latency for database and search operations significantly (hard disks are slow).
  • Added rootUrl parameter for Github repositories, which allows users to associate a URL with each of the documents we index from the repository. For example, if the root url is https://example.com and we index a file in your repository located at blog/hello.md, the resulting object will have a url property of https://example.com/blog/hello.