JavaScript
React
- React Overview
- JSX and components
- Props and composition
- Conditional rendering and lists
- Events and inputs
- useState and state snapshots
- Render, commit, and reconciliation
- State update queues and immutability
- Designing state and data flow
- Preserving and resetting state
- Reducers and context
- Refs
- Effects
- Custom hooks
Build and publish a TypeScript SDK
- Understand the package artifact
- Create the workspace and packages
- Design the public API
- Build JavaScript and declarations
- Make network data safe
- Test through public boundaries
- Write the publish manifest
- Inspect and test the tarball
- Prepare npm access
- Publish in dependency order
- Release and maintain safely
Angular upgrades
15 to 20
- Angular 15 to 19: TopFans web frontend
- Angular 15 to 21 LTS: TopFans web frontend
- Angular 16 upgrade explained
- Verify the Angular 16 upgrade
- Angular 16 to 17 upgrade
- Angular 18 upgrade explained
- Verify the Angular 18 upgrade
- Verify the Angular 19 upgrade
- Verify the Angular 20 upgrade
- Angular 20 vs. Resolve_build_size_19 chunk sizes
20 to 21
21 practices
Angular builds and investigations
Builders
Bundle size and prerendering
Standalone routes
Planning
- Standalone routes: the 15 one-component pages
- Standalone routes: the 10 mid-sized modules
- Standalone routes: what's left after monetize and home Profile
- Standalone routes: what's left after monetize and home Profile (plain)
- Leftovers after the SharedModule work
- Why every marketing page ships 54 layouts
Conversions
- PR 10826: five pages without NgModules
- PR 10829: three more pages without NgModules
- The dynamic form builder is standalone
- BioLinkPipe is standalone
- Unused standalone leftovers are deleted
- Monetize pages load one at a time, and home no longer ships Profile
- Public marketing pages load only the layouts they use
- How the marketing preview loads a layout
- Stop the cover preview from reloading layouts every cycle
- AppModule is gone
SharedModule removal
- SharedModule leaves the initial bundle
- Wallet stops loading SharedModule
- The 18 small pages stop loading SharedModule
- Marketing pages and the home page stop loading SharedModule
- Monetize stops loading SharedModule
- Auth, forum, messages and post pages stop loading SharedModule
- Link in bio, profile and portfolio stop loading SharedModule
- Edit preference and the whitelabel cover page stop loading SharedModule
- Dashboard is standalone and SharedModule is gone
Pull request reviews
Router and hydration
Standalone routes
SharedModule removal
Leftover standalone work
Control Flow Update
S3 uploads
Performance
Messages Revamp
Messages Revamp
- Split message-container into pieces you can change safely-opus-5-5
- Cut message-container into pieces-grok-4-6
- Make messages maintainable: component boundaries and migration plan-sol-6-1
- Messages module features
- Messages module: complete feature list (sonnet-5-5)
- Messages module features (sol-6-1)
- Make the messages page load fast-grok-4-7
- Make messages load faster (astra)
- Make the messages page load fast (opus-5-5)
- Messages modularization and performance (sol-6-1)
- Speed the messages page first, then split it (grok-4-6)
- Messages page performance: proposed changes (sonnet-5-5)
- Split the messages page after the first speed pass (grok-4-7)
- Chat cursor pagination
- Inbox and history pagination: changes and verification (sol-6-1)
- Chat cursor pagination, verified on Jon Snow