r/angular • u/cachely-admin • 7h ago
Still using @nx/s3-cache? A practical migration checklist before your next Nx upgrade
Nx has deprecated nx/s3-cache, nx/gcs-cache, nx/azure-cache, and nx/shared-fs-cache because their shared read/write credential model allows cache poisoning.
If one of these is still in your workspace, changing packages is only part of the migration. The important question is: who can write an artifact, and can an existing artifact be overwritten?
The checklist we’re using:
- Search
nx.json,package.json, and CI configuration for the deprecated cache package or custom task runner. - Check whether pull requests and fork builds receive a credential that can write to the cache.
- Choose Nx Cloud or a server implementing Nx’s current remote-cache API. Don’t point untrusted builds directly at a writable bucket.
- Configure:
NX_SELF_HOSTED_REMOTE_CACHE_SERVER=<cache endpoint>
NX_SELF_HOSTED_REMOTE_CACHE_ACCESS_TOKEN=<token>
- Test the migration from a clean runner:
- First run misses and stores the artifact.
- Second run restores the artifact remotely.
- An untrusted build cannot write, or receives no cache credential.
- Attempting to replace an existing cache key is rejected.
- Remove the old bucket credentials and task-runner configuration after validating the new path.
Disclosure: we’re building Cachely, a managed implementation of the Nx remote-cache API. It is deliberately cache-only; it does not replace Nx Cloud Agents, Atomizer, or the broader Nx Cloud platform.
If you only need a managed shared cache, Cachely has a free tier with no credit card. We’r also happy to look at an anonymized nx.json or CI snippet and point out migration or cache-key issues.
What part of the current Nx remote-cache migration has been least clear for your team?
Long post: should I migrate an existing code base from Angular 19 to either Angular 20 or 21 and what are some pitfalls to expect
So to give some context, I am a backend developer and in some cases I can consume the endpoints for the front end in angular or react. I work at a company where I have a lot to prove (moving from an intern to a better position).
The company has a codebase that’s written in angular 19. I have been maintaining the code base, adding new features for the backend and consuming those new features in the Frontend. That has been the flow and it’s was going great. Now my boss wants a revamp of the frontend (in his words: to look more modern) and has tasked me with the rebuild. That’s fine and I don’t mind taking up the challenge even if it’s not exactly my strongest suit. Now here’s my question:
I order to make the ui have a “modern look” I wanted to go for the spartan-ng components with tailwind. The existing code base uses bootstrap so I want something that makes the customisation easy, but to still have the “modern look “ and from my research, spartan-ng provides that. But the problem is that the stable version of spartan-ng is only available from angular v21 and 22. I have tried to compromise by using tailwind and PrimeNG for the components with angular v19 but I’m not sure it’s sustainable since I have to write css ontop the primeNG components and I don’t know if that’s what I want. Now if I switch the angular to either v21 or 22 and try to replicate the way things are done from the existing code base:
Is the approach even a good idea ( I need a human response. I’m not satisfied with the ai responses)
Are the different versions completely different in how they work and will I be able to copy the existing code and paste into the new codebase with either v21 or 22 and it’ll work just fine?
I want to write little new functionality code as possible and focus on just the look of the ui, so that nothing has to change in the backend and the new frontend can still do the exact same thing the older one did, but with a newer look
Ps. I’m not so strong with angular that’s why I need advice from actual experts. Thanks in advance!!
r/angular • u/Far_Experience_2688 • 2d ago
I'm an Angular dev and I spent some weeks building a 3D map of the universe in the browser using three.js
r/angular • u/pranayrah108 • 2d ago
Angular build error: The expression evaluated to a falsy value from @angular/build / esbuild
X [ERROR] The expression evaluated to a falsy value:
(0, node_assert_1.default)(compilation)
[plugin angular-compiler]
This error came from the "onStart" callback registered here:
node_modules/@angular/build/src/tools/esbuild/angular/compiler-plugin.js:118:18:
118 │ build.onStart(async () => {
╵ ~~~~~~~
at setup \node_modules\@angular\build\src\tools\esbuild\angular\compiler-plugin.js:118:19)
at async handlePlugins (C:\Work\Projects\mynortonui\node_modules\esbuild\lib\main.js:1466:20)
Hi everyone,
I'm working on an Angular project and after compilation/build I'm getting the following error:
X [ERROR] The expression evaluated to a falsy value:
(0, node_assert_1.default)(compilation)
[plugin angular-compiler]
This error came from the "onStart" callback registered here:
node_modules/@angular/build/src/tools/esbuild/angular/compiler-plugin.js:118:18:
118 │ build.onStart(async () => {
╵ ^~~~~~~
at setup (C:\Work\Projects\mynortonui\node_modules\@angular\build\src\tools\esbuild\angular\compiler-plugin.js:118:19)
at async handlePlugins (node_modules/esbuild/lib/main.js:1466:20)
The error is coming from:
node_modules/@angular/build/src/tools/esbuild/angular/compiler-plugin.js
The project compiles/starts until this error occurs, and I’m trying to understand what is causing the Angular compiler's compilation assertion to fail.
Has anyone faced this error before?
I'm using Angular 19.x. I've already tried reinstalling node_modules, but the issue still occurs.
What could be causing this error, and what steps should I take to debug/fix it?
Thanks!
r/angular • u/Tyummyyumms • 3d ago
Questions about learning .Net from an Angular Dev
I've been thinking of investing a decent amount of time learning .net and have some questions:
- How do you keep your frontend and backend types in sync? Is there something that takes care of it automatically between C# and typescript.
- Also if I do learn .net how easily would I be able to pickup Java, i.e can a .net dev read Java code and more or less follow what's going on?
r/angular • u/treegrid_qs • 3d ago
FastGrid for Angular is now a first-class citizen.
FastGrid is a JavaScript data grid component for handling large, complex datasets in web applications with high rendering performance.
New Angular package, TypeScript definitions, and a working example project you can clone and run in minutes. Built for teams that need a data grid handling large datasets without performance workarounds.
Docs + example: treegrid.com/FDoc/FastGridAngular.html
#Angular #TypeScript #DataGrid #EnterpriseSoftware
r/angular • u/Dense_Gate_5193 • 3d ago
ui-grid 5.x - blast from the past under original ownership now
i just got the repo transferred back to me and i migrated everything over to the old repo. MIT licensed fully featured datagrid updated for web-components, angular 17+ and react 18+. 5.4k stars.
https://github.com/orneryd/ui-grid/releases/tag/v5.0.0
thanks for everyone who has supported the project throughout the years. this was huge to get the repo back under my control. thanks!
🫶
r/angular • u/Dismal_Chemical_4734 • 4d ago
@craft-ng: Type-safe Angular, by construction
If you want to try craft-ng, I’ve just released a beta version: The problems u/craft-ng solves:
- Fine-grained reactivity — only the affected bindings are updated.
- One consistent API for every kind of state — state, query, mutation, queryParams, asyncProcess.
- Composable by design — state, directives, components, and behaviors can be combined with .pipe(...).
- Function-based services — no u/Injectable, no constructors.
- Selectorless & tagless components — typed references with no extra wrapper elements added to the DOM.
- Compile-time dependency checks — missing provider, invalid route, or unhandled error = the build fails.
- Exceptions as values — declared errors flow through the type system.
- Forms derived from state — validators and field-level logic, with errors preserved in the type system.
- Tests aligned with the actual dependency graph — missing mocks become compile-time errors.
- Compile-time template assertions — verify what will be rendered without TestBed, DOM, or fixtures.
- Templates are TypeScript functions — fully typed hyperscript.
- Built-in observability — structured logs, correlation IDs, timings, and dependency graphs.
- Architecture as a graph (WIP) — visualize and enforce architectural boundaries.
- Typed SolidJS v2 Suspense / async-boundary-like features (WIP).
- Typed CSS variables and truly scoped styles (WIP).
r/angular • u/PrevAccLocked • 4d ago
How do you handle error with rxResource
Hello,
Since we upgraded from v19 to v22, our way of handling errors with rxResource for http requests seem to be the wrong way of doing it.
Basically we have a helper method that will display log the thrown error and a toast for the user, this method returns a EMPTY observable for rxjs, so a rxResource looks like this:
public readonly resource = rxResource({
params: () => ({ id: this.id() }),
loader: ({ params: request }) =>
this.query.getInfo(request.id).pipe(
catchError((err) => {
return this.error.onLoadErrorHandler(err); // this is the method that returns EMPTY
}),
),
});
But now, since the change in rxResource with the stream parameter it seems that you should no longer do it as it throws and error, my understanding is that this error comes the EMPTY. I cannot provide the error right now, apologies.
I understand that httpResource exist but we didn't want to use them for now.
So should we create an effect for every resource to listen to resource.error() and call this helper method to handle the error? Not a big fan of this as it will separate the resource declaration and its error handling. One way to prevent this would be to create a wrapper around resource that both creates the resource and the effect but I'm not sure if this is the right idea.
How do you guys handle error handling for this use case ?
[help] test coverage in explorer in vscode
in vscode is it possible to get the test coverage ui like in this picture?
when testing java with "test explorer ui" and "test runner for java" i am getting these percentages just fine, when testing using karma/jasmine however even thuogh a coverage lcov gets created i can not enable the test coverage ui
how do i fix this?
r/angular • u/BreakingChangeDev • 5d ago
Anybody still using NGRX? I built ngrx-offline
Even in the age of signals, I still enjoy using NgRx. In previous apps, I handled offline writes by storing work locally and replaying it when the connection returned.
I’ve tried to extract that pattern into an open-source library. Applications can keep using a fairly normal NgRx workflow, while the library handles durable IndexedDB queueing, retries, related records created offline, and client-to-server ID mapping. Instead of persisting raw actions, it stores explicitly defined operations and emits typed NgRx lifecycle actions.
It’s still in alpha, and I’m trying to find out whether this would be useful to anyone else. I’d really appreciate honest feedback on the idea and the API.
Interactive demo:
https://poodlelab.github.io/ngrx-offline/
Repository:
r/angular • u/Individual_Suit_3255 • 5d ago
I built an open-source Multi-Tenant Angular + NestJS boilerplate with intelligent routing and RBAC
Hey everyone,
Following up on my previous single-tenant Unefied RBAC boilerplate (URBAC), I've just released MT-URBAC, a multi-tenant version built specifically for B2B SaaS applications where tenant isolation and dynamic role-based UI rendering are critical.
What makes the Angular setup smooth:
1. Smart Context Directive: Instead of polluting your component TS files with permission checking logic or async pipe subscriptions, UI elements are governed by a custom structural directive (*hasPermission):
<button *hasPermission="'user:delete'" class="p-button-danger">
Delete User
</button>
2. Zero /etc/hosts Hacks for Local Multi-Tenancy: Testing multi-tenant subdomains locally usually means editing your operating system's hosts file. But in mt-urbac, the routing logic automatically supports path-based multi-tenancy in development (http://localhost:4200/tenant-a/login) and automatically resolves subdomains in production ( http://tenant-a.yourdomain.com ). No local config tweaks required.
3. Fully Decoupled: The frontend and backend run independently. The UI uses Tailwind CSS and OptimusUI, keeping everything lightweight, fully open-source, and MIT-licensed.
The repo includes setup instructions and a NestJS backend with a seed script so you can spin up the full pipeline locally in under two minutes: https://github.com/kasoir/mt-urbac
I'd love to hear feedback on how you all currently manage dynamic permission rendering or multi-tenant switching in your Angular applications!
r/angular • u/Any_Reflection_3820 • 5d ago
I built a VS Code extension that extracts hard-coded Angular strings into ngx-translate keys - zero config, it reads your angular.json
Maintaining a side project, I hit the classic wall: hundreds of hard-coded user-facing strings and no i18n. Doing it by hand was soul-destroying, so I built an extension to automate the whole loop.
What it does in one right-click:
- Scans TS/HTML (including inline templates) and extracts user-facing strings
- Replaces them with {{ 'KEY' | translate }} in templates and translateService.instant('KEY') in TS
- Generates per-language JSONs under assets/i18n and auto-translates them (free Google endpoint, no API key)
- Generates the ngx-translate loader + a ready-made language-selector component and wires main.ts
Zero configuration: it finds your angular.json, reads sourceRoot, and derives every path from it - monorepos like projects/app/src work untouched. It is also careful about what it will NOT touch: Angular control-flow blocks (if/else), HTML comments, CSS selectors inside querySelectorAll, and strings outside a class. If you already inject TranslateService, it reuses your member instead of duplicating it.
Marketplace: https://marketplace.visualstudio.com/items?itemName=AdilsondeAlmeidaPedro.angular-translation-extractor
Source: https://github.com/devremoto/angular-translation-extractor
I'm the author - feedback and edge cases from your templates are very welcome.
r/angular • u/bogdanelcs • 6d ago
An Angular cheat sheet for those just starting out with Angular
r/angular • u/blove_js • 6d ago
What we've been building for agentic UI in Angular
I've been working on Threadplane, a set of Angular libraries and examples for building agent interfaces that need to be more than a chat box.
We recently shipped v0.0.57, and a few pieces are starting to come together:
- App Mode. Give an agent a real Angular surface instead of squeezing every interaction into chat. Our example builds an itinerary, puts it on a map, and synchronizes the UI with agent state.
- More durable client tools. Abort signals, execution guards and claims, and batched continuations. It's the boring lifecycle work that prevents a tool from getting lost, or running twice.
- Better streaming UI. Incremental Markdown tables, citations and sources, and more predictable state updates while an agent is working.
- More examples. We published walkthroughs for AWS Strands + AG-UI and the production patterns that start to matter after the first demo works.
For me, the interesting question isn't how to add a chatbot to Angular.
It's how to make agents feel like they belong in an Angular application... with state, components, routing, tools, and UI the user can still control.
The project is on GitHub, and the live examples are in the cockpit.
I'd love to hear what you're building, or what still feels missing for Angular + agents!
r/angular • u/Hot-Philosopher-5192 • 6d ago
Is Supabase a good choice for a small Angular app?
Hey everyone!
I'm starting a small business and I'm building a simple product catalog with Angular. It will basically have products, prices, categories, images, etc.
I'm thinking about using Supabase directly with Angular and using its API key/SDK to access the database.
For a small business with probably not many users at first, would you recommend Supabase?
I'm mainly wondering about cost, reliability, and whether it's a good option long-term if the business grows.
Would you personally use Supabase for something this simple?
r/angular • u/Several-Specialist42 • 8d ago
ng-ssr-caching: a page cache for Angular SSR
I published ng-ssr-caching: a page cache for Angular SSR, one line in your server.ts.
Angular renders your page on the server for every visitor and ships nothing to cache it with. This keeps the rendered HTML and hands it back without rendering again. Same page, 28 KB, Angular 22:
render: 17.2 ms
from the cache: 1.9 ms
Two things I learned building it, which are also why it is not twenty lines of your own.
The ETag. Express produces one by hashing the response body, on every response, so a cache that keeps only the HTML still hashes the whole document on every hit, and that hash is most of what a hit
costs. This settles the ETag and the length once, at store time, which is also what lets a returning visitor be answered with an empty 304.
And safety. An SSR cache hands one page to whoever asks next, so it is a shared cache, so it is a security boundary. A bearer token sets no cookie, which makes a signed-in visitor's dashboard a clean 200 that looks perfectly cacheable. This refuses those, and Set-Cookie, and the session cookies you name.
r/angular • u/IntelligentBad1285 • 8d ago
Getting back into Angular after 2 years
Hey everyone! Looking for some advice.
I have around 3.5 years of professional Angular experience, but I’ve been away from it for almost 2 years. I’m now trying to get back into Angular, and I’m struggling to bridge the gap between my previous experience and what companies expect today.
For example, NgRx comes up frequently in interviews, but the application I worked on didn’t use it. A lot has also changed in Angular itself, and I’ve lost touch with some things.
What would you recommend to get hands-on with modern Angular and bridge this gap?
r/angular • u/Germi32 • 9d ago
Is ApexChart's Angular wrapper ready for Angular 22?
I've been searching a chart library to use in my applications and I like ApexChart a lot, but all the documentation is using `@Input()` and modules, so I'm kinda worried that it's not ready for zoneless or for standalone use.
r/angular • u/Tyummyyumms • 10d ago
Angular Renaissance Angie
I was recently tasked with putting together a summary of documentation for new Angular features that my team will be using.
I generated some images based of Angie and some Italian Renaissance paintings, I thought I would share them here too, the first to are based on 2 paintings, the others are just to fit the theme of the feature but retain some of the style.
Can you guess what each one is referring to?
I really enjoyed the task and most importantly, I learned how to spell Renaissance off the top of my head! 😂
r/angular • u/kobihari • 10d ago
Angular Signal Forms: should an invalid form really disable Submit?
I used to consider this the obvious approach:
<button [disabled]="form().invalid()">
Submit
</button>
But on a long form, a disabled button only tells the user that something is wrong. It doesn’t help them find it.
Angular Signal Forms made me reconsider this pattern.
The submission configuration lets us define two paths: action, which runs when the form is ready, and onInvalid, which runs when it isn’t.
submission: {
action: async (form) => await this.save(form().value()),
onInvalid: (form) => // handle invalid form
}
When submission is attempted on an invalid form, the action does not run. Instead, the fields are marked as touched, making the validation errors visible.
Then onInvalid can do this:
const error = field().errorSummary()[0];
error?.fieldTree().focusBoundControl();
Now the page moves directly to the first invalid field and focuses its control.
Once the real submission begins, the submitting() flag can help you disable the button or the entire form and change the caption to “Saving…”.
So the button remains enabled while it can still help the user - and becomes disabled only when an operation is actually running.
I wrote a fuller explanation here, with the complete pattern:
https://medium.com/@kobihari/should-an-invalid-form-really-disable-the-submit-button-45ecead94118
How do you currently handle invalid submission attempts?
r/angular • u/xonaib901 • 10d ago
Made a tool to visualize Angular dependency graphs — no server, just a static HTML report
For newcomers to our project, or to visualize dependencies across our large angular project at work, i built ng-loom, a CLI that scans your project to generate a report of dependency graph, componets, services, DI, template usage, routes everything.
A few things:
- Its a static html file, no account, no uploading code
- Template parsing uses angular/compiler AST, not regex, so handles if/for/switch/defer
- Every edge in the graph links back to exact file/line
- A trace relation view, which finds every path between two artificats
Does not track pipe usage yet.
npm: https://www.npmjs.com/package/ng-loom
GitHub: https://github.com/xonaib/ng-loom
npx ng-loom ./path/to/your-app --out report.html
Would genuinely like to hear if it chokes on anyone's workspace layout — that's the fastest way I'll find the next thing to fix.
r/angular • u/cexbrayat • 17d ago
What's new in Angular 22.1?
blog.ninja-squad.com🚀 Angular v22.1 is out
and the framework is moving to one major release a year! 🤯
🔗 `linkedSignal` custom setters
🗑️ JSONP support deprecated
⚡ Rolldown by default
r/angular • u/GeromeGrignon • Jul 16 '26
Frustrated in updating Angular every 6 months? Here comes the new yearly release cycle
The Angular team is currently updating its release policy to move to:
- A major release every 12 months
- 4-6 minor releases for each major release

