Skip to content

Latest commit

History

88 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Tower Examples

Working example apps for Tower, each built around a common data problem. Every example is a complete Tower app (a few Python files plus a Towerfile) that you can clone, deploy, and run in minutes, then adapt to your own stack.

Quick start

Install the Tower CLI, sign in, and run the first example. It needs no secrets and no setup:

git clone https://github.com/tower/tower-examples.git
cd tower-examples/01-hello-world
tower login
tower deploy
tower run

Then pick the example below that matches the problem you're trying to solve.

Find your problem

Start here: zero setup

ExampleThe problem it solvesWhat you need
01-hello-worldSee the whole Tower workflow — deploy, run, parameters, logs — in two minutesNothing
15-interactive-marimo-notebookServe an interactive Python notebook as a running app, no infra to hostNothing

Load files into a warehouse

ExampleThe problem it solvesWhat you need
02-dlthub-s3-to-snowflakeCSVs land in S3 and need to end up in Snowflake, incrementally and reliably (dlt)Snowflake credentials — the source bucket is public
03-dlthub-s3-to-motherduckSame S3 ingestion problem, targeting MotherDuck (dlt)MotherDuck token — the source bucket is public
16-sling-dataReplicate local/JSON data into Snowflake with a declarative YAML config (Sling)Snowflake connection secret

Build a lakehouse on Apache Iceberg

These examples form a small end-to-end lakehouse: ingest → analyze → query → maintain. They share one prerequisite: an Iceberg catalog named default, but Tower hosts this catalog for you, so there is nothing external to sign up for. Deploying an example from the Tower app creates it in one click (the same screen can fill required secrets with Tower sandbox values for testing); on the CLI path, create it once in the Tower UI.

ExampleThe problem it solvesWhat you need
05-write-ticker-data-to-icebergPull data from an external API on a schedule and land it in an Iceberg table (demo data: stock prices)Tower-hosted catalog — no API keys
06-analyze-ticker-data-in-icebergRun LLM-assisted analysis over data already in your lakehouseTower-hosted catalog + inference key (or Tower's sandbox key in-app)
09-run-duckdb-queries-on-icebergQuery Iceberg tables with plain SQL from DuckDBTower-hosted catalog + its REST credentials as secrets
11-trim-ticker-tableEnforce a retention window by deleting old rows from an Iceberg tableTower-hosted catalog with data (run 05 first)
17-list-catalog-tablesInspect what namespaces and tables exist in a catalogTower-hosted catalog
18-read-table-rowsPeek at the first rows of any Iceberg tableTower-hosted catalog with data

Orchestrate many runs

ExampleThe problem it solvesWhat you need
08-fan-out-ticker-runsFan one job out into parallel runs and wait for them all (Tower run/wait)Example 05 deployed

Put LLMs and agents to work on your data

ExampleThe problem it solvesWhat you need
07-deepseek-summarize-githubFeed operational data (GitHub issues) to an LLM and get an actionable recommendation backTower-hosted catalog + inference API key
13-ticker-update-agentDeploy an AI agent that answers questions from your business data and keeps it freshTower-hosted catalog + OPENAI_API_KEY (or Tower's sandbox key in-app)

Run dbt in production

ExampleThe problem it solvesWhat you need
14-dbt-core-ecommerce-analyticsRun a real dbt Core project (seed → build) as a deployable, schedulable appDBT_PROFILE_YAML secret with your warehouse profile

How every example works

Each directory is a self-contained Tower app:

  • Towerfile — declares the app: name, entrypoint script, source files, and runtime parameters.
  • A Python script — ordinary Python; no framework to learn.
  • pyproject.toml — dependencies, installed automatically at run time.

The workflow is always the same: tower deploy from the example's directory, then tower run (add --local to execute on your machine while still using Tower secrets and catalogs). Set secrets with tower secrets create; each example's README lists exactly which ones it needs.

Learn more

About

A few examples of how to use Tower.

Resources

Stars

10 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages