Poops: Web Bundler and Static Site Generator

1.2.2 · active · verified Tue Apr 21

Poops is a straightforward, no-bullshit bundler and static site generator for web projects, currently stable at version 1.2.2. It leverages highly efficient tools like esbuild for JavaScript/TypeScript/JSX/TSX bundling and transpilation, and dart-sass for SCSS/SASS to CSS compilation. The package also integrates PostCSS for advanced CSS processing, including Tailwind CSS support, and offers design token integration (W3C DTCG & Style Dictionary). For static site generation, it supports swappable template engines, Nunjucks (default) or Liquid, with features for blogging, pagination, RSS/Atom/JSON feed generation, and React pre-rendering (Reactor). Poops prioritizes an intuitive, minimal-learning-curve approach, primarily driven by a simple JSON configuration file. Releases appear to be frequent, with minor versions rolling out new features and fixes every few weeks.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates local installation, a basic `poops.json` configuration for bundling JavaScript, Sass, and Liquid templates, and how to execute the build command.

npm i -D poops

// poops.json in your project root
{
  "scripts": [
    {
      "in": "example/src/js/main.ts",
      "out": "example/dist/js/scripts.js",
      "options": {
        "sourcemap": true,
        "minify": true,
        "justMinified": false,
        "format": "iife",
        "target": "es2019"
      }
    }
  ],
  "styles": [
    {
      "in": "example/src/scss/main.scss",
      "out": "example/dist/css/styles.css",
      "options": {
        "sourcemap": true,
        "minify": true,
        "postcss": [
          "tailwindcss/nesting",
          "tailwindcss",
          "autoprefixer"
        ]
      }
    }
  ],
  "markup": [
    {
      "in": "example/src/markup/index.liquid",
      "out": "example/dist/index.html",
      "data": "example/src/data"
    }
  ]
}

// In your package.json scripts:
// "build": "npx poops"

// Run the build:
npx poops

view raw JSON →