๐ฉ 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) 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.jsor a dozen Vite plugins. One JSON block,inandout, 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
reactorpipeline'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.