Business buyers are different from individual consumers. They're spending company money, managing professional risk, and answering to stakeholders. Your leak strategy for B2B must address these realities. The trust-building process takes longer, but the rewards are greater.

B2B buyers rarely purchase impulsively. They research, compare, and consult colleagues before deciding. Your leaks must support this journey by providing the information they need at each stage. When done right, your content becomes part of their research process and positions you as the obvious choice.

B2B

Understanding the B2B Buyer Journey

B2B buyers follow a structured journey. They begin with problem identification, then research potential solutions, evaluate options, and finally make a decision involving multiple stakeholders. Your leaks must support each stage with appropriate content.

Stage 1: Problem Identification

Leak content that helps buyers recognize and understand their problem. Share industry research, common challenges, and the cost of inaction. At this stage, you're not selling solutions; you're helping them see they have a problem worth solving.

Stage 2: Solution Research

Leak content that explores solution approaches. Share frameworks, methodologies, and case studies. Help them understand what a good solution looks like. Position your approach as one of the viable options.

Stage 3: Evaluation

Leak content that helps them evaluate options. Share comparison frameworks, evaluation criteria, and detailed case studies with metrics. Provide the information they need to build a business case.

Stage Content Focus
Problem ID Research, challenges, costs
Research Frameworks, methodologies

Building Professional Authority

B2B buyers bet their careers on the vendors they choose. They need to trust that you're credible, reliable, and low-risk. Your leaks must demonstrate professional authority through depth, evidence, and professionalism.

Depth Over Breadth

B2B audiences value deep expertise. Go deep on specific topics rather than covering everything superficially. A comprehensive whitepaper on one topic builds more authority than ten superficial blog posts.

Evidence and Data

Support your claims with data. Share research, case studies with metrics, and client results. B2B buyers need evidence to justify their decisions to stakeholders. Provide the ammunition they need.

  • Deep expertise: Specialize and go deep
  • Evidence: Data, metrics, case studies
  • Professionalism: Polished, credible presentation

LinkedIn as Primary B2B Leak Channel

LinkedIn is the dominant platform for B2B content. Your leaks here should prioritize professional value and industry insight. Long-form posts, articles, and documents perform well. Engage in comments to build relationships with potential buyers.

Use LinkedIn's document feature to share PDFs directly in the feed. A well-designed whitepaper or case study can generate significant engagement and leads. Follow up with connection requests to move relationships forward.

LinkedIn B2B Leak Strategy:
- Post 3-4x weekly with insights
- Share 1 long-form article weekly
- Create 1 document/case study monthly
- Engage meaningfully in comments
- Connect with engaged readers
  

Lead Magnets for B2B

B2B lead magnets should reflect professional needs. Whitepapers, research reports, benchmarking studies, and ROI calculators work well. These assets provide the depth and evidence B2B buyers require while capturing their contact information.

Gate your most valuable content behind forms. A comprehensive industry report is worth an email address. But ensure the content delivers on its promise; disappointing gated content damages credibility.

Nurturing B2B Leads

B2B sales cycles are longer. Your email nurture must sustain engagement over months. Provide ongoing value through insights, research, and case studies. Gradually introduce your offers as buyers move through their journey.

Segment your list based on engagement and interests. Send different content to different segments. Track which content leads to meetings or sales. Refine your nurturing based on what works.

Sales Conversations From Leaks

Eventually, leaks lead to conversations. When a prospect reaches out, they're already educated about their problem and your approach. Your job is to understand their specific situation and determine if your solution fits.

Ask good questions. Listen more than you talk. Customize your approach to their needs. Your leaks have done the heavy lifting; now close by being helpful and authentic.

If you serve B2B clients, review your current content through their journey. Are you providing the information they need at each stage? Are you building the professional credibility they require? Adjust your leak strategy to serve business buyers and watch your pipeline grow.

Structuring Your Jekyll Site with Custom Collections

Why Jekyll Collections Are Essential for Structured Content

As your static site grows beyond simple blog posts and pages, you’ll eventually need more structure. Maybe you’re building a documentation portal, a changelog, or a showcase of portfolio projects. That’s where Jekyll collections come in.

Collections allow you to define and group custom content types—like tutorials, features, case studies, or FAQs—that behave similarly to posts, but with greater control over how they’re organized, rendered, and accessed.

What Are Jekyll Collections?

A collection is a group of related documents stored in its own folder (prefixed with an underscore, like _tutorials) and configured in _config.yml. Unlike posts, collections don’t require date-based filenames and can have arbitrary naming, front matter, and permalink structures.

This makes them ideal for organizing content that:

  • Isn’t blog-like in nature (no date relevance)
  • Needs its own layout, filters, and structure
  • Should be queryable across templates using Liquid

