Skip to content

feat(analytics): add root error boundary with Plausible error tracking#366

Draft
yhabib wants to merge 3 commits intomainfrom
feat/error-tracking
Draft

feat(analytics): add root error boundary with Plausible error tracking#366
yhabib wants to merge 3 commits intomainfrom
feat/error-tracking

Conversation

@yhabib
Copy link
Copy Markdown
Collaborator

@yhabib yhabib commented Apr 2, 2026

Motivation

We lacked visibility into frontend crashes. Any unhandled render error would silently disrupt the app without any notification on our end. To address this, we added a root error boundary that captures these errors and sends a privacy-safe event to Plausible.

Screenshot 2026-04-02 at 16 30 01

Changes

  • Introduced the RootErrorBoundary class component to catch unhandled render errors and display a fallback UI.
  • Added a frontend_error event in Plausible with error_type and component properties (no user data is sent).
  • Wrapped <App /> in main.tsx with RootErrorBoundary.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 2, 2026

📊 Build Bundle Stats

The latest build generated the following assets:

dist/index.html                                           1.92 kB │ gzip:   0.69 kB
dist/assets/index-D5Qot_eu.css                          129.73 kB │ gzip:  20.46 kB
dist/assets/neuron-ChXoJwsh.js                            0.08 kB │ gzip:   0.09 kB
dist/assets/Spinner-CIW7lkn9.js                           0.58 kB │ gzip:   0.40 kB
dist/assets/useHideBalances-CV4myqSh.js                   0.61 kB │ gzip:   0.40 kB
dist/assets/numbers-Dd6EUXEV.js                           0.61 kB │ gzip:   0.37 kB
dist/assets/useTvlValue-DJ1xyfJT.js                       0.64 kB │ gzip:   0.44 kB
dist/assets/PageHeader-Cr3cEbbs.js                        0.75 kB │ gzip:   0.44 kB
dist/assets/Separator-DcLgL4_D.js                         0.77 kB │ gzip:   0.46 kB
dist/assets/CertifiedBadge-BEk53cds.js                    0.80 kB │ gzip:   0.48 kB
dist/assets/useIcpIndex-D_JpHlF9.js                       1.08 kB │ gzip:   0.63 kB
dist/assets/Switch-BaRIgDcI.js                            1.65 kB │ gzip:   0.82 kB
dist/assets/useIcpSwapPrices-DYwhkjGl.js                  1.68 kB │ gzip:   0.92 kB
dist/assets/CopyButton-DEB_ef5W.js                        1.86 kB │ gzip:   0.95 kB
dist/assets/AnimatedNumber-BtvYLDuO.js                    1.86 kB │ gzip:   1.04 kB
dist/assets/useInfiniteQueryThenUpdateCall-Dai8Ulr9.js    1.93 kB │ gzip:   0.96 kB
dist/assets/addressBook-DR9PjRl6.js                       2.82 kB │ gzip:   1.41 kB
dist/assets/ToggleGroup-BVB1IqRE.js                       3.05 kB │ gzip:   1.34 kB
dist/assets/_auth-B7B8hMPE.js                             4.07 kB │ gzip:   1.95 kB
dist/assets/useSpamFilterCanister-DZBLiRCZ.js             7.20 kB │ gzip:   3.24 kB
dist/assets/QueryStates-sYLbuYAo.js                       7.94 kB │ gzip:   2.27 kB
dist/assets/AmountInput-Bqf603CO.js                       8.14 kB │ gzip:   3.64 kB
dist/assets/index-Ct8MoxnJ.js                             8.64 kB │ gzip:   3.34 kB
dist/assets/TopicFollowingAccordion-D-MTWF-J.js           9.24 kB │ gzip:   3.77 kB
dist/assets/Input-DK4fuCAr.js                             9.40 kB │ gzip:   3.35 kB
dist/assets/types-BpmlA3HL.js                            10.70 kB │ gzip:   4.57 kB
dist/assets/index-BE9lQku0.js                            14.30 kB │ gzip:   4.54 kB
dist/assets/index-yBvJcORy.js                            23.39 kB │ gzip:   8.02 kB
dist/assets/DepositICPModal-BIug0aAI.js                  39.63 kB │ gzip:  13.87 kB
dist/assets/index-BLhf2j15.js                            40.85 kB │ gzip:  11.74 kB
dist/assets/index-DDZXppUr.js                            48.43 kB │ gzip:  14.47 kB
dist/assets/index-BkozSg6X.js                            67.04 kB │ gzip:  20.57 kB
dist/assets/vendor-md-Copevwjb.js                        89.32 kB │ gzip:  25.51 kB
dist/assets/index-BO-9zZUc.js                           121.86 kB │ gzip:  34.45 kB
dist/assets/index-PdYSYped.js                           123.24 kB │ gzip:  39.66 kB
dist/assets/vendor-tanstack-CIC1gxs0.js                 126.65 kB │ gzip:  39.34 kB
dist/assets/vendor-core-react-By6K7kM9.js               193.24 kB │ gzip:  60.69 kB
dist/assets/vendor-recharts-Bfkcf7Ne.js                 228.10 kB │ gzip:  65.93 kB
dist/assets/vendor-icp-DDh_25xG.js                      402.37 kB │ gzip: 100.06 kB
dist/assets/vendor-libs-qhDWAFjg.js                     541.61 kB │ gzip: 179.11 kB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant