let's give webassets a try: it's a dependency hell (I highly doubt this will be shipped with web2py).
However, contrib module are made for those kind of things. Shallow first analysis according to http://elsdoerfer.name/docs/webassets/builtin_filters.html JS: - rjsmin (strips just newline and whitespaces) - yui_js (needs yuicompressor, hence a python module and java) - closure_js (needs closure, hence a python module and java) - uglify_js (needs uglify binary in path, hence node.js) - jsmin (needs jsmin, hence a python module, does pretty much the same thing as response.minify_js) - jspacker (included) CSS: - cssmin (needs cssmin, hence a python module, does pretty much the same thing as response.minify_css) - cssutils (same as before) - yui_css (same as for js) - clean_css (node.js required) - slimmer_css (needs slimmer, hence a python module) compilers - clevercss (needs clevercss, hence a python module) - less (needs less by node.js or ruby) - sass (needs sass from ruby) - scss (same as ssas) - compass (same as ssas) - pyscss (requires a module) - stylus (node.js required) - coffeescript (node.js required) gzip - done by scripts/zip_static_files.py sprites - requires spritemapper I skipped over js templates generators and jinja2 for obvious reasons. So, basically, you'd have a "python only" functionality slighthly better than the one currently included in web2py with: JS: no such thing CSS: no such thing compilers: clevercss and pyscss sprites: spritemapper All the others features are not "python modules": they are just smart wrapper around the command-line arguments of each binary. Now, let's talk about what functionality do you miss in web2py.... is it just something like "edit the less file in static/less/file.less and have it recompiled as /static/css/file.css" ? --