Slowfin
Side project - Full stack with cloud hosting exploration
Project Overview
This project started out with a curiousity to build something full stack with .NET backend and cloud computing. It began with making a small terminal C# application to build a portfolio with data from yahoofinance and then calculate the returns over a historical timeframe. This then expanded into a full stack app that focused on slow finance that would not feel to overloaded with multiple graphs, numbers moving like a trading dashboard. Instead i wanted to focus on metrics useful for the slow investor with features like allocation, total returns, market comparison and how it may develop forward in time.
Technical Implementation
The platform separates frontend and backend to work within Azure´s strict free tier constraints. The backend runs ASP.NET Core 9.0 with EF Core and SQLite on Azure App Service´s F1 tier, limited to 60 minutes of daily compute and 1GB RAM. The frontend uses Vue 3 with TypeScript and deploys separately to Vercel. This split was essential to keep cost at a minimum. It was solved with aggressive caching strategies (24-hour for market data, 30-minute for individual stocks) and SQLite´s lightweight design keep the backend within compute limits, while Vercel´s CDN handles all frontend delivery without touching Azure resources. The architecture enabled completely free deployment with GitHub Actions CI/CD. Learning Vue from scratch and working deeper with .NET than before meant designing around real constraints, which actually pushed the project to be leaner and more focused on features that actually made sense.
Project Development & Impact
I always feel like limitations is a good thing to always come up with good and thought out solutions which i feel was demonstrated many times when developing this project. It was a good learning experience, both to get into Vue which i really enjoyed as well as diving further into .NET backend. Both felt to result in a very quick experience (once azure boots up). Coming from React projects to working with Vue was nice as the small size made it easy to develop and matched well to land within compute limits. It was also very cool to see the chart update in realtime with Vues reactivity system.
Improvements: Upgrading to B1 tier would remove all computing constraints and allow for simpler deployment with docker, better concurrency with azures sql or cosmos database and distributed caching with redis and essentially remove the need for workarounds in regard to limitations. This upgrade would allow much cleaner scaling and development.