Engineering's Log


Update D.52


12:00, implemented quick-webcam-mirror for Sandler


12:00, revamped the initialization prompt for the framework


12:00, we released version 0.64.0 of the framework: PlasmoHQ/plasmo/releases/tag/v0.64.0


12:00, apparently, Sentry source-map uploading is only available in the production environment, not preview.


12:00, we implemented Plasmo Secure Storage, ready to be reviewed: PlasmoHQ/storage/pull/24. This PR also introduces a major change to storage - we removed the "secret" terminology and used "copied" instead. By default, values will not be copied between storage.

20:00, we improved the with-firebase-auth example to include firestore usage in the extension pages. Also improved the associated blog: blog/posts/firebase-chrome-extension


12:00, we were /live


12:00, we're beginning to refactor the storage module to support secure storage, as well as making it by default not synced with localStorage. We will be using the Web Crypto API to encrypt the values.


12:00, we added two new features to the framework: One prioritizes the alias, which will allow us to bypass the gzip issue. The other is the ability to infer environment variable auto-completion from env files.


12:00, authentication flow with jose works, however, the request threw a gzip uncompress error. Upon network inspection, we found the response was plain text... We tried to play around with the gzip polyfill to no avail.

Update C.51


12:00, we investigated further and found that we can replace the access token retrieval flow with a custom implementation. We will be using jose for our key generation.


12:00, we created a guide on how to Migrate to Plasmo


12:00, we're seeing an issue with the crypto-browserify module - it is not very complete. It lacks KeyObject interface. We will need to figure out a way around this.


12:00, fixed an issue with Itero's account reconciliation mechanism.


12:00, refactored Sandler to have shared components and theme.


12:00, initialize theming strategy for Sandler

Update B.50


12:00, finalized Stripe dashboard with ninja mode.

22:00, after some fiddling with the prod bundling mechanism, we found that by disabling scope hoisting, the ESM bundle was imported properly. We've added a flag to disable hoisting for production bundling: --no-hoist.


12:00, Stripe dashboard up and running with MRR calculation and ARR graph.

16:00, found an issue with production bundling - somehow, ESM modules are not being bundled properly - the tree shaking mechanism seems broken (?).


12:00, we added a new flag to control Plasmo sourcemap behavior in production. There are now two flags on prod: --inline-source-maps, --source-maps. By default, no sourcemaps are generated in production.


12:00, added more dependency to bundle polyfill on Plasmo side, until ESM pipeline is fully working on Parcel end.

16:00, we found an issue with Stripe API not running on BGSW context - apparently, the Node API tries to initiate webhook listener as well, causing it to 429 and repeating requests constantly. Switching to plain fetch worked well - make sure the method is correct. Apparently, Stripe will return 429 if sending a POST request to a GET route.


12:00, updated Fronti following design guidelines

16:00, triaging an issue with the prod bundling pipeline of the framework. We're working to reproduce the issue on our end.


12:00, initialize internal Stripe Dashboard

Update A.49


12:00, wrapping up Twitter Playback Speed


12:00, created Fidgetoy


12:00, created Vercel Redeploy


12:00, initiate Sandler


12:00, we're working on some improvements to the stability of the framework.


12:00, Happy New Year!


Back to Engineering Quarter