SkillAgentSearch skills...

Inky

An email framework that converts simple HTML into responsive email-ready HTML.

Install / Use

/learn @foundation/Inky
About this skill

Quality Score

0/100

Category

Marketing

Supported Platforms

Universal

README

Inky

Inky is a complete email framework that converts simple HTML into complex, responsive email-ready HTML. It includes a templating engine, built-in responsive CSS, CSS inlining, validation, and a CLI toolchain.

Written in Rust. Distributed as a CLI binary, WASM module, native shared library, and Rust crate — with official bindings for Node.js, PHP, Python, Ruby, and Go.

Inky was formerly known as "Foundation for Emails." Starting with v2, everything is unified under the Inky brand.

Give Inky simple HTML like this:

<container>
  <row>
    <column lg="6">Left</column>
    <column lg="6">Right</column>
  </row>
</container>

And get email-ready HTML like this:

<table role="presentation" align="center" class="container">
  <tbody><tr><td>
    <table role="presentation" class="row">
      <tbody><tr>
        <th class="small-12 large-6 columns first">
          <table role="presentation"><tbody><tr><th>Left</th></tr></tbody></table>
        </th>
        <th class="small-12 large-6 columns last">
          <table role="presentation"><tbody><tr><th>Right</th></tr></tbody></table>
        </th>
      </tr></tbody>
    </table>
  </td></tr></tbody>
</table>

Install

# Homebrew
brew install foundation/inky/inky

# Cargo
cargo install inky-cli

# npm (WASM)
npm install inky-email

Quick Start

# Scaffold a new project
inky init my-email
cd my-email

# Build
inky build

# Watch for changes
inky watch

What's New in v2

  • Rust rewrite — fast, single binary, cross-platform
  • Modern syntax — attributes over classes (size="small" instead of class="small")
  • 27 components — layout, buttons, cards, alerts, hero sections, social links, video, and more
  • CSS inlining — built-in, enabled by default
  • SCSS framework — responsive email styles with per-template variable overrides
  • Layouts & includes<layout>, <include>, custom <ink-*> components, and template variables
  • Validation — catches missing alt text, Gmail clipping risks, Outlook issues
  • Data merging — optional Jinja2-compatible data merge via MiniJinja (--data data.json)
  • Hybrid output--hybrid mode emits <div> layout with Outlook MSO ghost table fallbacks
  • Bulletproof buttons — VML <v:roundrect> fallbacks for styled buttons in Outlook
  • Live previewinky serve starts a local dev server with auto-reload
  • Template friendly — auto-preserves ERB, Jinja2, Handlebars, and other merge tag syntax
  • Plain text generation — auto-generate .txt multipart email version (--plain-text)
  • Spam checkerinky spam-check detects common spam triggers
  • 22 validation rules — links, accessibility, rendering quirks, Gmail clipping, spam detection
  • Per-template data--data-dir auto-pairs JSON data files with templates
  • Migration toolinky migrate converts v1 syntax to v2 automatically
  • Language bindings — Node.js, PHP, Python, Ruby, Go

Documentation

Examples

| Language | Repository | |----------|------------| | Node.js | inky-example-node | | PHP | inky-example-php | | Python | inky-example-python | | Ruby | inky-example-ruby | | Go | inky-example-go |

Building from Source

git clone https://github.com/foundation/inky.git
cd inky

# Build the CLI
cargo build -p inky-cli --release
# Binary at: target/release/inky

# Run tests
cargo test --workspace

Architecture

| Crate | Purpose | Output | |-------|---------|--------| | inky-core | Core transformation engine | Rust library | | inky-cli | Command-line tool | inky binary | | inky-wasm | Browser/Node.js bindings | .wasm module | | inky-ffi | PHP/Python/Ruby/Go bindings | .so / .dylib / .dll |

License

MIT

View on GitHub
GitHub Stars694
CategoryMarketing
Updated2d ago
Forks107

Languages

Rust

Security Score

85/100

Audited on Mar 27, 2026

No findings