Risa Morishita🕒📗

Learn how to turn your online presence into a lead-generating machine

    What Happens When You Build Two Identical Jekyll Sites: One Forked, One Cloned?

    Can the Same Jekyll Site Behave Differently Depending on How It Was Started?

    We ran an experiment: take the same Jekyll theme — Mediumish, for example — and build two identical sites from it. One is created by forking the original repository. The other is created by cloning the same repository, stripping away the GitHub fork relationship entirely.

    The content, layout, and structure were the same. But the development experience and performance over time were surprisingly different.

    Experiment Setup: Fork vs Clone

    1. Forked Version

    • Forked directly from the theme author’s GitHub repository
    • Deployed using GitHub Pages with default settings
    • No major changes to structure, just minor text edits

    2. Cloned Version

    • Cloned the same original repository using git clone
    • Pushed to a brand-new GitHub repository with no fork link
    • Added a custom Gemfile, plugin support, and structured layout changes
    • Deployed via Netlify with custom build commands

    Key Metrics We Observed

    Category Forked Site Cloned Site
    Build Environment GitHub Pages default Custom Jekyll + plugins
    Plugin Support Restricted Unlimited
    Initial Setup Time ~5 minutes ~15 minutes
    Customization Flexibility Low High
    SEO Meta Configuration Basic only Full schema.org, Twitter cards, and Open Graph
    Build Time ~25 sec ~9 sec (via Netlify cache)
    Deployment Preview Manual testing only Automatic preview for each pull request
    Theme Updates Needs upstream pull or sync Manual or modular copy/paste updates

    What Broke in the Forked Site Over Time?

    Over several weeks, the forked site began experiencing small but persistent problems:

    • Theme version drift: Upstream had breaking changes in layout includes
    • Pull request merge conflicts: Our custom layout changes clashed with upstream CSS refactor
    • GitHub Pages plugin changes: Some third-party embed features were removed

    In contrast, the cloned version remained stable because we controlled every aspect of it. No surprises, no broken layouts.

    Advantages Discovered in the Cloned Setup

    1. Full Environment Isolation

    The cloned project could run locally or on any CI/CD platform. This enabled advanced testing, offline dev, and preview deployments.

    2. Optimized SEO

    We integrated jekyll-seo-tag, JSON-LD schema, custom sitemaps, and even Google Search Console ownership tags — all easily done in the cloned version with no upstream limits.

    3. Better Control over Assets

    In the clone, we could load assets with lazy loading, minify CSS, and bundle JavaScript. The fork was harder to adapt without disrupting upstream logic.

    4. CI/CD Support

    Each commit in the cloned version triggered automated builds, tests, and deploy previews. This made collaboration and debugging 10x more efficient.

    When Forking Still Makes Sense

    We still found valid use cases for forking:

    • Learning and experimentation: Ideal for first-time users exploring Jekyll themes
    • Demo or prototype sites: Quick to launch and show to clients or test ideas
    • Contributing to the original theme: If your goal is to improve the original theme itself

    But as soon as we wanted full control, flexibility, and longevity — the cloned project was the only viable option.

    Final Takeaway: Same Theme, Two Realities

    The same Jekyll theme can behave very differently depending on how you initialize your project. Forking gives you speed, but ties your hands later. Cloning gives you freedom, but demands more setup and ownership.

    If you plan to grow, customize, migrate, or scale your Jekyll site, starting with a cloned setup is the smart long-term move.

    What Should You Do Based on This Case Study?

    • If you’re already on a fork and plan to go long-term, consider refactoring into a clone
    • If you’re starting a production site — clone instead of fork
    • Document your config, dependencies, and build pipeline from day one
    • Integrate a preview deploy platform (Netlify, Cloudflare, etc.)

    Your Jekyll project isn’t just HTML. It’s a system — and how you start that system determines how well it grows with you.

    Comments

    Labels


    © . All rights reserved.

    -