Solopreneurs face unique challenges. You wear every hat: creator, marketer, salesperson, accountant. Your time is limited, your resources constrained, your energy precious. A value ladder for solopreneurs must account for these realities while building sustainable income.

The good news is that solopreneurs also have unique advantages. You're nimble, authentic, and directly connected to your audience. Your personal brand is your greatest asset. Your ladder can leverage these strengths while minimizing the burdens of solo operation.

🎩 🎩 Solopreneur

The Solopreneur's Reality

As a solopreneur, your time is your most limited resource. Every hour spent creating content is an hour not spent on delivery, sales, or rest. Your ladder must be efficient, generating maximum impact per unit of effort.

You also carry the full weight of your business. Burnout is a real threat. Your ladder must be sustainable, allowing you to maintain energy and enthusiasm over years. Short-term gains aren't worth long-term exhaustion.

  • Limited time: Efficiency is essential
  • Multiple roles: Systems reduce burden
  • Burnout risk: Sustainability matters

Leveraging Your Personal Brand

Your greatest asset is you. Your personality, story, and perspective differentiate you from competitors. Leak content that reveals who you are, not just what you know. Personal connection builds trust faster than generic expertise.

Share your journey, including struggles and failures. Let your personality shine through your content. People buy from people they like and trust. Your authentic self is your competitive advantage.

Asset How to Leverage
Personality Show authentic self
Story Share journey authentically

Simple Ladder Structures for Solopreneurs

Complexity is the enemy of execution. A simple ladder with clear rungs works better than an elaborate structure you can't maintain.

The 3-Rung Ladder

Rung 1: Free content (social, newsletter). Rung 2: Low-ticket digital product ($20-50). Rung 3: High-ticket service ($500+). This simple structure covers the essentials without overwhelming you or your audience.

The 4-Rung Ladder

Add a mid-ticket group program between low and high. Rung 1: Free. Rung 2: Digital product. Rung 3: Group coaching/course. Rung 4: 1:1 service. This provides an intermediate step for those not ready for one-on-one.

Simple Solopreneur Ladder:
- Free: Daily value leaks
- $27: Digital product
- $197: Group program
- $1000+: 1:1 service
  

Products That Scale

As a solopreneur, your time is finite. Products that scale are essential. Digital products (courses, templates, memberships) can sell infinitely with no additional time. Group programs scale better than one-on-one. Design your ladder to include scalable offers.

Your one-on-one service is your highest-touch, highest-price offer. But you can only serve so many people this way. Use scalable products to serve more people and generate income without trading time for money.

Systems for the Solo Operator

Systems are your employees. Automate what you can: email sequences, scheduling, payment processing, content distribution. Document processes so you can delegate later. Build systems that let you focus on high-value work.

Start with simple tools that solve specific problems. A email service provider automates nurturing. A scheduler handles meeting booking. A payment processor handles transactions. Each system saves you time and mental energy.

Community and Collaboration

Solopreneurs don't have to go it alone. Build relationships with other creators. Collaborate on content, cross-promote, and support each other. A community of peers provides accountability, ideas, and encouragement.

Consider mastermind groups with other solopreneurs at similar stages. Regular calls to share challenges and solutions reduce isolation and accelerate growth. Your peers become invaluable resources.

Protecting Your Energy

You are your business. Protect your energy accordingly. Set boundaries around work hours. Take real time off. Nurture your creativity through rest and experiences. A burned-out solopreneur has no business at all.

Build your ladder to support your life, not consume it. Sustainable growth beats rapid burnout every time. Your business should serve you, not the other way around.

If you're a solopreneur, review your ladder through the lens of efficiency and sustainability. Are you leveraging your personal brand? Do you have scalable products? Are your systems reducing burden? Simplify where needed and protect your most valuable asset: you.

interactive table of contents for jekyll

Tables of Contents (TOCs) are essential for improving navigation on long documentation pages. An interactive TOC enhances user experience by allowing dynamic collapsing, highlighting current sections, and smooth scrolling. This article walks you through creating an interactive TOC for Jekyll documentation using Liquid and JavaScript.

