Another HTTP client? Not exactly.

Another HTTP client? Not exactly.

Mar 22, 2026

Hey 👋

I’m building an open-source project called dfsync.

It started from a pretty simple frustration:

in almost every project, I kept rewriting the same things over and over again — HTTP client, retries, auth, error handling, logging...

Each time slightly different. Each time taking more time than it should.

So I decided to extract it into something reusable.

dfsync is a toolkit for service-to-service communication.

Right now, the first package is live: @dfsync/client — a lightweight HTTP client for Node.js with predictable behavior out of the box.

No magic. Just something that works the way you expect.

---

Example

import { createClient } from "@dfsync/client";

const client = createClient({
  baseURL: "https://api.example.com",
  retry: { attempts: 3 }
});

const users = await client.get("/users");

What I’m working on now

I’m actively moving forward with the roadmap:

• request lifecycle improvements

• better observability (logs, timing, retry metadata)

• safer integrations (validation, idempotency)

And eventually — moving a bit towards SaaS ideas around this space.

---

Why support?

I’m building this in my free time — evenings, weekends, between work and family.

If you find this useful, interesting, or just want to support the idea — buying me a coffee is a small way to help keep it going ☕️

It really makes a difference.

---

Links

GitHub: https://github.com/dfsyncjs/dfsync

npm: https://www.npmjs.com/package/@dfsync/client

Home page: https://dfsyncjs.github.io/

---

Thanks for reading

Ti piace questo post?

Offri un caffè a Roman Onishchenko

PrivacyTerminiRapporto