Well hewwo there, you interested fella!
Wanna know more, much more about Sizy and meself? Well, you've got to the right place!
What should I start with.. probs the unwilling contributors part:
Sizy uses an amount of libraries, which licenses I haven't really checked, but since it's public-private work I should be fine until I start putting my hands in your wallet. But, THA
major all libraries:
- axios (MIT) which I use only for server-side subscription handling for now. It might go into client build, but XHR wrapper I wrote is sufficient for now.
- imagemin (MIT) da backbone of image optimization right now - it's simple, mostly without bullshit, and with a decent support for multiple types of optimizations and image formats
- imagemin-gifsicle (MIT) one of many image format plugins, current optimizator for .gif and respective gifsicle lib developer
- imagemin-mozjpeg (MIT) one of many image format plugins, current optimizator for .jp(e)g and respective mozjpeg lib developer, wow moz://a (BSD-something-something?) and the forked libjpeg-turbo . OOF, that's a lot of links
- imagemin-pngquant (MIT) one of many image format plugins, current optimizator for .png and respective pngquant lib developer
- imagemin-mozjpeg (MIT) which Sizy supports, but I don't say anywhere about it. And respective cwebp binary
- jszip (MIT) OOF, big links are donzo, and here goes zipper - lib that allows me to pack all your stuff back.
- (co)Koa (MIT) the neat and squishy node server library that lets me to not use express
- (co)Koa bodyparse (MIT) thingy that allows to hassle-free handle formdata, json, all the goodies that come from user
- (co)Koa mount (MIT) thingy that allows to hassle-free handle formdata, json, all the goodies that come from user
- (co)Koa pug (jade) (MIT) cute, concise, and functional templates, cool
- (co)Koa router (MIT) the routing solution, has it's quirks, but fairly good
- (co)Koa useragent parser (MIT) the spying tool, mua-ha-ha-ha-ha. But not really, to not use proprietary ganalytics or others (for few reasons) I've made a bit of statistics system, right now it gathers path, query params (for utm tracking), parsed useragent (string that your browser sends to every server) and time of request. No ips and any other identifying information is tracked or stored in any way, cause it's quite creepy
- mongoose (MIT) XML sitemap generator, results of its work you can check out at /sitemap.xml
- socket.io (MIT) and socket.io client (MIT) WebSockets that give you neat real-time counter of image compression progress
- Phew, the action stuff is done, but there is still a bit of tooling and just usefull stuff left
- Hm.. typing.. very nice stuff, but I won't add them right now cause I'm a bit tuckered, I might add all of them later, though. (Typings are packages that fellow human beings contributed to provide TypeScript support for other libraries)
- concurrently (MIT) cli stuff that allows to execute multiple commands in parallel independent of OS
- croess-env (MIT) another cli thingy that allows to set ENV variables for node process independent of OS
- (MIT) to delete all that spyed data I've gathered, mua-ha-ha-ha
- gulp (MIT) *gulp-gulp* ah...
- (ISC, woo, new one) sourcemaps for stylus (and others)
- gulp-stylus (MIT) handler for gulp and stylus itself (MIT)
- gulp-typescript (MIT) typescript handler for gulp, cause tsc itself kinda can't handle my directories setup with common code between client and server, but it turned out that nothing can, and I just left it cause it makes build one cli shorter
- nodemon (MIT) nice dev mode node runner-relader-watcher, cool
- ts-loader (MIT) webpack loader for client-side typescript, yeya
- typescript (Apache License 2.0, brr) the one and not only Microst™®'s TypeScript
- webpack (MIT) THE ONE and ONLY webpack!11! Pretty neat tool for "compiling" js and stuff into bundles, cuule
- webpack-bundle-analyzer (MIT) thingy I've used to check why my LOAD was so HUGE that one time
- webpack-cli (MIT) webpack webpacker
- And that's it. Oof, that was a journey, pretty cool one too
You also can check (manually updated and stripped) package.json
You might ask - why bother listing everything? Cause why not ¯\_(ツ)_/¯. It doesn't hurt, but the work of all people contributing to all those packages and libraries helped to create Sizy in meaningfull amount of time. And it's just a right thing to do, even if it takes an hour to check all the links, licenses and wrap it all up.
Also you might have noticed that there's not that much client libraries - why? Cause I wrote most of the code meself, cause the base client-side stuff is:
- data Traversers for "drop"-ed and "input"-ed images - Entry and File respectively - code pieces that traverse, hence the name, your file system to find
valuable private dataimages and add them to
- FileTree - the main attraction of Sizy's main page preview-gallery-processor-reporter view of the service with
- ProgressReporter - the counting thingy that's shared between client and server, it tracks keyed progress report "streams" - keyed means it doesn't reset when new task report needs to be started, instead adding another tracker with respective key
- and XHR "client" - pretty basic AJAX client that follows general axios interface in case I'll want a bit more functionality and swap it output
- plus jQuery-like Wrapper that provides basic DOM manipulation and update
And that's kinda it. You now know all the jizz I've spilled over Sizy, wanna know even a bit more, or maybe need some help with anything I've covered above? Write me up, I might not answer, though, but you are always free to try