-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Description
🚀 Performance Optimization Initiative
Summary:
User perception of application speed is critical for overall experience. There’s a noticeable gap between sub-second and 1+ second load times, especially on the Cardano GovTool. We should make performance a priority for both user satisfaction and future scalability.
Action Items
1. Address Frontend Performance Bottlenecks
- Review and resolve major issues reported by Lighthouse, especially those impacting LCP, FCP, TTI, and CLS.
- Optimize asset loading, code splitting, and reduce JS/CSS bundle sizes.
- Investigate lazy-loading and defer non-critical resources.
2. Caching & Pre-rendering
- Implement caching, pre-rendering, or server-side rendering (SSR) wherever applicable.
- Consider static generation for pages/data that do not change often.
3. API Response Caching
- Cache API responses wherever possible to avoid redundant computations.
- Explore HTTP cache headers, CDN caching, and in-memory caches for frequently accessed endpoints.
4. Background Aggregation & Pre-computation
- Offload heavy aggregations and stats generation to background jobs/workers.
- Pre-compute and store network/chain stats at regular intervals.
5. Prefer Memory/Storage over Real-time Compute
- Where feasible, cache or pre-calculate results (even periodically) rather than on-the-fly.
- Use background jobs for periodic updates of costly computations.
Cardano GovTool Specific Suggestions
-
Governance Actions:
- Few in number; precompute details/stats and update every 10–20s (block time).
-
DRep Data:
- DRep stats/details can also be precomputed and refreshed regularly.
-
Regular User States:
- Cache regular users’ last known state (voting power, actions, votes, etc.) and show immediately on load.
- Update data in background when new info becomes available.
-
Non-Wallet connected Pages:
- Precompute and update all public data each block period (10–20s).
- Serve instantly from cache—current data volume is manageable.
Goal:
Achieve perceived sub-second load times for core user interactions, minimize time-to-interactive, and deliver a smooth, modern user experience.
Let’s discuss prioritization and implementation steps in this thread!
bosko-m
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
No status
Status
No status