Official sample projects, reference models, migration patterns, and deployment guides for DuckCodeModeling.
This repository is the companion examples hub for the DuckCodeModeling product. It is designed to help teams:
- onboard quickly with production-style starter projects,
- learn the GitOps-first modeling workflow,
- adopt connector-specific best practices for Snowflake, Databricks, and BigQuery,
- standardize model + migration lifecycle in CI/CD.
- Starter templates: clean repository skeletons for model-driven teams.
- Connector examples: Snowflake, Databricks, and BigQuery sample modeling flows.
- Migration patterns: YAML-to-SQL change examples and rollout strategy.
- CI/CD blueprints: reference workflows for pull request validation and environment promotion.
- Testing guides: practical validation plans for schema pull, model changes, and migration safety.
.
├── projects/
│ ├── <project-name>/
│ │ ├── .duckcodemodeling/project.json
│ │ ├── models/
│ │ │ └── *.model.yaml
│ │ ├── ddl/
│ │ │ └── <dialect>/*.sql
│ │ └── migrations/
│ │ └── <dialect>/*.sql
│ └── ...
├── guides/
├── templates/
├── legacy/ # archived experiments (not the recommended layout)
└── .github/workflows/
projects/NBA-GAME-SAMPLES/: Snowflake-style sample with multiple model files (DEV/RAW/PUBLIC) + generated baseline DDL.projects/NBA-GAMES-STRUCTURE/: additional Snowflake RAW schema sample (includesFCT_PLAYER_PERFORMANCE).
More details: projects/README.md.
Start here: guides/tutorial/README.md.
- Clone this repo.
- Start DuckCodeModeling (main product): https://github.com/duckcode-ai/DuckCode-Modeling
- In DuckCodeModeling UI: Projects → Add Project Folder
- Folder Path:
- Open an existing sample project: point to
.../DuckCodeModeling-Examples/projects/NBA-GAME-SAMPLES - Or open the parent folder (one repo, many projects): point to
.../DuckCodeModeling-Examples/projects
- Open an existing sample project: point to
DuckCodeModeling treats YAML as the source of truth and generates SQL artifacts for deployment.
- Open a model file:
projects/NBA-GAME-SAMPLES/models/RAW.model.yaml - Make edits in the UI:
- Add table
- Add column, rename column
- Rename table
- Save (
Cmd+S/Ctrl+S) - Confirm files updated in the repo:
- YAML:
projects/<project>/models/*.model.yaml - Baseline DDL:
projects/<project>/ddl/<dialect>/*.sql(auto-generated on save)
- YAML:
- Use Diff & Git panel:
- View diff
- Commit with a message
- Push to your remote
- Deploy in your CI/CD by applying the generated
.sqlartifacts to your warehouse.
DuckCodeModeling examples follow a programmable data modeling approach:
.model.yamlis the source of truth for intent,- generated SQL is the deployable artifact,
- git history + pull requests are the control plane,
- CI/CD is the execution path to data platforms.
- These projects are meant to be edited inside the DuckCodeModeling product.
- For new projects, prefer the one repo, many projects approach (
projects/<project-name>/...) so teams can manage multiple domains in one repo.
Contributions are welcome. For now:
- Open an issue describing the sample or guide you want to add.
- Create a feature branch.
- Add example assets with clear README instructions.
- Submit a pull request with expected outputs and validation notes.
- Main product: https://github.com/duckcode-ai/DuckCode-Modeling
Built by DuckCode AI Labs.