Commit activity
Last 12 weeks · 1 commit
Community health
2 of 6 standards met
Recent PRs & issues
Hey Vercel team! 👋 I ran a contribution analysis on workflow-examples using GitScope (an open-source git analysis tool) and wanted to share the insights. 📈 Key Stats 🔍 Interesting Patterns 8 contributors — healthy team collaboration High churn per commit (3,204 avg changes) — suggests large feature branches being merged 6-day streak — decent consistency The report includes interactive charts with contribution timelines, author breakdowns, and frequency patterns. 🔧 Try GitScope If this is useful, you can run your own analysis with: Free online tool: https://gitlog-viz.vercel.app Premium templates** (corporate/executive reports): https://gitscope-pro.vercel.app Would love any feedback on the tool! 🙏
Recent fixes
What Bumps the workflow deps in flight-booking-app and nextjs to the published v5.0.0-beta pre-release on npm. : , , : ( and have no published; and are their latest betas from the same release line.) v5 migration finding is now async in v5 (). The flight-booking-app called , which fails the type check and — more importantly — would silently no-op at runtime ( is on a Promise), so the world worker would never start. Fixed by awaiting: This is the only example using the optional async-world bootstrap, so it's the only one affected. Local testing nextjs: ✓; + started a run and both steps (create user, send welcome email) executed via the flow route ✓ flight-booking-app: ✓ (after the instrumentation fix); boots, homepage 200, "Initializing workflow World" logs ✓ (LLM chat path not exercised — no AI Gateway key configured locally) 🤖 Generated with Claude Code
DO NOT MERGE. Throwaway branch for pre-release testing only. Points every / dependency in all 17 examples at the tarballs from (vercel/workflow @ ), and refreshes the lockfiles. This is a 4.3.1 → 5.0.0-beta.40 jump*, so the failures below are v5 migration work, not packaging problems. Build results per project, on this branch vs. : , : is async in v5 Expected v5 breaking change. Both examples called in . Fixed in a32dad3 by awaiting first; both build clean after that, and the flight-booking-app preview deploy goes green. It failed loudly* only because these two examples are TypeScript. On 4.x returned the World synchronously, so the old call was correct there. In plain JavaScript on v5 it stays silent: is on the promise, short-circuits, and the world worker simply never starts. : the standalone bundle layout changed "No build script" hid this one. The example builds with the CLI and wires the generated routes into by hand, which is exactly the surface v5 reshaped. Four changes, in : / are now / , ESM with named exports only. The existing resolved to , so threw. became , an internal module that imports. The route is deleted, not repointed: the flow handler serves step deliveries now. The SWC plugin's was removed and merged into . Passing to the v5 plugin fails the transform outright. and were never declared as dependencies. They resolved through bun's flat ; under pnpm they do not, so failed. Now declared. Verified end to end: run starts, all steps execute, webhook link issued. One false lead worth recording, because it cost time. Before the clean reinstall, was picking up a stale hoisted left behind by the failed bun install, shadowing the tarball's . The v4 plugin emits , a subpath v5 removed, so it looked like the v5 compiler was emitting a dead import. It is not: with the correct plugin, registrations are inlined as IIFEs and there is no such import. before drawing conclusions from a directory that bun has touched. : rollup fails to render a dynamic import in This one looks like an actual SDK/bundler bug rather than a documented breaking change, and it builds fine on 4.3.1. uses too and passes, so it is not nitro alone. The difference in 's is from plus ; both examples set . The reported line/column in is unreliable (the sourcemap lookup itself fails), but the rollup frame is , so the trigger is a dynamic in the compiled quickjs runtime. : not a regression Fails identically on with . It needs at build time. Notes on the packaging itself Bun cannot install these tarballs. The tarballs declare their siblings by URL (), and bun 1.3.4 fails on transitive URL deps with . Reproducible in a clean directory with only as a dependency. So , , and (bun-first in their READMEs) have stale files on this branch. had no pnpm lockfile at all, so one was added to make it installable. Installing needs . pins , whose requires , published 2026-08-10. Any non-zero hides it and resolution fails with . The committed lockfiles cannot be installed from. pnpm writes URL-tarball entries with no field, and pnpm 10.34.5 then refuses to install them: . Not one of the 17 lockfiles here carries integrity for its tarball entries. A fresh checkout needs both and removed before will proceed. Deleting only one of the two is not enough. Vercel's builds are unaffected, since they install without a usable lockfile anyway. Example source was modified only where v5 required it: in and , and + in .
Summary Bumps every example from (npm) to the preview tarballs at https://workflow-tarballs-h3imyuw9g.labs.vercel.dev (built from , published as ). Goal: validate the upcoming SDK release against the existing example projects. This PR also includes: is now async — adapted and to before calling . postgres switched from bun to pnpm — bun cannot resolve transitive HTTP-tarball deps (the tarball depends on etc. via tarball URLs, which bun fails to follow). Validation results Tested install + build + dev + workflow trigger across all 17 examples. ✅ Works end-to-end (workflow triggered, returned 200) hono — clean nitro (project) — vite warnings about dynamic imports, but trigger works tanstack-start — works sveltekit — works in dev (build fails — see below); ignores env var astro — works in dev (build fails — pre-existing missing adapter); ignores env var ffmpeg-processing — server up; workflow not exercised (needs ) vite (project) — server up; build broken (pre-existing tsconfig issue) ❌ Runtime regression — all Next.js 16 examples All Next-based examples crash at runtime: Turbopack can't statically analyze a dynamic inside the new . Verified: , . Likely also affects: , , , , . ❌ Nuxt — RollupError Standalone project works because it pins ; nuxt internally uses Nitro 2.12.9. ❌ Build-only — sveltekit (peer dep) isn't externalized at build. Dev mode works. Pre-existing (not tarball-related) astro — on build vite** — references missing Test plan [ ] CI install across all examples [ ] Manual: kick off on hono, sveltekit, astro, tanstack-start, nitro — should return 200 [ ] Decide whether to land the postgres bun→pnpm switch, or keep bun and pin transitive deps another way [ ] File upstream issues against for: turbopack dynamic-import regression, nuxt rollup external collision, sveltekit resolution 🤖 Generated with Claude Code
Repository: vercel/workflow-examples. Description: Example projects and templates build using Workflow SDK Stars: 560, Forks: 91. Primary language: TypeScript. Languages: TypeScript (96.4%), CSS (3%), JavaScript (0.4%), HTML (0.2%), Svelte (0%). License: MIT. Homepage: https://workflowsdk.dev/ Open PRs: 5, open issues: 4. Last activity: 2w ago. Community health: 50%. Top contributors: pranaygp, adriandlam, VaguelySerious, dancer, ethanniser, vercel[bot], TooTallNate, RhysSullivan, gt-codes, haydenbleasel and others.