Update: All set to welcome new users onboard. Book a slot on my calendar here.
I’ll be using this thread to share updates on how the new release is progressing. Since this is a complete rebuild, providing an accurate release date is tricky. Instead, I’ll show you what’s been done and what’s left below.
Backend / Application Logic
Model the Database backend
Migrate from MongoDB to SQLite for performance
Compute Cost Basis for portfolio (so you can easily track P&L over time)
Recursively apply corporate actions to a stream of orders, in order to arrive at the final portfolio composition. Validate this against positions held in Alpaca. This was preventing us from adding Dividend Re-investment (DRIP) support
Portfolio performance charts. (This was a big one!). Essentially had to replay entire portfolio history, retrieve historical prices for every stock and calculate market value on every trading day. Really happy with how this turned out. Also, it’s blazing fast thanks to our switch over to SQLite.
Sync Listed Assets from Alpaca (with Shariah compliance data)
Setup worker for recurring investments
Setup logic for queuing automated actions
Setup logic for tracking all actions in the Activity Log
Draft emails for automated trades (Non-compliant stocks, Liquidations due to fund updates, Rebalances, Recurring Investment summary)
Port over Shariah compliance tracking, syncing and auto-liquidation [Attempt to] migrate existing portfolios and accounts over. Fallback: create a “Migrated Fund” for all existing positions, and copy over existing portfolios as-is.
Add User authentication (login/sign up)
Allow users to add any stock/fund as a benchmark (for Portfolio/Filtered Fund charts)
Implement Filtered Holdings table
Implement Activity Log
Implement Fund Investing flow
Implement Fund Withdrawal flow
Edit Fund Settings dialog
Setup PWA for ease of access on mobile
Add error tracking using Sentry
Collect logs centrally using Datadog
This is not a comprehensive list. If I’ve forgotten something, I’ll be adding to the list above.
Cautious of committing to doing this because (a) there are attribution errors in old portfolios, which means not all fund orders are linked to their corresponding funds, resulting in incorrect performance figures, and (b) previous portfolios will not support the newly introduced Activity Log.
Will revisit prior to launch. If this doesn’t get implemented then, we’d lump up all of previous funds into a single fund (e.g. “Migrated Funds”) and keep them alongside newly created funds. Of course, you could just sell all your positions and re-invest in new funds too, but that may have tax implications.
Held up past several days trying to get the build working and deploying the app. It’s been a real test of my patience, and I’m still working through the last bits. Hoping to have that resolved before the end of this week. Will then work on some UI polish and plan to release by next week inshallah
Added support for calculating Realized / Unrealized Profit & Loss (This uses the average cost basis method). I added this after noticing that there were a bunch of closed positions with 0% weights that still showed Profit/Loss. This was super confusing, so adding the extra column to show the breakdown makes much more sense to me.
Resolved all outstanding issues with server deployment issues (hats off to @khajimatov on Twitter for helping me out with this)
Currently working on the migration of existing portfolios to a single “Migrated positions” portfolio, which I hope to have wrapped up by today inshallah.
Completed migration of all prior funds over to the “Migrated Fund” for each user. Will re-run this right after we switch off the old platform and move the early testers (you guys!) over to the new platform. Shooting for end of this week, possibly early next week.