Echo JS 0.11.0

<~>
nagyadam2092 2038 days ago.
We have a lightweight tracker which can send events. Our current stack is Grunt/Browserify and Snowplow. I have the chance to rewrite the whole tracker, but I’m a bit lost what tech stack to use. The requirements include to be as small as possible and to be able to support old browsers like IE8. I would like to use ES6 / TypeScript, but I’m afraid e.g. Webpack will blow up my bundle size which is not acceptable. Do you have any suggestions for setting up such an environment?

tracker1 2037 days ago. link 1 point
I would, frankly question the need for any version of IE at this point...  The extra overhead is significantly higher for supporting anything that isn't a modern browser, Edge, Chrome and Firefax update regularly (what is your userbase).  I'm working on a Government project of all things and the cutoff we went with is browsers supporting async functions (es2017).  A lot of polyfills for everything from generators/async to fetch are just eliminted by that.  ymmv. Supporting IE8 will blow up your bundle size with many polyfills and transforms if you want to use modern JS.

I have a modern app set for es2017+ browser with webpack, babel, react, redux, material-ui and more.  The main bundle is 156k gzipped[0].  If you want more lightweight, you could use a different UI kit, and use inferno. Alternatives include Vue, but the two apps I've been involved with using it I haven't cared for either. All said, 160K for JS + CSS + Controls isn't so bad.  It's not as lightweight as you can get, but it's a pretty rich feature set.  If you look at the core-js section, if you include IE8, it will be *MASSIVE*

If you work at it, and don't need routing, or fancy controls, etc... you can pretty readily create a bundle that's under 30k.


[0] https://imgur.com/a/CSvjNrb
misan 2038 days ago. link 1 point
Hello. 

Tracker? Send events?
You should be more precise about your product.
snowplow is a library to do analytics with their software.

What kind of tracker do you have and what events do you need to send?

Is it a complex logistics tracker of packages and you need to send push notifications? Be more concrete. The specific the better.

Is it a single page application? progressive web app? mobile hybird app?  What are the requirements.
You can slap any framework against any problem, but to really know your problems would be nice to be able to help.
Otherwise, pick what you want. Vue, React whatever. Both have good generation CLI tools to quickly get started. With the least amount of configuration setup required.
nagyadam2092 2038 days ago. link 1 point
Hello.
Our tracker is used on various e-commerce sites for user behaviour tracking.
It can be used in SPA-s, but it's nor really important. Usually you can send events like a user viewed a product or put an item into the cart.
We are having some logic for sending out these events to our services by using the javascript tracker version of snowplow.
I mentioned we have to support IE8 but I can elaborate on that one: basically web ecommerce sites will use that tracker so we have to makse sure as much browsers are capable of using it as possible.
Hope my answer was specific enough.
misan 2025 days ago. link 1 point
You have different software to manage this.

1. the tracker script to embed into pages
2. the backend to digest the data and sort into the right storage per user.
3. the dashboard/app to look at collected data.

1: is just a little bit of javascript, no framework or stack needed, except for snowplow, to actually collect the data
2. you could use anything you are comfortable with, but for http routing with per-user authentication you could use nodejs, express, passport and db of your choice: nosql: mongo/mongoose or for sql: postgres or mysql with knex/bookshelf.
3. Use whatever you want to, react, vue or if you must angular.
There are good component presets like quasar.
nagyadam2092 2038 days ago. link 1 point
We have a lightweight tracker which can send events. Our current stack is Grunt/Browserify and Snowplow.
I have the chance to rewrite the whole tracker, but I’m a bit lost what tech stack to use.
The requirements include to be as small as possible and to be able to support old browsers like IE8.
I would like to use ES6 / TypeScript, but I’m afraid e.g. Webpack will blow up my bundle size which is not acceptable.
Do you have any suggestions for setting up such an environment?
sbruchmann 2038 days ago. link 1 point
[Moderation note: I've updated your submission, but I'm not able to remove your comment, would you mind removing it? Thanks in advance.]
nagyadam2092 2038 days ago. link 1 point
I'm not sure, but I think I can't delete my comment either (there should be a delete button, right?)
sbruchmann 2038 days ago. link 1 point
Usually, you'll have to click _edit comment_ and remove all the text to delete a comment, but there's a limited time period to edit one's comment.

For now, don't worry about it. Your goal was to Ask EJS, and you did ask us indeed. :)
nagyadam2092 2038 days ago. link 1 point
Yikes, sorry, didn't want to go against the rules, next time I'll keep an eye on it.
Thanks for helping!