A practical guide to your next frontend feature launch
A handy list that evolved from what started off as personal drafts iterated over many, many feature launches though the years. A few of these are unforgettable yet some aspects of these truly have a gift of sneaking up on projects.
- Authentication: Who can access this page or feature? Is it limited to logged in users, paid members, or internal staff only? Where should the rest be redirected to? (sign in, 404, etc.) What is the fallback option?
- Routing: What is the URL? Is the new page restricted to users in an experiment group and if so, where should the control group get redirected?
- State/Data management: What are all the entry points for this page? Can it rely on data passed in solely from a previous state, or can a user land on this page directly via URL?
- Cache: Will the cache need to be invalidated? For example, when a user converts to member, we update the cache for user status to be reflected correctly across the app.
- Performance: What components are taking the longest time to render? Does useCallback or useMemo fix the issue? Is code splitting and lazy loading a good fit here, while maintaining the user experience? What is the experience like on a slow network? Chrome DevTools has an option to faux throttle your network to check this out. Sometimes, even just a loading indicator can improve the experience.
- Accessibility: Do elements have semantic html, appropriate aria properties and alt tags?
- A/B test: Which parts of this do we want to A/B test?
- Responsive: Does it scale across multiple screen sizes? Does the typography scale down well for smaller screens? Should some links on mobile web navigate to native app?
- Print view: Is this something that’ll likely be printed? What print specific CSS does it need?
- Browser testing: Is it cross-browser compatible? Especially good to test when dealing with external scripts or building new design components.
- Tracking: What metrics do we want to track? Page views, button clicks, etc.
- Monitoring: How will be monitor issues after launch? Apart from tracking, do we have logs and alerts in place?