Sherlock: Writing a Single-Page Application in 2016
Building a Bitcoin wallet SPA with Redux — exploring real-world challenges with React and state management
Originally published on Medium.
I’ve been working with single page applications for the better part of my career. After a couple of months writing React-based SPAs, I felt parts of my workflow had become painfully inefficient, leading me to explore Flux and Redux.
Key Challenges
I compiled a list of real-world concerns when implementing Redux:
- Route management, history, and navigation
- Handling asynchronous user input with server feedback
- Efficient initial state loading
- Error handling and partial data retrieval
- App state debugging and reproducibility
- User session management
- Production deployment optimization
- Component modularity and testability
- Development workflow improvements
Project Exploration
I researched existing Redux projects including react-redux-starter-kit, sound-redux, and react.rocks to understand best practices before beginning my own implementation.
Building Sherlock
Inspired by Bitcoin and the Bitcore playground, I created “Sherlock,” a Bitcoin wallet application showcasing Redux patterns. The project demonstrates route management using redux-simple-router and async button state handling.
Development Experience
Hot module replacement and time-traveling debugging capabilities were excellent. While React error messages needed improvement, Redux DevTools provided valuable development support. I plan continued feature development with contributions welcome.