Setting Up a Basic Collection

Let’s say you want to create a tutorial library. Start by defining it in your _config.yml:

collections:
  tutorials:
    output: true
    permalink: /tutorials/:path/

This tells Jekyll:

  • There’s a new collection called tutorials
  • Its files should be rendered as pages (output: true)
  • Its URLs will follow the pattern /tutorials/filename/

Then create the folder _tutorials in your root directory and add your content:

_tutorials/
  getting-started.md
  advanced-tricks.md

Each file should have front matter:

---
title: Getting Started
layout: tutorial
difficulty: beginner
---

You now have a functioning tutorial collection with custom metadata!

Rendering a Collection in Your Site

To list the tutorials on a dedicated page, create tutorials.html:

---
layout: default
title: Tutorials
---

All Tutorials

    {% raw %}{% for tutorial in site.tutorials %} <li><a href="{{ tutorial.url }}">{{ tutorial.title }} ({{ tutorial.difficulty }})</a></li> {% endfor %}{% endraw %}

This uses the site.tutorials collection array and loops through each item. You can use any front matter property (like difficulty) for filtering or display.

Use Case: Creating a Team Directory

Suppose your site has a growing number of contributors or staff. Rather than hardcoding them into a single HTML file, you can build a _team collection.

In _config.yml:

collections:
  team:
    output: true
    permalink: /team/:name/

Inside _team/:

_team/
  alice-smith.md
  bob-lee.md
---
name: Alice Smith
position: Head of Design
photo: /assets/img/alice.jpg
layout: team-member
---

Then you can create a team listing page:

{% raw %}{% for person in site.team %}
  <div class="team-card">
    <img src="{{ person.photo }}" alt="{{ person.name }}" />
    <h3>{{ person.name }}</h3>
    <p>{{ person.position }}</p>
  </div>
{% endfor %}{% endraw %}

This approach is scalable, easier to maintain, and allows linking to individual team member pages.

Filtering, Sorting, and Grouping

You can do much more with collections by using Liquid filters:

Sorting Tutorials by Difficulty

{% raw %}{% assign sorted_tuts = site.tutorials | sort: "difficulty" %}
{% for tutorial in sorted_tuts %}
  <p>{{ tutorial.title }} - {{ tutorial.difficulty }}</p>
{% endfor %}{% endraw %}

Filtering by Tag

{% raw %}{% for tutorial in site.tutorials %}
  {% if tutorial.tags contains "liquid" %}
    <li>{{ tutorial.title }}</li>
  {% endif %}
{% endfor %}{% endraw %}

This allows you to build dynamic interfaces that group or filter custom content types.

Advanced Structure: Nested Collections with Data Files

Collections can be enriched further by combining them with data files. For example, imagine each tutorial links to downloadable assets listed in _data/assets.yml:

getting-started:
  - name: "Starter Code"
    url: "/downloads/starter.zip"
advanced-tricks:
  - name: "Trick Scripts"
    url: "/downloads/scripts.zip"

Then in your tutorial.html layout:

{% raw %}{% assign files = site.data.assets[page.slug] %}
{% if files %}
  <h3>Downloads:</h3>
  <ul>
    {% for file in files %}
      <li><a href="{{ file.url }}">{{ file.name }}</a></li>
    {% endfor %}
  </ul>
{% endif %}{% endraw %}

Combining collections with external data gives you powerful flexibility for building interfaces that are content-driven but dynamic in structure.

Pagination with Collections

Pagination doesn’t work out-of-the-box for collections like it does for posts, but you can use the jekyll-paginate-v2 plugin (for non-GitHub Pages environments) or custom pagination logic for client-side rendering using JavaScript.

On GitHub Pages, use collection slicing in Liquid for basic pagination emulation:

{% raw %}{% assign tutorials = site.tutorials %}
{% for tutorial in tutorials offset:0 limit:5 %}
  <li>{{ tutorial.title }}</li>
{% endfor %}{% endraw %}

Best Practices When Using Collections

  • Always set output: true if you want individual pages to render
  • Use consistent front matter keys to simplify querying and filtering
  • Use permalink to control the output path format per collection
  • Combine with defaults to reduce boilerplate in each file
  • Document collection usage for your contributors

Real World: Managing a Developer Changelog

A software project on GitHub Pages uses a _changelog collection to track releases. Each entry includes:

---
version: 2.3.0
date: 2024-11-03
changes:
  - "Added user audit log"
  - "Improved caching performance"
layout: changelog
---

The changelog page loops through site.changelog and groups by major version. This structure is easier to maintain and automatically adds new entries as files are committed.