SvelteBlog

fantasy-football-website-with-history — Svelte Blog Template

By garrett-pdx

A SvelteKit website template for Sleeper fantasy football leagues that shows current and historical season standings, matchups, records, rivalries, league lore, and supports an AI-written weekly blog.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-05View source

What stands out

A quick read of the recorded project description.

01

Current season pages read directly from the Sleeper public API, showing live matchups, standings, lineups, trades, and waivers

02

An offline Python pipeline pulls and cross-checks each season's data to generate historical pages from the first season to the present

03

Stat Lab supports sorting and charting historical games, with view state saved in the link for easy sharing

04

An AI agent can write a Monday recap and midweek preview each week, fact-checked before publishing, with articles as Markdown files

05

Generates league colors, seals, wordmarks, and icons from two colors, and includes an automatically numbered constitution page

06

Supports multiple Sleeper league formats such as redraft, keeper, and dynasty, along with playoff structures

Template Details

This template is for building a website for a Sleeper fantasy football league that includes its complete history. The current season section reads directly from the Sleeper public API, showing live scoring matchups, standings (including divisions, ties, and median games), power rankings, lineups, trades and waivers, and free agent search by depth chart position. The history section is generated by an offline Python pipeline that builds datasets: it pulls each season's data from Sleeper and cross-checks it against Sleeper records before writing, covering season pages from the first season to the present, final standings, matchup tables, championship paths, drafts and keepers, trades, and best and worst weeks.

The site also includes records and a Stat Lab (a sortable, chartable historical game lab with view state saved in the link), a Trophy Room built from hall of fame and archive facts, a head-to-head rivalry grid, manager career pages, and hundreds of factual "lore" items generated from league history. The blog is written weekly by an AI agent as a Monday recap and midweek preview, fact-checked before publishing, with articles stored as Markdown files. Visually, it supports generating league colors, seals, wordmarks, and icons from two colors, and includes a constitution page with automatic rule numbering.

The template claims to support any Sleeper league format: redraft, keeper, or dynasty; superflex, IDP, kickers, and defenses; any number of teams and playoff sizes; byes, two-week rounds, consolation games, and toilet bowls; median games, divisions, orphan teams, and leagues in their first season. Configuration is centralized in the league/ directory, engine code does not need to be modified for an individual league, and the engine can be updated via script. The site is based on SvelteKit, deployed on Vercel, and the data pipeline can be run twice a week by a GitHub Action. The league/ in the repository is a real Sleeper league demo using neutral content. The project began as a fork of League Page, is MIT licensed, and is not affiliated with Sleeper.

SvelteBlog

Is it right for your project?

Use Cases

  • Build an official website with complete historical records for an existing Sleeper fantasy football league
  • Showcase the league's standings, matchups, records, rivalries, and lore to league members in one place
  • Automatically generate weekly league recap and preview blogs with AI, reducing manual writing
  • Query and visualize historical league game data in Stat Lab, and share links to group chats

Suitable For

  • League members or commissioners who have a Sleeper fantasy football league and want to showcase its history
  • Developers familiar with SvelteKit or willing to follow the documentation and agent skills to complete configuration
  • Maintainers who need to provide Markdown content and an AI writing workflow for the league blog

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Using a coding agent is recommended: click Use this template, then provide the Sleeper league link in Claude Code, and the league-setup skill handles checking, asking questions, building data, and guiding deployment

  2. 2

    Manual setup requires running npm install and using scripts/try-league.sh to verify whether the engine supports the target league

  3. 3

    Replace the demo configuration in league/, keeping only the league ID and name, then run python3 scripts/pull-league-history.py, npm run derive-site-data, and npm run derive-narratives

  4. 4

    Run python3 scripts/sync-managers.py --photos to sync manager photos, then run npm run brand and npm run smui-theme-light to generate brand assets

  5. 5

    See docs/setup.md for detailed steps; the engine can be updated with python3 scripts/update-engine.py without conflicting with league/ content

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This listing covers the free version in the public repository under the MIT license; the free scope is the code in that version and does not mean external services or third-party assets are free.

Must comply with when using

  • You may use, modify, commercially use, and distribute the code in this version for free.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
  • Live pages depend on the Sleeper public API for data and require the target league to exist on the Sleeper platform; if the API is unavailable or the league is not a Sleeper league, live features will not work.
  • Historical page data must be pulled and built from Sleeper through the offline Python pipeline; it does not work out of the box with the template alone, and the data scraping scripts must be run.
  • The recommended setup flow depends on Claude Code's league-setup skill and guides deployment to Vercel, involving an external coding agent and the Vercel platform.
  • The data pipeline can be run twice a week via GitHub Action, meaning automatic updates depend on the GitHub Actions service.
  • The project is not affiliated with Sleeper; when using the Sleeper name and API, you must observe the relevant platform terms yourself.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

Live pages read Sleeper's public API directly.

Original README

History pages read a dataset built offline by a small Python pipeline (standard library only) that pulls every season from Sleeper

Original README

The `league-setup` skill checks your league, asks you one round of questions, builds the data, writes your league's pages, generates your colours and logo, previews everything and walks you through deploying on Vercel.

Original README

A GitHub Action can run it twice a week.

Original README

Not affiliated with Sleeper.

Original README
https://github.com/garrett-pdx/fantasy-football-website-with-history/blob/main/LICENSEhttps://github.com/garrett-pdx/fantasy-football-website-with-history/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-05. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 80 / 100
Technologies
Svelte
Website type
Blog
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-10-05
Screenshot last checked
2026-10-05

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Svelte as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: [email protected] · 2026-10-06

Inspect the recorded source material

