Singer Targets

Singer Targets is the destination-facing half of the Singer open-source ETL specification, a Unix-inspired framework that standardizes how data loading scripts—called 'targets'—communicate with extraction scripts ('taps') via JSON over standard pipes.

Reviewed by 7wData

On this page

Publisher review

Singer Targets is the destination-facing half of the Singer open-source ETL specification, a Unix-inspired framework that standardizes how data loading scripts—called 'targets'—communicate with extraction scripts ('taps') via JSON over standard pipes. Launched in 2020, it targets developers and data engineers who prefer a code-first, composable approach to moving data between any source and any destination without daemons or plugin ecosystems. The project is maintained as a community standard under singer.io, with no single corporate owner; it's designed for teams comfortable writing Python scripts and piping data through the command line, as demonstrated by the simple command `tap-exchangeratesapi | target-csv` that pulls live exchange rates into a CSV file.

Singer's architecture is deliberately minimal: taps extract data and emit JSON-formatted records to stdout, while targets read from stdin and load that data into a destination like Google BigQuery, PostgreSQL, or a CSV file. The specification supports JSON Schema for rich typing and enables efficient state maintenance between invocations, allowing incremental extraction by tracking bookmarks (e.g., last updated timestamp). The directory lists over 110 taps for sources like Facebook Ads, Salesforce, and MySQL, but only about 10 official targets, meaning the ecosystem is heavily source-heavy. Because communication is JSON-based, developers can write taps and targets in any programming language, and the pipe model makes it trivial to chain commands without a central orchestrator.

Singer competes directly with Fivetran, Airbyte, Coupler.io, and Supermetrics, but occupies a unique niche as a free, open-source standard rather than a managed platform. Fivetran and Airbyte focus on the 'any to database' segment with pre-built connectors and cloud-hosted pipelines, while Singer requires manual setup and scripting. Coupler.io offers a no-code web app starting at $24/month, contrasting with Singer's free CLI approach. Singer has no user reviews on G2 or Capterra, reflecting its smaller community compared to Airbyte's 300+ connectors or Fivetran's automated schema migration. The project's strength is its simplicity and flexibility, but it lacks the polish and support of commercial alternatives.

The honest trade-offs are significant: Singer's speed control is notoriously poor—users report that targets 'go straight from a stall to 1000 stitches per minute, there's no in between,' making throttling difficult. The limited number of official targets (around 10) means many destinations require custom development, and the CLI-only interface excludes non-technical users. State maintenance, while efficient, is manual to configure, and the lack of a centralized UI or monitoring means operators must build their own observability. For teams needing a quick, code-driven pipeline for a few sources, Singer is lightweight and free; for production-scale, multi-destination workflows, managed alternatives like Airbyte or Fivetran offer more reliability and support.

Get the AI & data signal, daily.

48k+ subscribers read this every morning. One email, both newsletters. Unsubscribe anytime.

How it works

  1. Unix-inspired pipe model

    Taps and targets communicate via standard pipes (stdin/stdout), eliminating the need for daemons or complex plugin systems.

  2. JSON-based communication

    All data between taps and targets uses JSON format, making it language-agnostic and easy to implement in any programming language.

  3. Efficient state maintenance

    Singer supports bookmark-based state tracking between invocations, enabling incremental extraction without full reloads.

  4. JSON Schema typing

    Supports JSON Schema to provide rich data types and rigid structure when needed, ensuring data consistency across pipelines.

  5. Composable with pipes

    Pipelines are built by piping taps to targets (e.g., `tap-exchangeratesapi | target-csv`), allowing arbitrary combinations.

  6. Language-agnostic implementation

    Because communication is JSON over pipes, taps and targets can be written in any language—Python, Ruby, Go, etc.

  7. Open-source standard

    Singer is free to use and modify, with a specification that any developer can implement to create custom taps or targets.

Strengths and trade-offs

Strengths

  • Singer is free and open-source, with no licensing costs or per-row fees, making it accessible for any budget.
  • The pipe-based architecture allows simple composability, as shown by the two-command pipeline `pip install target-csv tap-exchangeratesapi && tap-exchangeratesapi | target-csv`.
  • JSON-based communication enables taps and targets to be written in any programming language, not just Python.
  • State maintenance between invocations supports incremental extraction, reducing load on source APIs and improving efficiency.

