<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>TypeScript on Omid Farhang</title><link>https://omid.dev/tags/typescript/</link><description>Recent content in TypeScript on Omid Farhang</description><image><title>Omid Farhang</title><url>https://omid.dev/images/bio-photo-150x150.jpg</url><link>https://omid.dev/images/bio-photo-150x150.jpg</link></image><generator>Hugo -- 0.165.0</generator><language>en-US</language><copyright>2026 Omid Farhang | All rights reserved.</copyright><lastBuildDate>Fri, 31 Jul 2026 00:40:00 +0330</lastBuildDate><atom:link href="https://omid.dev/tags/typescript/index.xml" rel="self" type="application/rss+xml"/><atom:link href="https://pubsubhubbub.appspot.com/" rel="hub"/><item><title>Modern Auth Patterns for Angular Frontends (Beyond “Just Add JWT”)</title><link>https://omid.dev/2026/07/31/modern-auth-patterns-for-angular-frontends/</link><pubDate>Fri, 31 Jul 2026 00:40:00 +0330</pubDate><guid>https://omid.dev/2026/07/31/modern-auth-patterns-for-angular-frontends/</guid><description>Stop storing JWTs in localStorage. Use OIDC with a BFF or reverse proxy, short-lived server-side tokens, HttpOnly cookies, and Angular interceptors and guards that do not pretend to be your security boundary.</description></item><item><title>Why Client-Side Frameworks Need Security Updates</title><link>https://omid.dev/2026/07/29/why-client-side-frameworks-need-security-updates/</link><pubDate>Wed, 29 Jul 2026 00:41:00 +0330</pubDate><guid>https://omid.dev/2026/07/29/why-client-side-frameworks-need-security-updates/</guid><description>Browser frameworks still own sanitization, request protection, and SSR isolation. Three recent Angular CVEs show why framework patches are part of every client-side app’s security boundary.</description></item><item><title>Securing Angular PWAs in 2026</title><link>https://omid.dev/2026/07/22/securing-angular-pwas-in-2026/</link><pubDate>Wed, 22 Jul 2026 00:42:00 +0330</pubDate><guid>https://omid.dev/2026/07/22/securing-angular-pwas-in-2026/</guid><description>Security for Angular Progressive Web Apps: HTTPS and service worker scope, cache strategies that do not leak auth-dependent data, and offline sessions without raising XSS or CSRF risk.</description></item><item><title>Dependency Risk, SBOMs, and Automated Security for Angular</title><link>https://omid.dev/2026/07/18/dependency-risk-sboms-and-automated-security-for-angular/</link><pubDate>Sat, 18 Jul 2026 00:45:00 +0330</pubDate><guid>https://omid.dev/2026/07/18/dependency-risk-sboms-and-automated-security-for-angular/</guid><description>Build an SBOM and CI security pipeline for Angular monorepos: npm audit, ng update --dry-run, fail on high-severity CVEs, Dependabot/Snyk, and post summaries to Slack or Mastodon.</description></item><item><title>Content Security Policy (CSP) and Angular: Practical Patterns</title><link>https://omid.dev/2026/07/15/csp-and-angular-practical-patterns/</link><pubDate>Wed, 15 Jul 2026 00:50:00 +0330</pubDate><guid>https://omid.dev/2026/07/15/csp-and-angular-practical-patterns/</guid><description>Ship CSP for Angular without breaking the build: report-only first, nonces via autoCsp or ngCspNonce, nginx/Apache/Cloudflare headers, and a small scanner for inline handlers, eval, and other footguns.</description></item><item><title>TypeScript 7 Is Here: Fast, Exciting, and Worth Watching</title><link>https://omid.dev/2026/07/10/typescript-7-is-here-fast-exciting-worth-watching/</link><pubDate>Fri, 10 Jul 2026 02:03:30 +0330</pubDate><guid>https://omid.dev/2026/07/10/typescript-7-is-here-fast-exciting-worth-watching/</guid><description>TypeScript 7&amp;#39;s native port delivers dramatic build-time speedups, but editor plugins, framework tooling, and monorepo workflows are catching up at different speeds. A practical read for teams deciding when to adopt.</description></item><item><title>i18n, a11y, and Shareable Lab State in the Browser</title><link>https://omid.dev/2026/06/13/i18n-a11y-and-shareable-lab-state-in-the-browser/</link><pubDate>Sat, 13 Jun 2026 10:00:00 +0330</pubDate><guid>https://omid.dev/2026/06/13/i18n-a11y-and-shareable-lab-state-in-the-browser/</guid><description>How Bio-Dynamics supports English, German, and Persian, keeps keyboard and screen-reader paths usable, and encodes lab checkpoints in the URL.</description></item><item><title>Catalog-Driven Dashboard: Strains, Stressors, and Action Impact</title><link>https://omid.dev/2026/06/12/catalog-driven-dashboard-strains-stressors-and-action-impact/</link><pubDate>Fri, 12 Jun 2026 10:00:00 +0330</pubDate><guid>https://omid.dev/2026/06/12/catalog-driven-dashboard-strains-stressors-and-action-impact/</guid><description>How Bio-Dynamics keeps 82 stressors, 20 strains, and four catalog tabs maintainable — and previews biome deltas before you click.</description></item><item><title>Macro/Micro 3D: One Scene Graph, Seven Tissue Builders</title><link>https://omid.dev/2026/06/11/macro-micro-3d-one-scene-graph-seven-tissue-builders/</link><pubDate>Thu, 11 Jun 2026 10:00:00 +0330</pubDate><guid>https://omid.dev/2026/06/11/macro-micro-3d-one-scene-graph-seven-tissue-builders/</guid><description>How Bio-Dynamics uses Three.js to fly from a rotatable body map into region-specific tissue cross-sections with instanced microbes and simulation-linked visual effects.</description></item><item><title>Designing a Deterministic Microbiome Simulation Without Overclaiming Science</title><link>https://omid.dev/2026/06/10/deterministic-microbiome-simulation-without-overclaiming-science/</link><pubDate>Wed, 10 Jun 2026 10:00:00 +0330</pubDate><guid>https://omid.dev/2026/06/10/deterministic-microbiome-simulation-without-overclaiming-science/</guid><description>How Bio-Dynamics models barrier integrity, emergent inflammation, and microbe competition in a 30 Hz tick engine — with golden tests that keep the educational demo honest.</description></item><item><title>Building Bio-Dynamics: An Educational 3D Microbiome Lab in the Browser</title><link>https://omid.dev/2026/06/09/building-bio-dynamics-educational-3d-microbiome-lab-in-the-browser/</link><pubDate>Tue, 09 Jun 2026 10:00:00 +0330</pubDate><guid>https://omid.dev/2026/06/09/building-bio-dynamics-educational-3d-microbiome-lab-in-the-browser/</guid><description>Why I built a full-body microbiome sandbox — for education, open development storytelling, and exploring simulation and 3D outside my usual frontend lane.</description></item><item><title>How to Build a Frontend Testing Strategy That Actually Scales</title><link>https://omid.dev/2026/06/09/how-to-build-a-frontend-testing-strategy-that-actually-scales/</link><pubDate>Tue, 09 Jun 2026 01:50:00 +0330</pubDate><guid>https://omid.dev/2026/06/09/how-to-build-a-frontend-testing-strategy-that-actually-scales/</guid><description>A practical frontend testing strategy for large teams: how to choose between unit, integration, component, and end-to-end tests in a real Angular codebase without creating slow, fragile coverage.</description></item><item><title>Stop Modeling Angular Screens with Five Booleans</title><link>https://omid.dev/2026/06/02/stop-modeling-angular-screens-with-five-booleans/</link><pubDate>Tue, 02 Jun 2026 01:15:00 +0330</pubDate><guid>https://omid.dev/2026/06/02/stop-modeling-angular-screens-with-five-booleans/</guid><description>Most Angular UI bugs come from screens modeled as scattered flags. Replace loading, error, empty, and ready booleans with one explicit state model your templates and reviewers can trust.</description></item><item><title>The Hidden Cost of Nice Syntax: When Angular's New Template Features Make Code Harder to Reason About</title><link>https://omid.dev/2026/05/26/angular-template-syntax-hidden-cost/</link><pubDate>Tue, 26 May 2026 02:48:00 +0330</pubDate><guid>https://omid.dev/2026/05/26/angular-template-syntax-hidden-cost/</guid><description>Angular&amp;#39;s newer template syntax is powerful, but spread/rest, arrow functions, multi-case switches, and richer control flow need team rules before clever templates become maintenance debt.</description></item><item><title>Signal Forms Aren't Just a Forms API Update: They Change How You Model UI State</title><link>https://omid.dev/2026/05/25/signal-forms-model-ui-state/</link><pubDate>Mon, 25 May 2026 02:48:00 +0330</pubDate><guid>https://omid.dev/2026/05/25/signal-forms-model-ui-state/</guid><description>Signal Forms push Angular forms toward explicit state modeling, where validation, submission, async work, and derived UI state live in the same reactive graph.</description></item><item><title>Yet Another Frontend Framework? The Rise Of Svelte</title><link>https://omid.dev/2024/06/22/yet-another-frontend-framework-the-rise-of-svelte/</link><pubDate>Sat, 22 Jun 2024 02:38:09 +0330</pubDate><guid>https://omid.dev/2024/06/22/yet-another-frontend-framework-the-rise-of-svelte/</guid><description>&lt;p&gt;As we advance into 2024, the landscape of frontend development continues to evolve at a rapid pace. Developers are always on the lookout for frameworks that offer more efficiency, better performance, and ease of use. Among the numerous frameworks making waves this year, a few stand out due to their unique offerings and growing adoption:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;React&lt;/strong&gt;: A robust and flexible library maintained by Facebook, still reigning as the most popular framework for building user interfaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vue.js&lt;/strong&gt;: Known for its simplicity and ease of integration, Vue.js is a favorite for many developers who need to quickly spin up a project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Angular&lt;/strong&gt;: A powerful framework backed by Google, Angular is widely used for building large-scale enterprise applications.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Svelte&lt;/strong&gt;: A newer but rapidly growing framework that offers a unique approach to building web applications with a focus on performance and simplicity.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While React, Vue, and Angular have been the go-to choices for many developers over the past few years, Svelte is increasingly capturing the attention of the development community. Let&amp;rsquo;s dive deeper into what makes Svelte stand out and why it’s becoming a preferred choice for many.&lt;/p&gt;</description></item><item><title>Advanced State Management in React with Recoil: Atom Families, Selectors, and Async Queries</title><link>https://omid.dev/2024/06/14/advanced-state-management-in-react-with-recoil/</link><pubDate>Fri, 14 Jun 2024 17:02:20 +0330</pubDate><guid>https://omid.dev/2024/06/14/advanced-state-management-in-react-with-recoil/</guid><description>&lt;p&gt;Managing state in React applications has evolved significantly, from simple state hooks to sophisticated libraries that handle complex state scenarios. Recoil is a powerful state management library for React that addresses many limitations of traditional state management approaches. It provides a flexible and scalable way to handle state, particularly in large applications. This blog post will explore advanced state management techniques using Recoil, focusing on atom families, selectors, and handling asynchronous queries.&lt;/p&gt;</description></item><item><title>Deep Dive into Advanced TypeScript: Conditional Types, Mapped Types, and Recursive Types</title><link>https://omid.dev/2024/06/14/advanced-typeScript-types/</link><pubDate>Fri, 14 Jun 2024 16:21:04 +0330</pubDate><guid>https://omid.dev/2024/06/14/advanced-typeScript-types/</guid><description>&lt;p&gt;TypeScript has transformed the way we write JavaScript by providing a static type system that helps developers catch errors early and write more robust code. While basic types and interfaces cover a significant portion of everyday use cases, TypeScript offers advanced features that can take your code to the next level of type safety and flexibility. In this post, we will dive deep into three advanced TypeScript features: Conditional Types, Mapped Types, and Recursive Types. These features are indispensable for creating highly adaptable and type-safe codebases.&lt;/p&gt;</description></item><item><title>Six Months with Angular 2 After Years of AngularJS</title><link>https://omid.dev/2017/01/18/six-months-with-angular-2-after-years-of-angularjs/</link><pubDate>Wed, 18 Jan 2017 10:00:00 +0000</pubDate><guid>https://omid.dev/2017/01/18/six-months-with-angular-2-after-years-of-angularjs/</guid><description>An honest field report on what improved, what hurt, and side-by-side code from the AngularJS apps I am leaving behind.</description></item></channel></rss>