New Release: Progress Tracker (✅ Done)

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.

Plan

Backend / Application Logic

:white_check_mark: Model the Database backend
:white_check_mark: Migrate from MongoDB to SQLite for :fire: performance
:white_check_mark: Compute Cost Basis for portfolio (so you can easily track P&L over time)
:white_check_mark: 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
:white_check_mark: 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.
:white_check_mark: Sync Listed Assets from Alpaca (with Shariah compliance data)
:white_large_square: Setup worker for recurring investments
:white_check_mark: Setup logic for queuing automated actions
:white_check_mark: Setup logic for tracking all actions in the Activity Log
:white_check_mark: Draft emails for automated trades (Non-compliant stocks, Liquidations due to fund updates, Rebalances, Recurring Investment summary)
:white_check_mark: Port over Shariah compliance tracking, syncing and auto-liquidation
:white_check_mark: [Attempt to] migrate existing portfolios and accounts over. Fallback: create a “Migrated Fund” for all existing positions, and copy over existing portfolios as-is.

UI

:white_check_mark: Add User authentication (login/sign up)
:white_large_square: Allow users to add any stock/fund as a benchmark (for Portfolio/Filtered Fund charts)
:white_check_mark: Implement Filtered Holdings table
:white_check_mark: Implement Activity Log
:white_check_mark: Implement Fund Investing flow
:white_check_mark: Implement Fund Withdrawal flow
:white_check_mark: Edit Fund Settings dialog
:white_large_square: Setup PWA for ease of access on mobile

Operations

:white_large_square: Add error tracking using Sentry
:white_check_mark: Collect logs centrally using Datadog

This is not a comprehensive list. If I’ve forgotten something, I’ll be adding to the list above.

1 Like

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.

Completed 19 July, 2023

2 Likes

Would the “Migrated Funds” account be just for information purposes or can we select it to invest in it?.. then again that may not be very smart given that it doesn’t integrate with the Activity Log

Not sure yet, but I guess they’d be liquidation only. You can sell existing positions, but won’t be able to invest more in it.

Completed 22 July, 2023

Progress is looking good. Excellent job!

Is it possible to provide some sort of move functionality where we clone the old fund setup, and a move button would sell existing positions and re-invest the money into the new/cloned fund?

1 Like

Thanks!

Yes, you can selling the “Migrated Fund” in 1-click, and liquidate all your existing positions

Yes, I see how that’d be useful. Will create copies of the old funds so you can invest the resulting cash without having to re-create the funds yourself.

Thanks for the suggestion!

1 Like

Completed 23 July, 2023

1 Like

Completed 24 July, 2023. (Still finalizing the email format for notifications of automated trades, but the bulk of the work is done.)

1 Like

Completed July 27, 2023

1 Like

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

Thank you for all of your hard work! Looking forward to the release!

1 Like

Thanks alot Atif, appreciate your unrelenting encouragement :pray:

Looking forward to it inshAllah!

1 Like

Quick update:

  • 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.

1 Like

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.

3 Likes

Completed 18 Aug, 2023.

Also, today I finally tested this in production with live orders! Going smoothly so far alhamdilla, and planning on doing more testing over the weekend.

If all goes smoothly, we’ll started sending invites out next week inshallah!

Main open task is just UI polish, as it currently looks like something put together by a sunshine-deprived developer :wink:

4 Likes

Great news, good job mashaallah

Can’t wait to start using it :fire:

1 Like

InshAllah, looking forward to it :star_struck:

1 Like