Use with WordPress, Laravel, Rails, Django…
Poops does not own your project. It reads input paths and writes output paths — so it slots in as the front-end asset toolchain for any server-side framework. Your framework serves the pages; Poops builds the CSS and JS.
The pattern is always the same: keep your sources somewhere sensible, and point out at wherever
your framework serves static assets from.
WordPress
Build into your theme directory:
{
"scripts": [
{ "in": "assets/js/theme.ts", "out": "wp-content/themes/mytheme/js/theme.js",
"options": { "minify": true, "format": "iife", "target": "es2019" } }
],
"styles": [
{ "in": "assets/scss/theme.scss", "out": "wp-content/themes/mytheme/css/theme.css",
"options": { "minify": true } }
],
"watch": ["assets"],
"livereload": true
}
Then wp_enqueue_style/wp_enqueue_script the built files from your theme. Skip Poops' markup
key entirely — WordPress renders the HTML.
Laravel
Replace Vite/Mix for simple projects. Build into public/:
{
"scripts": [
{ "in": "resources/js/app.ts", "out": "public/js/app.js",
"options": { "minify": true, "format": "iife", "target": "es2019" } }
],
"styles": [
{ "in": "resources/scss/app.scss", "out": "public/css/app.css",
"options": { "minify": true } }
],
"watch": ["resources"]
}
Reference them with asset('css/app.css') in your Blade templates.
Ruby on Rails
Build into app/assets/builds/ (or public/) and let the asset pipeline or propshaft pick them
up:
{
"scripts": [
{ "in": "app/javascript/application.ts", "out": "app/assets/builds/application.js",
"options": { "minify": true, "format": "esm", "target": "es2019" } }
],
"styles": [
{ "in": "app/assets/stylesheets/application.scss", "out": "app/assets/builds/application.css",
"options": { "minify": true } }
],
"watch": ["app/javascript", "app/assets/stylesheets"]
}
Django
Build into a static/ directory that collectstatic will gather:
{
"scripts": [
{ "in": "frontend/js/main.ts", "out": "myapp/static/js/main.js",
"options": { "minify": true, "format": "iife", "target": "es2019" } }
],
"styles": [
{ "in": "frontend/scss/main.scss", "out": "myapp/static/css/main.css",
"options": { "minify": true } }
],
"watch": ["frontend"]
}
Load them with {% static 'css/main.css' %} in your Django templates.
Tip
Run poops (no -b) in a second terminal during development for a watch + LiveReload loop
while your framework's own dev server serves the app. Use poops -b in your build/CI step.
Warning
When you use Poops purely as a bundler, drop the markup, serve and (usually) copy keys.
Let the framework handle routing, HTML and static file serving — Poops only produces the asset
bundles.
Info
The same approach works for Rails/Django/Laravel or anything else: Symfony, Phoenix, Express, Hugo, plain PHP. If it serves files from a folder, Poops can fill that folder.
Next: PostCSS & Tailwind.