Skip to content
You must be logged in to sponsor joelalejandro

Become a sponsor to Joel Alejandro Villarreal Bertoldi

While I'm working on several different projects, my main goal on GitHub Sponsors is to help Kurier grow. But, what is Kurier?

Kurier is a TypeScript framework to create APIs following the 1.1 Spec of JSONAPI + the Operations proposal spec, supporting the following features:

  • Operation-driven API: JSONAPI is transport-layer independent, so it can be used for HTTP, WebSockets or any transport protocol of your choice.
  • Declarative style for resource definition: Every queryable object in JSONAPI is a resource, a representation of data that may come from any source, be it a database, an external API, etc. Kurier defines these resources in a declarative style.
  • CRUD database operations: Baked into Kurier, there is an operation processor which takes care of basic CRUD actions by using Knex. This allows the framework to support any database engine compatible with Knex. Also includes support for filtering fields by using common SQL operators, sorting and pagination.
  • Transport layer integrations: The framework supports JSONAPI operations via WebSockets, and it includes middlewares for Koa, Express and Vercel to automatically add HTTP endpoints for each declared resource and processor.
  • Relationships and sideloading: Resources can be related with belongsTo / hasMany helpers on their declarations. Kurier provides proper, compliant serialization to connect resources and even serve them all together on a single response.
  • Error handling: The framework includes some basic error responses to handle cases equivalent to HTTP status codes 401 (Unauthorized), 403 (Forbidden), 404 (Not Found) and 500 (Internal Server Error).
  • User/Role presence authorization: By building on top of the decorators syntax, Kurier allows you to inject user detection on specific operations or whole processors. The framework uses JSON Web Tokens as a way of verifying if a user is valid for a given operation.
  • Extensibility: Both resources and processors are open classes that you can extend to suit your use case. For example, do you need to serialize an existing, external API into JSONAPI format? Create a MyExternalApiProcessor extending from OperationProcessor and implement the necessary calls et voilà!.

Why sponsor this project?

All of the time and effort spent on this project is volunteered. I believe JSON:API is truly a robust standard for API development. The next iterations will attempt to tackle some of the biggest features we want to include in the framework, such as:

  • Integration with OpenAPI standards (self-documenting API)
  • A CLI to ease in the API development process
  • Data integrations beyond Knex's capabilities
  • Growth of our addon ecosystem

Your support would be a huge help for me!

@joelalejandro

These funds can help me dedicate time to work on Kurier

Featured work

  1. kurierjs/kurier

    TypeScript framework to create JSON:API compliant APIs

    TypeScript 61
  2. kurierjs/kurier-starter-pack-javascript

    A project template for starting a JavaScript project with Kurier, plus some linting and testing.

    JavaScript 2
  3. kurierjs/kurier-starter-pack-typescript

    A project template for starting a TypeScript project with Kurier, plus some linting and testing.

    TypeScript 3
  4. kurierjs/kurier-addon-transport-layer-context

    An addon to inject the client's IP address and request headers in your transport layer.

    TypeScript
  5. kurierjs/kurier-addon-starter

    Starter repo for creating addons.

    TypeScript

0% towards $1,000 per month goal

Be the first to sponsor this goal!

Select a tier

$ a month

Choose a custom amount.

$5 a month

Select
  • Get a Sponsor badge on your profile

$25 a month

Select
  • Logo or name goes in my project README

$100 a month

Select
  • Logo or name on project website
  • Have your bug reports prioritized

$1,000 a month

Select
  • I'll join your company chat app for help and support