Syncle

Syncle

Self-hosted replication between Postgres, MySQL, SQLite, MongoDB, Redis, and HTTP endpoints, no Kafka

Open Source

Gallery

About Syncle

Syncle is a self-hosted tool for replicating data between databases that don't share an engine. Postgres to MySQL, MongoDB to Postgres, Redis to an HTTP endpoint, any combination of PostgreSQL, MySQL, SQLite, MongoDB, and Redis, plus webhook-style delivery to HTTP. The problem it's built against is that the standard answer to heterogeneous replication is a Kafka cluster, a change capture connector, a connector marketplace, and a schema registry, which is a platform to operate before you've synced a single row. Syncle is four containers behind one port, and bridges are created in a web interface and watched from a live delivery timeline.

The unit of work is a bridge, a source plus one or more destinations. Each bridge runs in one of three modes. Replay does a one-time backfill of all rows or a filtered subset. Watch polls the source on a cursor, an auto-increment ID, an updated_at timestamp, or a primary-key diff, and is the option for sources that can't emit changes. CDC reads the engine's own change log, logical replication on Postgres, the binlog on MySQL, change streams on MongoDB, and keyspace notifications on Redis, for near-real-time flow with delete propagation. Writes on the destination side are idempotent upserts, so a replayed batch never creates duplicates, and a bridge that's interrupted picks up from its checkpoint rather than starting over. A bridge can fan out to several destinations, so one Postgres source can feed a MySQL replica and a webhook at the same time.

Around the core there's a fair amount of operational convenience. Destination tables are created automatically with type translation across engines, columns can be mapped and renamed for the common case where the destination schema differs slightly, HTTP destinations take a JSON payload template and POST, PUT, or PATCH delivery so the receiving service gets exactly the shape it expects, and a live delivery timeline shows each record with retry, skip, and resume controls. Remote databases can be reached over SSH tunnels, and a built-in workbench lets you browse tables, run queries, and manage schemas without opening a separate client. The site has a video of a bridge being created end to end, which is a fair way to judge how much clicking is involved.

Deployment is a curl install script that brings the stack up, or a docker compose file with a master key you generate with openssl. The four services are a NestJS API, a Next.js web interface, a PostgreSQL metadata store, and Redis running the BullMQ job queue, published behind a single port. No Kafka, no external scheduler, no connector marketplace. Building from source needs Node 22 and pnpm 10.

It's for individual operators and small teams who run their own infrastructure and want data to land in a second system without adopting a streaming platform. The typical shapes are a legacy app that still reads MySQL while the new one writes Postgres, a reporting database fed from a MongoDB application store, or row changes pushed to a webhook so another service can react. Version 1.3.0 shipped on 8 September 2026 with a changelog and releases page, and the project is MIT licensed with a modest but active GitHub presence and discussions for setup help.

Where it differs from the streaming stacks is that it's a single self-contained application with a UI, not a set of components to wire together. That's also the honest boundary. It's not built for the throughput or the guarantees a Kafka pipeline gives a large organisation; it's built so one person can stand up a reliable sync in an afternoon. The limits are documented rather than hidden. MariaDB CDC is untested, though MySQL CDC is verified. Redis CDC isn't durable, so changes made while a bridge is offline are lost. SQLite has no change log, so watch bridges are the option there. And the stack is designed for local or trusted-network use, with TLS expected before you expose it more widely. It's also young, so the operational track record is short.

Access is free and open source. There's no hosted plan or paid tier; you run it yourself. For anyone comparing it with a hosted ELT service, the difference is that nothing leaves your network; the sources, the destinations, and Syncle itself all run where you put them. Nine documentation pages cover installation through troubleshooting, questions go to GitHub Discussions, and security reports have a dedicated address on the self-hosting page. There's no general contact email.

Key Features

  • Replay, watch, and CDC bridge modes
  • Postgres, MySQL, SQLite, MongoDB, and Redis in any pairing
  • HTTP destinations with JSON payload templates
  • Automatic destination tables with type translation
  • Checkpointed jobs with retry, skip, and resume
  • Built-in database workbench

Pros & Cons

What we like

  • Four containers behind one port, no Kafka or scheduler
  • Idempotent upserts and delete propagation on CDC
  • MIT licensed with no paid tier
  • SSH tunnel support for remote databases

Room for improvement

  • MariaDB CDC untested and Redis CDC not durable
  • SQLite sources can't use CDC
  • Meant for trusted networks until you add TLS
  • Young project with a short track record

Frequently Asked Questions

What is Syncle?
Syncle is a self-hosted tool that replicates data between PostgreSQL, MySQL, SQLite, MongoDB, Redis, and HTTP endpoints. You define a bridge from a source to one or more destinations and run it as a one-time replay, a polling watch, or log-based change data capture.
Is Syncle free?
Yes. It's MIT licensed open source with no hosted plan or paid tier. You run it yourself with the install script or docker compose.
Does Syncle need Kafka?
No. The stack is a NestJS API, a Next.js interface, PostgreSQL for metadata, and Redis for the job queue, running as four containers behind a single port.
What are the known limitations?
MariaDB CDC is untested, Redis CDC isn't durable so offline changes are lost, and SQLite has no change log so it uses watch bridges. It's designed for local or trusted networks and needs TLS before wider exposure.

Best For

Mirroring a production Postgres table into MySQL for a legacy appStreaming MongoDB changes into a Postgres reporting databasePushing row changes to a webhook without a message brokerBackfilling a new datastore from an existing one

Featured in

Alternatives to Syncle

Reviews (0)

No reviews yet

Be the first to share your experience with Syncle

Sign in to write a review

Badge builder

Add Syncle to your website

Choose a badge style and size, preview it here, then copy the generated HTML. Badge images are self-contained SVGs and do not require an external script.

Syncle badge preview
<a href="https://toolindex.net/tools/syncle?ref=badge" target="_blank" rel="noopener">
  <img src="https://toolindex.net/badge/syncle/medium.svg" alt="Syncle - Listed on Tool Index" width="180" height="50" />
</a>

How to use the badge

  1. 1. Pick the style, size, and theme that fit your layout.
  2. 2. Copy the generated HTML from the code block.
  3. 3. Paste it into your footer, homepage, or press page.

Standard badge available

The standard listing badge is available now. Score and circle badges are limited to tools currently ranked in the top 10 of a category.

Badge clicks return visitors to this profile with a referral tag so the source remains identifiable.