No results

    Search failed

    npm GitHub

    ๐Ÿ’ฉ Poops

    Poops is a straightforward, no-bullshit bundler for the web โ€” and a bit more than that. On the surface it takes input and output paths and poops out bundled files. Underneath it is three tools in one:

    • a bundler & transpiler for JavaScript/TypeScript and SCSS/Sass,
    • a PostCSS pipeline (so Tailwind and friends work),
    • and a Jekyll-inspired static site generator with templating, collections, images, search and navigation.

    If you have ever fought Webpack config, watched Rollup plugins rot, or wondered why a "simple" setup needs fifteen dependencies โ€” Poops is the antidote. One JSON config, sane defaults, minimal learning curve.

    Tip

    In a hurry? Jump to the Quick Start and have something building in a minute.

    Why another bundler?

    Gulp is abandoned. Parcel hates config files. Rollup and Webpack are heavy for simple tasks. Poops exists to do one boring thing well: give it an in and an out, get bundled files back. It leans on the fastest tools available โ€” esbuild for JS/TS and Dart Sass for styles โ€” and stays out of your way.

    What it is

    Poops is a Jekyll-inspired static site builder. Like Jekyll, you write templates and content, drop in some front matter, and get a static site. Unlike Jekyll, it is also the bundler for your JS and CSS, it runs on Node, and it uses modern transpilers under the hood.

    You configure everything in a single poops.json (or ๐Ÿ’ฉ.json) file. Each top-level key is a pipeline you can opt into or ignore:

    Key What it does
    scripts Bundle & transpile JS/TS/JSX/TSX with esbuild
    styles Compile SCSS/Sass with Dart Sass
    postcss Run a PostCSS pipeline (Tailwind, Autoprefixer, โ€ฆ)
    markup Generate HTML from Nunjucks/Liquid/Markdown templates
    reactor Pre-render React components to HTML at build time
    images Optimize & generate responsive image variants
    copy Copy static files into the output
    serve / livereload / watch Local dev server with live reload

    Note

    Everything is optional except that you need at least one of scripts, styles, postcss or markup. No input, no poop. ๐Ÿ’ฉ

    What it is not

    Poops is not a plugin ecosystem. There is no plugin API to learn, no poops.config.js with callbacks. If a feature isn't built in, you compose it from the pipelines above (for example, PostCSS for Tailwind), hang a shell command off a stage with exec, or you contribute it. That constraint is the point โ€” the config stays small and readable.

    Who it's for

    Poops is a niche tool, not a general-purpose framework. It earns its keep in three spots:

    • The anti-config build. A marketing page or a couple of static templates with some SCSS doesn't need a webpack.config.js or a dozen Vite plugins. One JSON block, in and out, done.
    • Design-token-driven micro-sites. Poops reads the W3C DTCG format natively and turns Figma-exported token JSON into SCSS variables โ€” no separate Style Dictionary or Gulp pipeline. Useful for design-system docs and standalone component libraries.
    • Static sites with just enough React. Write the site in Nunjucks or Liquid, then drop in one or two interactive React components (a calculator, a filter UI) via the reactor pipeline's zero-config SSR and hydration. SEO-friendly HTML, without the footprint of a full React framework.

    Where it has zero value

    • Large SPAs. No React Fast Refresh, no granular code splitting, no plugin ecosystem. Reach for Next.js or Vite instead.
    • Non-React component frameworks. Vue, Svelte, Solid โ€” not supported, not planned.
    • Mission-critical enterprise infrastructure. Poops is maintained by one person as a side project. That's fine for a brochure site; think twice before betting production revenue on it.

    Note

    If you're not sure whether Poops fits, the litmus test is size: small static site or design system docs, yes; full application, no.

    Row by row against the alternatives โ€” Vite, webpack, Rollup, Parcel, Jekyll, Eleventy, Astro, Hugo and Next, including the rows Poops loses: Comparisons.

    Install

    Globally:

    npm i -g poops

    or per-project:

    npm i -D poops

    Tip

    For the fastest possible start, clone the template repo ๐Ÿ’ฉ๐ŸŒช๏ธ Shitstorm and start editing.

    Ready? Head to the Quick Start โ€” and when the site builds, publish it on GitHub Pages.