Trade-offs

  • Speed control is notoriously poor—users report that targets 'go straight from a stall to 1000 stitches per minute' with no granular throttling.
  • The official target directory lists only about 10 destinations, far fewer than the 110+ sources, forcing custom development for many targets.
  • The CLI-only interface requires coding knowledge, excluding non-technical users who might prefer no-code tools like Coupler.io.
  • No built-in monitoring or UI means operators must build their own observability and error handling for production pipelines.

Pricing context

Free (open-source, no cost to use or modify)

Getting started with Singer Targets

  1. Install Singer and a target

    Install Singer's target library using pip, for example `pip install target-csv`. Also install a tap like `pip install tap-exchangeratesapi`. This sets up the command-line tools needed to build a pipeline.

  2. Configure the tap

    Create a JSON configuration file for the tap, specifying source credentials or parameters. For `tap-exchangeratesapi`, you might set the base currency. Store this file securely, e.g., `config.json`.

  3. Run a pipeline command

    Execute the pipeline by piping the tap's output to the target: `tap-exchangeratesapi --config config.json | target-csv --config target_config.json`. This streams data from the source to the destination in one command.

  4. Set up state for incremental syncs

    After the first run, save the state file output by the tap. Use it in subsequent runs by adding `--state state.json` to the tap command. This enables incremental extraction, reducing load on the source API.

  5. Schedule the pipeline

    Use a cron job or scheduler like `crontab -e` to run the pipeline periodically. For example, schedule `tap-exchangeratesapi --config config.json --state state.json | target-csv --config target_config.json` to run hourly.

Frequently Asked Questions

What is Singer Targets and how does it work?

Singer Targets is the destination-facing half of the Singer open-source ETL specification. It reads JSON data from standard input, sent by extraction scripts called taps, and loads it into destinations like databases or CSV files using a Unix-inspired pipe model.

How does Singer compare to Fivetran or Airbyte?

Singer is a free, open-source standard requiring manual setup and scripting, while Fivetran and Airbyte are managed platforms with pre-built connectors and cloud hosting. Singer offers simplicity and no cost, but lacks the polish, support, and extensive connector library of commercial alternatives.

What are the main strengths of using Singer Targets?

Singer Targets is free and open-source with no licensing fees. Its pipe-based architecture allows simple composability, and JSON communication makes it language-agnostic. It also supports incremental extraction through state maintenance, reducing API load and improving efficiency for data pipelines.

What are the biggest weaknesses of Singer Targets?

Singer Targets has poor speed control with no granular throttling, only about 10 official destinations, and a CLI-only interface that excludes non-technical users. It also lacks built-in monitoring or UI, requiring operators to build their own observability for production pipelines.

How do you set up a Singer pipeline?

You install a tap and a target via pip, then pipe them together on the command line. For example, `pip install target-csv tap-exchangeratesapi && tap-exchangeratesapi | target-csv` pulls live exchange rates into a CSV file. No daemons or complex plugins are needed.

Does Singer support incremental data extraction?

Yes, Singer supports efficient state maintenance between invocations using bookmarks like last updated timestamps. This enables incremental extraction, so only new or changed data is pulled from sources, reducing load on APIs and improving pipeline efficiency without full reloads.

Alternatives

How Singer Targets compares

Direct head-to-head against 2 competitors. Picked by 7wData.

This tool

Singer Targets

Pricing
Free (open-source, no cost to use or modify)
Target
Singer Targets is the destination-facing half of the Singer open-source ETL specification, a Unix-inspired framework that standardizes how data loading scripts—called 'targets'—communicate with extraction scripts
Strength
Singer is free and open-source, with no licensing costs or per-row fees, making it accessible for any budget.
Watch for
Speed control is notoriously poor—users report that targets 'go straight from a stall to 1000 stitches per minute' with no granular throttling.

Coupler.io

Pricing
$24/month
Target
No-code ETL for business users
Deployment
Cloud-based
Strength
Pre-built connectors for common SaaS apps
Watch for
Limited to 26 data sources

Fivetran

Pricing
Pay-as-you-go model
Target
Enterprise-scale data pipelines
Deployment
Cloud or hybrid
Strength
400+ connectors with managed service
Watch for
Complex pricing escalates with usage

User reviews

No user reviews yet. Be the first to write one.

Sources

Reporting on this tool draws on these publicly available sources.

  1. www.singer.io
  2. www.reddit.com
  3. blog.coupler.io
  4. kestra.io