How to Design Better APIs

This page summarizes the projects mentioned and recommended in the original post on

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • WHATWG HTML Standard

    HTML Standard

    I don’t know what OP thinks is the reason, but the actual reason is CORS.

    Web Devs (such as me) have asked for e.g. DELETE as an acceptable formmethod (e.g. however WHATWG always pushes back citing security concerns such as CORS.

    I suspect this is not what OP had in mind since it is trivial to send a DELETE request with a simple JavaScript:


  • jsonrpc-ts

    Strongly 💪 Typed Fast and lightweight JSON RPC 2.0 Client for Nodejs

    Active use is really irrelevant if you only plan on using it inside a company, because you can implement a client and server within 30 mins to an hour, no external tools needed. The spec is clear and readable. It's excellent. We use it with a TypeScript codebase and just share the interfaces for the services in a monorepo.

    If you want a more advanced implementation with type inference for Typescript you can use this:

    I'd still recommend implementing your own, my own implementation is based off the one above.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • twirp

    A simple RPC framework with protobuf service definitions

  • awesome-api-devtools

    :books: A collection of useful resources for building RESTful HTTP+JSON APIs.

    For those in Security Theatre of HTTP APIs, I found this also useful:

  • python-rapidjson

    Python wrapper around rapidjson

    > * Human readable

    Computers are the main consumers of APIs, and ISO 8601 is far from machine-readable.

    For example, in Elixir, DateTime.from_iso8601/1 won't recognize "2022-03-12T07:36:08" even though it's valid. I had to rewrite a chunk of Python's radidjson wrapper to 1-9 digit fractional seconds (1).

    I'm willing to bet 99% of ISO8601 will fail to handle all aspects of the spec. So when you say "ISO8601" what you're really saying is "our [probably undocumented, and possibly different depending on what system you're hitting] version of the ISO-86001 spec."


  • indie-rpc

    A simple RPC framework for Kotlin services

    >Sometimes, I feel that we ought to have a simple protocol, on top of HTTP, to simply do remote procedure calls and throw out all this HTTP verbs crap. Every request is a http POST, with or without any body and the data transfer is in binary. So that objects can be passed back and forth between client and server.

  • webrpc

    webrpc is a schema-driven approach to writing backend services for modern Web apps and networks

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts