Inspiration
We built FinTerminal because managing a stock portfolio shouldn't require Bloomberg terminal access or a finance degree. Most retail investors struggle to track their holdings, visualize performance, and make informed decisions. We wanted to create a tool that puts professional-grade portfolio analytics in everyone's hands.
What it does
FinTerminal is a real-time portfolio tracking dashboard that transforms how you monitor investments:
- Portfolio Dashboard: See your total invested, current value, gains/losses, and ROI at a glance
- Visual Analytics: Pie charts for allocation, bar charts for gains/losses across holdings
- Real-time Quotes: Search any stock symbol and get live pricing data
- Portfolio Management: Add, remove, and track holdings with custom cost basis
- Persistent Storage: Your portfolio saves automatically and syncs across sessions
- Demo Mode: Start tracking immediately—no API key required for testing
- Professional UI: Modern, responsive design that works on desktop and mobile
How we built it
Backend:
- Go - Fast, reliable CLI and web server
- Alpha Vantage API - Real-time stock market data
- RESTful API - Clean endpoints for portfolio and quote operations
Frontend:
- Vanilla JavaScript - No framework bloat, pure performance
- Chart.js - Beautiful, responsive charts and visualizations
- HTML5 & CSS3 - Modern web standards with custom properties for theming
- Responsive Design - Mobile-first approach using CSS Grid
Architecture:
- CLI tool with Cobra framework
- Web server with static file serving
- Portfolio storage as JSON files
- Mock data for demo mode ## Challenges we ran into Challenge 1: API Limitations Alpha Vantage's free tier has rate limits (5 calls/minute). We solved this by implementing caching in the portfolio file and adding a "Refresh Prices" button instead of auto-polling.
Challenge 2: No API Key Barrier Early on, we realized requiring users to sign up for an API key was a huge friction point. We built mock data mode so anyone can try FinTerminal immediately without setup.
Challenge 3: Chart Performance Initial Chart.js implementation was slow with large portfolios. We optimized by destroying/recreating charts on demand and using efficient data structures.
Challenge 4: Cross-browser Compatibility Getting responsive design perfect across mobile, tablet, and desktop required extensive CSS media queries and testing.
Challenge 5: Error Handling Balancing helpful error messages without scary technical jargon took iteration. We added toast notifications instead of browser alerts for better UX.
Accomplishments that we're proud of
Built a fully functional product - From concept to working web app in a short timeframe
Professional UI/UX - Modern design with charts, smooth animations, and intuitive navigation
Zero external dependencies for frontend - No React/Vue bloat, just vanilla JavaScript and Chart.js
Comprehensive error handling - Graceful failures with helpful user messages
Full test coverage - Unit tests with testify/assert for all critical functions
Demo mode - Users can try everything without signing up for an API key
Responsive design - Works beautifully on phones, tablets, and desktops
Clean architecture - Modular code that's easy to extend and maintain
Real-time updates - Live price fetching with instant portfolio recalculation
Beautiful charts - Allocation pie chart and gains/losses bar chart
What we learned
Go is powerful for full-stack - Building both CLI and web server in Go was seamless
Less is more - Vanilla JavaScript outperformed over-engineered solutions
API design matters - Clean REST endpoints make frontend development much easier
CSS custom properties are game-changers - Theming and maintenance became trivial
Testing catches real bugs - Our test suite caught edge cases before production
UX > Features - A polished feature beats 10 unfinished ones
Users hate friction - Demo mode increased engagement dramatically
Documentation is underrated - Good README and code comments saved so much time
What's next for FinTerminal
Phase 1: Foundation & Accessibility
- Refactor to production-grade RESTful API with proper versioning and documentation
- Docker containerization for one-command deployment across all platforms
- Comprehensive error handling with user-friendly messages and recovery workflows
- Enhanced demo mode with realistic historical data
- Cloud deployment guides (AWS, Heroku, DigitalOcean)
- Eliminate API key barriers with built-in default credentials for demo users
Phase 2: User Experience & Interface
- Dark mode and light mode with system preference detection
- Enhanced UI with real-time price ticker and improved notifications
- Advanced charts: candlestick charts, heatmaps, performance analysis
- Bulk import from CSV for quick portfolio setup
- Customizable dashboard with draggable widgets and user preferences
- Accessibility improvements and keyboard shortcuts for power users
Phase 3: Advanced Features & Integration
- Price alerts and watchlists for investment tracking
- Multiple data provider support (IEX Cloud, Finnhub, Polygon)
- Brokerage integration for auto-synced holdings
- Tax loss harvesting and dividend tracking
- Cryptocurrency support and portfolio analysis
- Mobile app and desktop applications for all platforms
Log in or sign up for Devpost to join the conversation.