---
title: "Rhys Sullivan - Air Market"
description: "Rhys Sullivan publishes 13 listings on Air Market."
canonical: "https://airmarket.ai/@rhyssullivan"
---

[Air Market](/) / [Creators](/creators) / Rhys Sullivan

Creator

# Rhys Sullivan

**Rhys Sullivan on Air Market**

|  |  |
| --- | --- |
| Listings | 13 |
| GitHub | [RhysSullivan](https://github.com/RhysSullivan) |

**Published listings, with what each one does**

| Listing | Kind | What it does |
| --- | --- | --- |
| [TypeScript Type Safety](/app/wrdn-typescript-type-safety) | Skill | Someone silenced type checking for a whole file to get past something, and it stayed silenced. This takes those bypasses out. Reach for it… |
| [Package Boundaries](/app/wrdn-package-boundaries) | Skill | In a workspace with several packages, it is easy to reach into a neighbour with a relative path, and the packages quietly stop being separa… |
| [Effect Atom Reactivity Keys](/app/wrdn-effect-atom-reactivity-keys) | Skill | Sometimes you save a change and the screen keeps showing the old data, because nothing told it to refresh. When the linter points at a writ… |
| [Effect Vitest Tests](/app/wrdn-effect-vitest-tests) | Skill | A test that passes sometimes and fails other times is worse than no test, and assertions hidden behind an if are a common cause. This tidie… |
| [Effect Value Inferred Types](/app/wrdn-effect-value-inferred-types) | Skill | You build an object and hand it back, then write a separate type spelling out the same thing, and now edits have to land in both. This take… |
| [Effect Schema Inferred Types](/app/wrdn-effect-schema-inferred-types) | Skill | You describe a shape once in a schema, then write the same fields again as a type just above it, and now two things have to be kept in step… |
| [Effect Schema Boundaries](/app/wrdn-effect-schema-boundaries) | Skill | Data arriving from outside your code has no shape you can trust, and the usual fix is casting it or checking a property here and there. Thi… |
| [Effect Raw Fetch Boundary](/app/wrdn-effect-raw-fetch-boundary) | Skill | Calling out to the network with a bare fetch works until the calls are spread everywhere and nothing is consistent. This routes them throug… |
| [Effect Promise Exit](/app/wrdn-effect-promise-exit) | Skill | When a save fails, the usual reflex is to wrap it in try/catch and flip some error state in the interface. This rewrites those handlers to… |
| [Effect Client Wrapper Pattern](/app/effect-client-wrapper) | Skill | You are writing with Effect and need to call a library that was not built for it, like a payments or email SDK. This is a repeatable patter… |
| [Effect Typed Errors](/app/wrdn-effect-typed-errors) | Skill | Errors that are just thrown and caught tell you very little, and by the time you handle one you often do not know what it is. This converts… |
| [Graphite CLI Command Reference](/app/graphite) | Skill | If your team keeps branches stacked on top of each other, the plain git commands get awkward fast. This handles the everyday moves - commit… |
| [Effect HTTP Testing](/app/effect-http-testing) | Skill | You have written an HTTP service and now you have to test it, and the wiring up front is the part that stalls you. This walks through setti… |

## Links

- [rhys.dev](https://rhys.dev/)
- [X](https://x.com/RhysSullivan)
- [GitHub](https://github.com/RhysSullivan)

---

Canonical URL: <https://airmarket.ai/@rhyssullivan>
