Engineering's Log


Update D.44


00:00, we released a hotfix to address the issue with Itero uploading.


12:00, we found a bug in both prod and staging after the release of Itero builder. Weirdly enough, we were unsuccessful in reproducing the problem locally.

20:00, we were able to replicate the issue by building itero locally. It appears that the prod bundling process has a leaking abstraction.

23:00, we isolated the issue to be with the version of NextJS we were using. Apparently, its production bundler was having a problem compiling the crypto module for the client side.


12:00, we are switching focus on Itero publisher as we gather feedback for our messaging module. Itero publisher will facilitate what bpp does right within Itero platform itself.


12:00, the messaging module is progressing smoothly - we are leveraging our file system API to orchestrate the message handlers.


12:00, we created the first draft of @plasmohq/messaging: PlasmoHQ/plasmo/pull/310


12:00, we added a pre-authentication check-in step for Itero to avoid showing misleading UI.


12:00, we found an issue with invoking an internal API from another internal API - the request became stale during transport. We will test out another strategy to invoke function within the webhook handler. If this does not work, we will simply await the logic and cross our fingers that the checking will never surpass 10s.

14:00, we deployed Itero builder to beta.


12:00, we are having some trouble deploying our GitHub webhook. Apparently, Vercel terminates serverless API if a response was sent. This prompts us to rethink our webhook strategy.

Update C.43


12:00, Plasmo 0.59.0 was released with a minor bug in the binary files - apparently, it contains DOS line endings. We released a patch 0.59.1 to address that issue.


12:00, we are upgrading the framework's key dependency (Parcel) to 2.8.0, and releasing a couple new features that were worked on last week.


12:00, we refactored Itero Builder to use access token passing instead of Secret API. This allows developers to specify arbitrary scripts to run without escalating their permission.


12:00, Itero Builder is approaching gold status - staging End-to-end test are all functional.


12:00, we fixed an issue with our SSR auth handling.


12:00, we refined the auth logic for Itero to handle redirection edge cases from external sites.


12:00, we improved the webhook pipeline for Itero GitHub bot to track PR comments and account linking.

Update B.42


12:00, the Itero GitHub bot is now responding to PRs: PlasmoHQ/with-wasm-zig/pull/1


12:00, we integrated GitHub OAuth into Itero and repository linking.


12:00, we are investigating GitHub App installation flow + OAuth callback to add them into Itero.


12:00, we launched a v2 of fronti.

16:00, we initiated an integrated builder solution for Itero. The end-to-end setup is done.


12:00, we finalized GitHub App integration via webhook into Itero.


12:00, half of the crew is facing a water pipeline issue over the past 48 hours. Engineering might be a bit slow today.

18:00, the water issue has been somewhat resolved: channels/946290204443025438/946290204904390693/1040027705636302878

20:00, we are adding GitHub app to Itero. Some technical nitpicks we noticed while reading GitHub's code:

  • Their webhook handler implements the event emitter pattern, which centralizes handlers for the emitter instance. The main drawback is that this pattern is not suitable for serverless architecture.
  • Their verify/sign function accepts a string, however hmac.update accepts string, Buffer, TypedArray and Dataview: api/crypto.html#hmacupdatedata-inputencoding

Update A.41


12:00, we added a post-processing resolver to the framework for ts-path resolve: PlasmoHQ/plasmo/pull/285

20:00, we added some fun animation on Fronti leveraging emotion for keyframe and tailwind for alignment, color and sizing.


12:00, we bumped the bpp action in the Plasmo framework to v3: PlasmoHQ/plasmo/pull/286


12:00, we seasoned PlasmoHQ/plasmo/pull/282, adding --tag for plasmo bundle.


02:00, we revamped the 404 page for fronti.


12:00, we decided to remove the Vercel comment feature from as it exposes the activity of any logged-in user looking at the documentation (including the page they are currently looking at).

16:00, we bumped the development dependencies of bpp and published PlasmoHQ/bpp/releases/tag/v3.1.0


12:00, we updated the pricing for our paid SaaS platform - #pricing


12:00, we added the vercel beta comment feature to to help contributors suggest quick comments on the documentation.

Itero 0.10.0


12:00, we're testing out a hybrid between Emotion and Tailwind. We don't want to use a babel preprocessor, as it ties our solution to babel. The first attempt configuring a custom cache revealed another issue - tailwind's preflight style needed to be injected before the emotion stylesheet. Apparently, custom CSS injection order has been a headache with NextJS for a while.

18:00, we released Itero 0.10.0, still under a beta flag.

Hall of Gratitude


Back to Engineering Quarter