-
-
Notifications
You must be signed in to change notification settings - Fork 9
Milestones
List of milestones and commitment for delivery at certain dates: (sorted from newest to oldest)
In order to get more people interested in Basic RUM it think that building a SaaS version is the next logical step to do that. The main point is that SaaS version will reduce significantly the onboarding time but will open room for discussion.
There will be a trial period of probably 1 month and after that users will be able to get an archive of their beacon data. I am not sure about the 1 month period but once we try it then I will have better idea.
In case the requests for the SaaS version are too many then I may stop accepting new requests or ask for a sponsorship because in reality I will pay the cost for infrastructure and this potentially may become pricey.
Check the demo here: https://demo.basicrum.com/
I completed the alpha version which honestly still looks like a proof of concept but we are getting there ;)
Now it's time to have an online demo from which we can test and gather feedback from WPO community.
Here is a list of tasks that should be finished in order to have nice and smooth presentation:
The dashboard is the first thing that the visitors will see and we all know that first impression matters when we talk about web. As I am already collecting real data from a client's website I decided to show obfuscated version of this data and display a KPI of this client.
The dashboard will have new 2 diagram on first row:
- Bounce Rate vs. Start Render.
- Aggregated number of visits in last month separated by device.
Currently the input elements/controls take very big part above the fold but actually the most important element on this page is the actual diagram. I am planning to have a dropdown area which will contain the filters. On hover this area will expand and will cover the diagram area.
There will a page which will have various filters similar to diagram builder page. When an admin filters and there a results we will have a table where the admin will be able to choose a page view that will be instantly rendered in a waterfall diagram.
We need a feedback button which after clicked shows a feedback form. The visitors will be able to write their feedback in this form but also the complete HTML of the page they see will be send to remote location in order to be able to reproduce what do they see on their screens.
At that stage we try to keep it simple and not invest much time in functionalities that are not crucial for the task that Basic RUM solves.
Below we have all the main functionalities we are going to have in our alpha version. So far a lot of things are completed in sense of showing progress but indeed this is not a good base for long term development. There is a lot of logic in controllers (a.k.a. fat controllers), there is not clear strategy how we will organize data providers and also there is unified way of how we build the diagrams (sometimes we get JSON over AJAX and we use it to generate a diagram and another time we get all the data in the HTML and the diagram is being generated with JS). We will need to cleanup the architecture and standardize how we do things in order to have clear way how features are being implemented.
It is a must to have a concept like Bounce Rate in Basic RUM. This will be one of the common business metrics that users of the system will need. We will check for sessions that have only one visit and we will mark them as bounce if they have more than one visit in certain period we will mark them as non bounced sessions. We will rely mostly on 2 DB fields navigation_timings.created_at and navigation_timings.guid
Dashboard page will be experimental and it will contain diagrams which aim is to show trends and performance changes. The idea so far is to show visits segmentation by device for last 3 months, show performance tends for current vs. previous week. Also we will have basic interface that shows waterfall diagrams for last e.g. 400 page visits.
Dashboard page is experimental but the aim is to see how it will look like when we have display the current ideas we have in mind. Later when we improve Basic RUM data query engine we will refactor and redesign Dashboard page.
For the alpha version we will have basic authentication implementation that will have exactly one master user that will have access to complete Basic RUM interface.
There will be very simple waterfall diagram that represents start time and duration. We will not show redirect, connection, ssl handshake and time to first byte. In another iteration we can extend it and show more information but so far we will keep it as it is because we want to keep less data in our DB.
In our beacons we also save the User Agent string and from this string we can extract information about device, browser and OS. We can sore this data in our database and later use it for visualization in Basic RUM user interface. We can display this information in similar way how Matomo does it.
We need to enable the user to be able to choose different options from Basic RUM UI and visualize performance metrics and decorate them in different ways. User should be able also fo filter by browser, device and OS and compare different periods. There also will be UI visualization/decoration options like checkboxes for showing median, distribution, time buckets, time range and so on.
Simple page where we have a form with calendar date picker and text input. This form will help us manually to write on which date what was released. The idea is that in other parts of the application where we generate diagrams we can use the information about releases and mark with vertical lines when a release has happened. This will be helpful to see if a performance regression was created.
A page where have visualized the website performance for last months. At X axis we will show time period (days) and at Y axis we will show the median value of performance metric. So far we will show TTFP and TTFB. The diagrams will look like:
- Aggregated for all pages and devices
- Diagrams per device
- Vertical markers that mark a release date
Simple user interface that allows Basic RUM admin to create compilation of Boomerang JS + Plugins. There will be a input field where the admin can specify and configure endpoint used by Boomerang JS to send beacon data. In order to honor Boomerang JS developers we will show links for Boomerang JS documentation. We also will have page that generates JS recipe for including Boomerang JS.
There will be a section for adding common page types e.g. product, cart, my account, checkout and so on. We will have input fields for: page type label, page url and one extra field use for condition which could be regular expression, contains or equals. The configure page types will be represented in dropdown different sections like Diagram Builder, Revenue estimator and so on.
There will be a section that will allow Basic RUM users to generate report that shows estimate about expected revenue when performance/load times get improved. There will be a table which shows estimation when we reduce time to first paint with 0.2, 0.4, 0.6, 0.8 and 1 sec. Also the graphic will show expected bounce rate when load time is improved.