back to index

We accidentally made an AI platform: Jamie Turner


Whisper Transcript | Transcript Only Page

00:00:00.000 | So, originally I had this very fancy title for this talk, Deterministic Workflow, and
00:00:17.880 | I don't know.
00:00:19.320 | But what I really want to title it is we accidentally made an AI platform, and what are we going
00:00:24.960 | to do about it?
00:00:26.840 | This is true mission, my company, is to replace traditional back-end engineering, all the
00:00:33.600 | kind of stuff that we do on back-end engineering, generative AI, by the way, thinks that fate
00:00:36.920 | limiting is one of those things, it's kind of cool.
00:00:40.380 | Sounds ominous, but it is ominous, right?
00:00:43.720 | So we glue things to things, we configure stuff for different systems.
00:00:48.900 | We map data formats constantly, and a lot of times teams are spending a lot of their time,
00:00:53.560 | like half their time on this stuff, it has nothing to do with your product, your users
00:00:57.860 | don't care, and they don't benefit.
00:01:00.320 | So we want to replace all this stuff with a high-level API, kind of functional interface
00:01:04.880 | that feels native to your application, similar to something like Firebase or Parse before it.
00:01:10.780 | So if you were doing this in the 2020s, and it was a design exercise, what would you replace
00:01:15.540 | all that stuff with?
00:01:16.540 | What would that API look like?
00:01:18.120 | Well, for us, we took heavy inspiration from React, and really more generally, the way that
00:01:23.620 | kind of all applications are starting to have this functional reactive data flow relationship
00:01:27.700 | to state.
00:01:28.580 | If you're not familiar with React, here's a little baby example.
00:01:32.580 | You can create a state variable, it has the setter.
00:01:36.080 | And what React really empowers is it makes sure that whenever that state changes, all the places
00:01:41.860 | that depend on it are updated, re-rendered, refreshed.
00:01:46.660 | And so in this case, our app would have "Hi, Olivia," in all caps.
00:01:50.400 | The problem is this paradigm breaks down when the server gets involved, the server doesn't
00:01:54.100 | play the game this way.
00:01:55.100 | You still have to pull the server, you have to invalidate caches, you have to invent your
00:01:58.900 | own push mechanisms.
00:02:00.720 | So Convex fixes that.
00:02:02.220 | So Convex has queries and mutations, like other frameworks you may be familiar with.
00:02:06.960 | But in Convex's case, it completely tracks pervasively data flow and dependencies through
00:02:12.280 | the backend.
00:02:13.280 | And so it extends the reactive paradigm into the backend.
00:02:19.680 | These are these universally subscribable entities that applications can get updates from as soon
00:02:26.000 | as updates are available.
00:02:27.640 | So you might say, "What does this have to do with AI?"
00:02:31.260 | So what it has to do with is that some of the reacting entities are actually server-side
00:02:35.240 | actions.
00:02:36.240 | It's not just the application.
00:02:37.580 | This may be a kind of architecture you've thought through before or played with.
00:02:41.380 | So something like a note-taker, maybe you're doing automatic speech recognition and then
00:02:45.920 | you summarize it and you generate embeddings and find related notes or whatever.
00:02:50.240 | And along the way to these different checkpoints, the application sometimes needs to be brought
00:02:56.140 | Show the summary, show related notes, et cetera.
00:02:59.600 | But in practice, we find that apps are actually a lot more sophisticated than this.
00:03:02.580 | This is a developer named Web Dev Cody who's building an application on Convex that kind
00:03:07.200 | of generates a first project plan given a prompt.
00:03:10.300 | So in this case, he is an app to track recipes.
00:03:14.720 | And when he hits create plan, he's running on Convex, this is sort of like, "Let's get
00:03:19.800 | a bunch of project names.
00:03:21.640 | Let's get first features requests, color palettes, icon ideas."
00:03:26.340 | All of these, as you can imagine, are kind of concurrent chains that are running in the background.
00:03:31.280 | And all of them kind of flow into the application as they have results.
00:03:35.040 | It ends up that Convex is kind of combination of like seamlessly syncing state between these
00:03:39.640 | back-end steps and the application is incredibly useful for a lot of generative AI apps.
00:03:45.460 | And for that reason, post-ChatGPT boom, like 90-plus percent of projects on Convex are generative
00:03:52.120 | And a lot of generative AI startups.
00:03:54.720 | So here's what we're doing about it.
00:03:56.880 | So the first thing we did is we got a lot of feedback from developers that one of those
00:04:01.120 | steps was always vector indexing, or quite often vector indexing.
00:04:04.880 | So the developer said, "This is how you make a schema on Convex.
00:04:07.500 | It's just TypeScript, type completions, all that good stuff."
00:04:10.700 | They said, "Well, you already allow us to add indexes to our fields like this.
00:04:15.200 | Could you allow us to add vector indexes?"
00:04:17.440 | And so we said, "Sure."
00:04:18.440 | We rolled that out late last year, and it's being used very broadly now by projects on Convex.
00:04:24.980 | The second thing we just did, which is just kind of announcing right now, is we started
00:04:29.860 | a Convex for Startups program.
00:04:32.360 | Discount program, kind of access to startup-only forums and events and stuff like that.
00:04:37.920 | And the first batch, we just admitted tons and tons of generative AI companies in it.
00:04:42.360 | So again, this is sort of like the most engaged, excited customers right now.
00:04:49.440 | And then very soon, we're releasing these kind of high-level components.
00:04:52.240 | We have this Convex components framework, which kind of encapsulates whole state machines in
00:04:57.420 | these building blocks.
00:04:58.420 | You can easily drop into your app to have your back-end encompass these sophisticated workflows
00:05:02.800 | that we've co-developed with customers very easily and rapidly.
00:05:07.860 | So anyway, that's us.
00:05:08.860 | If you're building something cool and generative AI, and you want to sort of ship with confidence
00:05:12.500 | and quickly, check us out at Convex.dev.
00:05:14.360 | Thank you.
00:05:15.360 | Thank you.
00:05:16.360 | Thank you.
00:05:16.360 | Thank you.
00:05:16.360 | Thank you.
00:05:16.360 | Thank you.
00:05:16.360 | Thank you.
00:05:17.360 | Thank you.
00:05:18.360 | Thank you.
00:05:18.360 | Thank you.
00:05:18.360 | Thank you.
00:05:19.360 | Thank you.
00:05:20.360 | Thank you.
00:05:20.360 | Thank you.
00:05:21.360 | Thank you.
00:05:22.360 | Thank you.
00:05:22.360 | Thank you.
00:05:23.360 | Thank you.
00:05:24.360 | Thank you.
00:05:24.360 | Thank you.
00:05:25.360 | Thank you.
00:05:26.360 | Thank you.
00:05:26.360 | Thank you.
00:05:27.360 | Thank you.
00:05:28.360 | Thank you.
00:05:29.360 | Thank you.
00:05:30.360 | Thank you.
00:05:31.360 | We'll see you next time.