SHA-256: ddb318884cc3fa4b60d39fac25c0f529a12bf61403741afe383859dd05e56964

2026-10-05T23:36:11.483Z

Source file / repository
<div align="center">
  <img alt="Fantasy Football Website with History" src="static/brand/wordmark.svg" width="320px" />

# Fantasy Football Website with History

**A website for your Sleeper fantasy football league, with its whole history in it.**

Live standings, matchups and rosters, plus every past season, the records, the rivalries, the
lore and a weekly blog — in your league's colours, set up from a league ID.

Live example: **[muddleague.site](https://muddleague.site)**

</div>

---

## What your league gets

- **This week:** matchups with live scores, standings (divisions, ties and median games when your
  league has them), power rankings, rosters, trades and waivers, and a free-agent search by
  depth-chart slot.
- **Every season, back to the first:** a page per season with the final table, the bracket, the
  champion's run, the draft and keepers, the trades, and the best and worst weeks — including
  seasons played before Sleeper.
- **Records and Stat Lab:** highs, lows, close calls and rankings, and a sortable, chartable lab
  over every game ever played, with the view kept in the link so it can go in the group chat.
- **A Trophy Room** with a Hall of Fame and facts from the archive; **rivalries** with a
  head-to-head grid; **manager pages** with career records and finishes.
- **Lore:** a few hundred verified facts about your league, generated from its history, for bios,
  posts and trash talk.
- **A blog** that an AI agent can write every week — a Monday recap and a midweek preview — from
  your league's own numbers, fact-checked before it publishes. Posts are just Markdown files.
- **Your league's look:** colours, a seal, a wordmark and icons generated from two colours.
- **A constitution** page built from your rules, numbered automatically.

It handles any Sleeper league format: redraft, keeper or dynasty; superflex, IDP, kickers and
defenses; any team count and playoff size, byes, two-week rounds, consolation brackets and toilet
bowls; median games; divisions; orphaned teams; and a league in its very first season.

## Set it up

**With a coding agent (recommended).** Click "Use this template", open your copy in
[Claude Code](https://claude.com/claude-code), and say:

> Set up a site for my Sleeper league: https://sleeper.com/leagues/<your league id>

The `league-setup` skill checks your league, asks you one round of questions, builds the data,
writes your league's pages, generates your colours and logo, previews everything and walks you
through deploying on Vercel. Other agents can follow the same playbooks in
[`.claude/skills/`](.claude/skills/) (see [AGENTS.md](AGENTS.md)).

**By hand.** [docs/setup.md](docs/setup.md) walks through every step. The short version:

```bash
npm install
scripts/try-league.sh <league id>              # does the engine handle your league?
# replace the demo in league/: a league.json with just your ID and name (docs/setup.md), then:
python3 scripts/pull-league-history.py && npm run derive-site-data && npm run derive-narratives
python3 scripts/sync-managers.py --photos
npm run brand && npm run smui-theme-light
npm run dev
```

## How it works

Everything about one league lives in [`league/`](league/): a config file (documented field by
field in [`schema/league.schema.json`](schema/league.schema.json)), Markdown for the home page,
the constitution and the blog's voice, manager photos, and posts. Everything else is the engine,
which you never edit for your league — so updating to a new release
(`python3 scripts/update-engine.py`) never conflicts with your content.

Live pages read Sleeper's public API directly. History pages read a dataset built offline by a
small Python pipeline (standard library only) that pulls every season from Sleeper, then checks
its own work against Sleeper's records before writing anything. A GitHub Action can run it twice
a week. The site is SvelteKit, deployed on Vercel.

This repository's own `league/` holds a demo league: a real Sleeper league with neutral content.

## Credits

Built on [League Page](https://github.com/nmelhado/league-page) by Nicholas Melhado and its
contributors, which this project began as a fork of. MIT licensed; see [LICENSE](LICENSE).

Not affiliated with Sleeper.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

CMSaasStarter

CMSaasStarter

CMSaasStarter is an MIT-licensed SaaS starter template built with SvelteKit, TailwindCSS, DaisyUI, and Supabase, with Stripe Checkout and Stripe Portal for payments.

Svelte · Admin dashboard

sveltepress

sveltepress

Sveltepress is a SvelteKit-based static site generator for documentation and blogs, with Markdown that can use Svelte 5 Runes, components, and interactive islands.

Svelte · Tool Site

sveltekit-blog-template

sveltekit-blog-template

A SvelteKit blog template that uses mdsvex for Markdown content and Tailwind for styling, with a theme referencing Tailwind's Spotlight blog template.

Svelte · Blog

sveltekit-mdsvex-blog

sveltekit-mdsvex-blog

A minimal blog template built with SvelteKit and MDsveX, written in TypeScript. It supports writing articles in Markdown with embedded Svelte components, recognizes .svelte.md, .md, and .svx files, and is preconfigured with @sveltejs/adapter-static for static hosting deployment.

Svelte · Blog

tablog-svelte

tablog-svelte

A minimalist SvelteKit blog theme that generates all content from Markdown files in /content via mdsvex, with site configuration centralized in /src/config.js. Entries with a date attribute become posts, those without become static pages, and draft: true entries are inaccessible.

Svelte · Blog

sveltekit-mdsvex-blog-template

sveltekit-mdsvex-blog-template

A SvelteKit and MDsveX blog starter for Markdown writing with embedded Svelte components, Tailwind CSS typography, tags, dark mode, SEO metadata, and Cloudflare Workers deployment configuration. Requires Node.js 22.12+ and pnpm 11.17.0; third-party demo assets need separate license verification.

Svelte · Portfolio