Notes from our Internal "Build Convex Components Day"
Today our team is building Convex components using our internal alpha.
Here are some of the projects the team is working on (or has already finished):
* Workflow system (Inngest clone). A nice DSL that uses async/await to express several steps in a long-running workflow. Automatically retries each step as idempotent upon temporary failures.
* Geospatial Indexing. Provides high performance geospatial indexing by using Uber's h3 library + Convex's indexes.
* Action retrier. A packaged up version of Convex's https://github.com/JamesCowling/convex-action-retrier that uses components and a client library for less boilerplate.
* Push notifications component. Integrates with common mobile push notification services.
* Notification tray component. Client + server package for easily batching up messages for a user that they need to acknowledge within a product.
* Payments component. Integrate with Stripe easiliy.
* Presence tracking. Wrap up efficient, high performance presence system into a component.
* Migrations. Feel out moving the various migrations helpers ( https://stack.convex.dev/migrating-data-with-mutations ) into a component
* CDN Component Automatically reflect static assets out of Convex storage into a CDN like cloudflare
* Expiring Storage URLs Wrapper that makes file storage assets only valid for some specified period of time
* Web Crawler Crawls a website in the background and makes the contents available to your Convex app.
* Sharded Counter. A port of @Web Dev Cody 's high-performance counter.
We'll follow up here with more notes & more components as we get them. So far, pretty exciting!
Fire away with any questions.
GitHub
GitHub - JamesCowling/convex-action-retrier: Helper function to ret...
Helper function to retry a Convex action until it succeeds. - JamesCowling/convex-action-retrier
Stateful Migrations using Mutations
Online migrations in Convex using mutations. Including a helper to track migration state!
12 Replies
No questions yet, but love the transparency here, thanks for sharing this!
I'm curious to learn how the web crawler works? Afaik puppeteer or playwright don’t work in Convex. Is it for SSR content only?
Exciting. Let me know if you need alpha / beta testers
Yes, this is super exciting stuff, can't wait for more details! 🤩
that's one @Pasha worked on, he might be able to say more
Sounds great! What is your approach to striking the right balance between abstraction and flexibility? Will you adopt the shadcn "copy-paste" approach with Convex components?
they'll be open source projects on npm (and GitHub)
but nothing is stopping anyone from forking/customizing when their team needs something different--and obviously, if it feels a universal improvement etc, we'll be happy to review PRs and so on
we'd love for one day a lot of the best and most popular components to be built by other teams that don't work at convex, but we'll be putting in a lot of initialization energy for the most common needs out of the gate
Workflow system (Inngest clone). A nice DSL that uses async/await to express several steps in a long-running workflow. Automatically retries each step as idempotent upon temporary failures.ooo nice, this sounds a bit like temporal.io, I have been thinnking about this on convex for a while
yep! in our view systems like temporal and convex will converge
over the next 5-10 years
Hello @jamwt
What is the progress in CDN? I mentioned it in another title. We experience high latency in accessing photos from Turkey even when they do not exceed 1MB in storage. We are eagerly waiting for the CDN layer.
Other developments are also exciting.
Good luck.
Yes, SSR content only for now.
can't wait for Expiring Storage URLs Wrapper that makes file storage assets only valid for some specified period of time