Skip to content

Standardize resource empty states and expand SDK links - #4096

Open
Alex-Tideman wants to merge 12 commits into
mainfrom
empty-state-consistency
Open

Alex-Tideman wants to merge 12 commits into
mainfrom
empty-state-consistency

Conversation

@Alex-Tideman

@Alex-Tideman Alex-Tideman commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Description & motivation 💭

The Workflows, Standalone Activities, Standalone Nexus Operations, Schedules, Workers, and Batch pages used different empty-state layouts and typography. This change gives all six the Workers-style layout: a centered resource icon, a consistent heading, smaller secondary description text, and horizontal colored SDK links that wrap on narrow screens.

  • Add shared ResourceEmptyState and SdkLinks components and replace the split illustration layouts in Workflows, Standalone Activities, and Standalone Nexus Operations.
  • Standardize titles to “No [resource]”, keeping “No Workers Sending Heartbeats”. Shorten the Standalone Activities and Nexus descriptions, and add descriptions for Schedules and Batch.
  • Use the Schedules and Batch Operations icons. Keep Batch visible on mobile and allow descriptions to wrap inside table cells. Batch has no SDK row.
  • Preserve existing query/error handling, the Cloud content snippet, and worker heartbeat SDK version requirements.

Added SDK links

  • Workflows: add Rust examples alongside the existing Go, Java, TypeScript, Python, .NET, PHP, and Ruby examples.
  • Standalone Activities: add the Rust quickstart alongside the existing Go, Python, Java, .NET, TypeScript, and Ruby guides.
  • Schedules: add Go, Python, TypeScript, .NET, Ruby, Java, PHP, and Rust. Links point to each SDK’s scheduling guide, with Rust pointing to its Schedule API reference.

Design considerations 🎨

Use the existing Io resource icons, SDK colorblock logos, and theme tokens. Descriptions remain smaller than headings, and SDK links keep their icon and label together when wrapping.

CleanShot 2026-10-29 at 10 03 22 AM@2x CleanShot 2026-10-29 at 10 03 34 AM@2x CleanShot 2026-10-29 at 10 06 55 AM@2x CleanShot 2026-10-29 at 10 07 03 AM@2x CleanShot 2026-10-29 at 10 07 10 AM@2x CleanShot 2026-10-29 at 10 07 16 AM@2x CleanShot 2026-10-29 at 10 07 22 AM@2x CleanShot 2026-10-29 at 10 07 27 AM@2x CleanShot 2026-10-29 at 10 07 32 AM@2x CleanShot 2026-10-29 at 10 07 36 AM@2x CleanShot 2026-10-29 at 10 07 52 AM@2x CleanShot 2026-10-29 at 10 07 59 AM@2x CleanShot 2026-10-29 at 10 08 10 AM@2x CleanShot 2026-10-29 at 10 08 13 AM@2x CleanShot 2026-10-29 at 10 08 19 AM@2x CleanShot 2026-10-29 at 10 08 23 AM@2x CleanShot 2026-10-29 at 10 08 39 AM@2x CleanShot 2026-10-29 at 10 08 44 AM@2x

Testing 🧪

  • pnpm lint passes with existing warnings (0 ESLint errors, 56 warnings).
  • pnpm check passes with existing warnings (0 errors, 125 warnings).
  • Added Storybook previews for all six empty states plus Schedules error and filtered-empty states.
  • Checked the empty states in headless Chromium at 375, 768, and 1440 pixels; also checked light/dark variants for Schedules and Batch and corrected Batch text clipping on mobile.
  • Updated the existing Schedules integration assertion for “No Schedules”; the full integration suite was not run.

Steps for others to test

  1. Run pnpm stories:dev and open Empty State → Resources to compare all six pages, including the Schedules error and no-match variants.
  2. Check light and dark themes at desktop and mobile widths; SDK links should wrap, and descriptions should remain visible.
  3. Open each page in an empty Namespace and verify its title, resource icon, help text, and SDK destinations. Confirm the added Rust links on Workflows and Standalone Activities, the eight Schedules links, and the absence of SDK links on Batch.

Docs

No external documentation changes are required.

@vercel

vercel Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
holocene Ready Ready Preview Oct 29, 2026 8:29pm UTC

Request Review

@bilal-karim

Copy link
Copy Markdown
Member

Love it, and thanks for taking this on! Can we reduce the icon size to 64x64 and update the color to var(--color-content-brand)? That's what we're using for Namespaces on Cloud. Should we also add a prop for adding a CTA to the empty state?

Screenshot 2026-10-27 at 4 35 28 PM

Render the resource empty state below the page title instead of inside the table when a namespace has no workflows, schedules, activities, nexus operations, workers, deployments, or batch operations. Add placeholder skeleton cards, fade the empty state in, show errors in a copyable code block, and rebuild the Nexus illustration as a ring of six namespaces with random round trips.

@bilal-karim bilal-karim left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Super slick! Two nits:

  1. Can we add rounded class to the SVG logos?
  2. Can we remove "Get Started" and simply replace that with "Nexus Endpoints" (in sans font)?

Other than that, everything else looks LGTM. 🚀 🖤

@Alex-Tideman
Alex-Tideman marked this pull request as ready for review October 29, 2026 19:40
@Alex-Tideman
Alex-Tideman requested a review from a team as a code owner October 29, 2026 19:40
@bilal-karim

Copy link
Copy Markdown
Member

Can we add rounded class to SDK logos?

@Alex-Tideman

Copy link
Copy Markdown
Collaborator Author

I'm using the Io ButtonLink component, that doesn't have rounded icons.

@tigernaut

tigernaut commented Oct 29, 2026 •

Copy link
Copy Markdown

this looks awesome. only feedback is can the "NEXUS ENDPOINTS" and "Get started" be combined to "Get started with Nexus Endpoints", as the h1 instead? otherwise, LGTM. thanks for doing this!

This branch was successfully deployed

1 active deployment
Preview — f5e92cf3 Deployed Oct 29, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants