Technical lessons learned
Let’s start with a technical review of the project LevelUp. You can think of this as part 3 with part 1: OAuth 2 and part 2: Building a MEAN foundation.
Things I learned
- Angular
- Filters
- Controllers
- Services and Factories – reusable interface with backend
- Directives – creating usable HTML components
- Dependency Injection
- Integrating Angular components including D3: nvd3 for graph visualisation
- Angular material
- Git – branching, merging, deleting local branches, pushing to remote branches
- Data structures
- Callback functions – I’ve a much better understanding of callbacks, clientside (recalculating stats following xhr calls) and serverside (wrapping api requests to authorise calls)
- Deploying to Heroku
- Local and Production environment variables and config
Things I need to learn
- Frontend build processes and tooling
- Minification
- CSS preprocessing
- Transpiling TypeScript, ES6, ES7 to cross browser code
- Testing
- Running automated test scripts. I’ve mentioned this in a previous post, I must buckle down on this area.
The business model
Will LevelUp make any money? Let’s consider some common internet business models; ads, subscriptions, and donations. I think generic ads will take away from the experience but perhaps affiliate marketing with people in the self development industry may convert – it’s a maybe but I say that while running Adblock and uBlock simultaneously. Second let’s consider subscriptions. This would require placing some sort of restriction or adding some premium feature which doesn’t currently exist. Perhaps a free plan can include 10 goals and 30 actions, the next tier up $5/mo for 30 goals and 60 actions, etc. There’s some merit to this idea; superusers with many goals are likely to be those that are benefitting from the app and are willing to pay. Imagine someone who takes LevelUp to a job interview and shows the interviewer what they’ve been actively focussed on over the past 3 months – backing up anecdotes with quantitative fact. That impact of impression is worth the subscription. Finally, donations. Considering the minuscule donations open source contributors receive from the general public, I’d give this a miss.
The winner: subscription based business model based with free and payed tiers differentiated by the number goals and actions. This suggestion‘s been raised on Github. From a developer perspective, programming in subscription payments with something like Stripe is a good step into e-commerce and payment processing, though it’ll likely entail significant work. Stay tuned to see LevelUp becomes a success.