#Keywork — Tools for web apps built on Workers

1 messages · Page 1 of 1 (latest)

modest sentinel
#

The Great Computer In The Sky was kind to me during this release. Nearly a week of fixing bugs and improving the experience, and I only contemplated a life without electricity…maybe just two or three times.

Keywork version 3.3.3 includes all sorts of great features, like JSX that actually renders in production runtimes, middleware that is significantly less annoying to use, and a new tools to debug your app when something inevitably breaks.

I want to give a special thanks to the brave developers who have tried to make sense of such a bleeding-edge library. And to all my friends and family who heard me drone on about Keywork-this and _Workers-that…Thank you for every moment of support, kindness, and inspiration.

modest sentinel
modest sentinel
#

Hey everyone! 👋

A new major release of Keywork is now available! 🎉

Version 5 includes all sorts of new goodies like…

🔥 Faster app routing via the native URLPattern API

🔀 Routing middleware for authentication, logging and more

✍️ A new docs site with detailed examples on building your app on Cloudflare Pages

🛠 New guides on writing your app in TypeScript, and how to debug on the V8 runtime on Cloudflare Workers and Deno Deploy

Check it out!

https://keywork.app

Keywork is a batteries-included library for building serverless web apps on Cloudflare Workers, Deno, and Node.JS

strange delta
#

Seems cool. Will check it out soon.

modest sentinel
#

@naive lake you've caught me in the middle of a deploy lol

naive lake
modest sentinel
#

ty ty

#

it's honestly been A LOT of work

#

I should have the demo app updated to the latest 5.1 shortly. What are you building?

naive lake
#

nothing in keywork yet, but curious about how many batteries are included, and wether that could make life easier vs hono

modest sentinel
#

lol

#

Hono is a great project. I think their direction of using middleware for modules is smart. Personally I dislike the indirection that imposes

#

Their router is quite fast but I'm not fan of their response callback e.g. app.get(c => c.text('some body'))

#

Keywork routes are more like ordinary functions. Return whatever you'd like and the router handles it. If you're coming from CF Pages or Express this'll feel familiar:

app.get('/', () => "hi there")
app.get('/', () => <div>JSX is nice too!</div>)
#

Hey everyone! Keywork is a batteries-included, library for building web apps on Cloudflare Workers, Deno, and Node.JS.

The latest release has everything you need to build your app in a V8 Isolate, including routing, React SSR and hydration, asset caching, error handling, and all the typical "junk drawer" stuff you usually have to code to run your existing web app outside of Node.

Check it out and let me know what you build! 😁

https://keywork.app/

Keywork is a batteries-included library for building serverless web apps on Cloudflare Workers, Deno, and Node.JS

#

Keywork — Tools for web apps built on Workers

gloomy sky
#

This looks cool, will have to play around with it

#

What is the goal of this lib exactly? Is the goal to build like an API or to build a site with SSR?

I'm a little lost, it seems like a site with SSR but the routing makes it seem more API wise. I haven't read much yet so maybe it's just due to that

modest sentinel
#

@gloomy sky thanks for the kind words. The docs are growing every day but there’s room to improve on the project examples.

There isn’t a strict distinction between route handlers that send either data or rendered html. The Keywork router really shines when composed across multiple workers.

You might have, for example, a Worker API that returns some data for user created comments. Initially, you would render a few of these comments with React in a Worker, fetching from the comments API in your Worker as a service binding.

But, if the user wants to load more comments, that same comment API endpoint can be called from the browser too.

This is sort of the Keywork dream — Being able to compose your web app with a set of small Workers split up by responsibility.

Does that help?

gleaming pumice
#

it looks promising, but I'm unable to make it work. Perhaps the example broke after the refactoring, or there are specific environment variables that you have already defined elsewhere and are missing in the boilerplate?

#

basically I just get 404 for everything

modest sentinel
modest sentinel
#

@gleaming pumice I wanted to say thanks for trying out the previous release. I was able to repro your issue and have a fix that’ll go out by the end of the day. It stemmed from an illusive instanceof bug introduced with Node.js support.

This next release also includes additional unit tests to prevent that same bug from going out, and some extra debugging goodies to help track down your own app (mis)behaviors 😁

gleaming pumice