Why Use an Interactive TOC?

  • Improves user navigation on lengthy documents
  • Highlights the reader’s current section
  • Collapsible nested items save screen space
  • Supports deep linking to specific sections

Generating TOC Data with Liquid

Jekyll’s Liquid templates can parse page content headings to build a TOC structure automatically. However, default Jekyll doesn't provide a direct method to extract headings from Markdown. We typically create the TOC manually or use plugins.

Manual TOC Data with YAML Front Matter

One approach is to define the TOC structure in front matter:

---
title: "Sample Doc"
toc:
  - title: Introduction
    id: introduction
  - title: Installation
    id: installation
    children:
      - title: Requirements
        id: requirements
      - title: Steps
        id: steps
  - title: Usage
    id: usage
---

This lets you build nested TOC items easily.

Rendering the TOC

Use a recursive Liquid include to render the TOC list:

{% raw %}
    {% for item in page.toc %}
  • {{ item.title }} {% if item.children %} {% include toc_recursive.html items=item.children %} {% endif %}
  • {% endfor %}
{% endraw %}

Creating the Recursive TOC Include

Create _includes/toc_recursive.html:

{% raw %}
    {% for item in include.items %}
  • {{ item.title }} {% if item.children %} {% include toc_recursive.html items=item.children %} {% endif %}
  • {% endfor %}
{% endraw %}

Styling the TOC

Basic CSS to make the TOC nested and collapsible:

ul.toc-list, ul.toc-sublist {
  list-style-type: none;
  padding-left: 1em;
}

ul.toc-sublist {
  display: none;
  margin-left: 1em;
}

li.active > ul.toc-sublist {
  display: block;
}

a {
  text-decoration: none;
  color: #0366d6;
}

a.active {
  font-weight: bold;
  color: #005cc5;
}

Adding JavaScript for Interactivity

This script enables toggling nested TOC items and highlights the current section based on scroll position:

document.addEventListener('DOMContentLoaded', () => {
  const toc = document.querySelector('.toc-list');
  if (!toc) return;

  // Toggle sublist visibility
  toc.querySelectorAll('li > a').forEach(anchor => {
    anchor.addEventListener('click', e => {
      const sublist = anchor.parentElement.querySelector('ul.toc-sublist');
      if (sublist) {
        e.preventDefault();
        sublist.style.display = sublist.style.display === 'block' ? 'none' : 'block';
      }
    });
  });

  // Highlight current section on scroll
  const sections = Array.from(document.querySelectorAll('h2, h3, h4')).filter(
    el => el.id
  );

  function onScroll() {
    const scrollPos = window.scrollY || window.pageYOffset;
    let currentId = '';
    for (const section of sections) {
      if (section.offsetTop <= scrollPos + 100) {
        currentId = section.id;
      }
    }
    toc.querySelectorAll('a').forEach(link => {
      link.classList.toggle('active', link.getAttribute('href') === '#' + currentId);
      const li = link.parentElement;
      li.classList.toggle('active', link.classList.contains('active'));
    });
  }

  window.addEventListener('scroll', onScroll);
  onScroll(); // initial call
});

Linking TOC to Document Headings

Make sure headings have corresponding id attributes matching TOC entries, for example:

<h2 id="installation">Installation</h2>
<h3 id="requirements">Requirements</h3>

SEO and Accessibility Considerations

  • Use semantic HTML lists
  • Ensure keyboard navigation by styling focus states
  • Add ARIA attributes if needed for better screen reader support

Enhancing User Experience

  • Add smooth scrolling behavior with CSS scroll-behavior: smooth; or JS
  • Remember collapsed state using localStorage for returning users
  • Highlight top-level TOC items on page load

Summary

Building an interactive TOC in Jekyll involves combining Liquid’s templating power with JavaScript for interactivity. By organizing TOC data manually or via automation, you can offer your users a seamless way to navigate even the most complex documentation pages.

Next Steps

  • Automate TOC generation from Markdown headings
  • Integrate search with TOC for faster navigation
  • Customize TOC style to fit your brand and theme