Sign in

Justin

@iamjustin.dev
317 followers 433 following 48 posts

Front-end dev. Mostly Angular. I write about it as well! medium.com/@iamjustin

PostsRepliesMedia
Justin @iamjustin.dev · 08/10/2025
Does Claude Code know more? I got "Angular's FormBuilder is legacy sugar. With modern Angular, you should use FormControl, FormGroup, and FormArray directly." 😆 #Angular
000
Justin @iamjustin.dev · 23/07/2025
Stylus🍿
000
Justin @iamjustin.dev · 19/07/2025
Not doing a lot of web related stuff lately. I discovered Godot and am addicted 😆
110
Justin @iamjustin.dev · 29/05/2025
It’s been a while. I wanna start writing again..
010
Justin @iamjustin.dev · 27/03/2025
This is hype! It also prefetches API calls
050
Reposted by Justin
Minko Gechev @mgechev.bsky.social · 25/03/2025
Type checking in host bindings with language service support just landed in Angular! github.com/angular/angu...
1345
Justin @iamjustin.dev · 24/12/2024
Done with debug december! Sadly not a hoodie, but maybe the ps5 though 😆
020
Justin @iamjustin.dev · 20/12/2024
So how good is Copilot in VS Code? Can it already replace Cursor?
020
Justin @iamjustin.dev · 17/12/2024
Really interesting!
020
Justin @iamjustin.dev · 16/12/2024
Followed it online. It was great! Well done all!
010
Reposted by Justin
Michael Hladky @michael-hladky.bsky.social · 13/12/2024
I know this time of year can be super busy, and some of you can’t make it for NgGlühwein—but we’ve got you covered! We’ll be live-streaming 📽️ the entire conference tomorrow! 📺 [ENG] You can watch it here: www.youtube.com/watch?v=5m0e... #Angular #TechConference
youtube.com
NgGlühwein 2024 | 14.12. Vienna
YouTube video by Push-Based
092
Justin @iamjustin.dev · 12/12/2024
Please use the `NgOptimizedImage` directive within #Angular. It's so good. Especially with a image CDN! angular.dev/guide/image-...
angular.dev
Angular
The web development framework for building modern apps.
030
Justin @iamjustin.dev · 10/12/2024
I want to declaratively listen to changes with TDF and was just trying some things out.
000
Justin @iamjustin.dev · 09/12/2024
Why is the `NgModelGroup` not available without a `setTimeout`, but the `NgControl` is? Guess I'm gonna have to dive into the source x) #angular
@Component({
  standalone: true,
  changeDetection: ChangeDetectionStrategy.OnPush,
  imports: [FormsModule],
  selector: 'app-group',
  template: `
    <form>
      <div #personGroup="ngModelGroup" ngModelGroup="person">
        <input
          type="text"
          [(ngModel)]="formModel().name"
          name="name"
          #nameControl="ngModel"
        />
      </div>
    </form>
  `,
})
export class GroupComponent {
  personGroup = viewChild.required<NgModelGroup>('personGroup');
  nameControl = viewChild.required<NgControl>('nameControl');

  formModel = signal({
    name: 'John',
  });

  ngAfterViewInit() {
    this.nameControl().valueChanges!.subscribe((value) => {
      console.log('name', value);
    });

    setTimeout(() => {
      this.personGroup().valueChanges!.subscribe((value) => {
        console.log('personGroup', value);
      });
    });
  }
}
130
Justin @iamjustin.dev · 09/12/2024
How would you listen to `valueChanges` from the `ngModelGroup` declaratively?
100
Justin @iamjustin.dev · 08/12/2024
Why are apps automatically translating to my first language. Stop it😫
010
Justin @iamjustin.dev · 03/12/2024
If you use NX, adopt enforce module boundaries asap. It will save you a headache.. nx.dev/features/enf...
nx.dev
Enforce Module Boundaries
Learn how to avoid dependency hell and scale a codebase by imposing constraints on your projects using the module boundary lint rule.
140
Justin @iamjustin.dev · 01/12/2024
December 1st! Which means adventofcode.com time!😄
adventofcode.com
Advent of Code 2024
040
Justin @iamjustin.dev · 30/11/2024
Everywhere. I use cursor for non-related work stuff. It works great. Even with experimental things such as `resource`.
010
Justin @iamjustin.dev · 28/11/2024
When are the #Angular vids from #ngPolandConf being uploaded. I really want to know what they said about forms!
021
Justin @iamjustin.dev · 25/11/2024
Wrote a while ago about reusing TanStack queries in #angular, but never shared it here. medium.com/@iamjustin/t...
medium.com
TanStack Query in Angular?
Learn how to effortlessly reuse queries in Angular with TanStack Query. Simplify state management and boost app performance!
040
Justin @iamjustin.dev · 25/11/2024
inject all the way. We migrated our codebase without problems + it’s just better
100
Justin @iamjustin.dev · 22/11/2024
Experimenting with TDF, but how do we react to `valueChanges` declaratively? This works, but idk #Angular
Screenshot of TypeScript/Angular code showing an AddressInfoComponent class. The code includes a form template with a company ID input field and an address display section. The component class contains dependency injections and an Observable pipe chain that processes address data based on company ID validation.
120
Justin @iamjustin.dev · 21/11/2024
For sure! You can find them here go.bsky.app/hLveAd
230
Justin @iamjustin.dev · 21/11/2024
A lot of content from @brechtbilliet.bsky.social. I've been reading all day. Super interesting! Gonna start experimenting with TDF. Thanks all :) bsky.app/profile/toba...
011
Justin @iamjustin.dev · 21/11/2024
And with signals 👀 bsky.app/profile/arma...
110
Justin @iamjustin.dev · 21/11/2024
Also find this gem from @timdeschryver.dev. It's really good timdeschryver.dev/blog/a-pract...
timdeschryver.dev
A practical guide to Angular Template-Driven Forms
The things I looked up while learning the template-driven way
100
Justin @iamjustin.dev · 21/11/2024
For anyone wondering. The videos by Ward Bell www.youtube.com/watch?v=L7rG... & www.youtube.com/watch?v=EMUA...
youtube.com
Prefer Template-Driven Forms | Ward Bell | ng-conf 2021
YouTube video by ng-conf
110
Justin @iamjustin.dev · 21/11/2024
So I'm watching the videos from Ward Bell about template-driven forms in #Angular. It's great. Anyone else preferring TDF over RF? Any good articles or videos to share? :)
310
Reposted by Justin
Minko Gechev @mgechev.bsky.social · 19/11/2024
🚀 Meet Angular v19 ‣ Incremental hydration ‣ Server route config ‣ linkedSignal, resource, renderEffect ‣ Auto CSP ‣ Unused import reporting ‣ Standalone by default ‣ Enhanced theming ‣ Time picker ‣ 2D drag & drop ‣ Many codemods to modernize your code Much more! blog.angular.dev/meet-angular...
blog.angular.dev
Meet Angular v19
In the past two years we doubled down on our investment in developer experience and performance — in every single release we’ve been…
1419461
Justin @iamjustin.dev · 19/11/2024
Morning! #Angular 19 today!!😄
020
Justin @iamjustin.dev · 18/11/2024
Clever! Should do that too😅
010
Justin @iamjustin.dev · 18/11/2024
What do you put in the alt attribute when the image is a code snippet? #accessibility #a11y
110
Justin @iamjustin.dev · 17/11/2024
That said. Switch will be my last resort lol
000
Justin @iamjustin.dev · 17/11/2024
I'm working on an article where I added these if statements on purpose to showcase a "bad" example. Didn't think of it to change, oh well.
100
Justin @iamjustin.dev · 17/11/2024
Alright I messed up. We don't need the computed. Even better though! Pretty neat to enable type narrowing with `@let`. In v18 it can cause bugs though. `@let currentEntry = this.entry()` doesn't always refer to the class property. But this will be fixed in V19 :)
010
Justin @iamjustin.dev · 17/11/2024
Ah, you're right.. I thought it was because of the reactive context, but it was because I had the @let variable the same as my input 🤦‍♂️
110
Justin @iamjustin.dev · 17/11/2024
Is this cursed? Add template narrowing with the new `@let` syntax, but use a `computed` instead of the `input` directly because of the reactive context. #angular
type Post = {
  type: 'post';
  title: string;
};

type Todo = {
  type: 'todo';
  completed: boolean;
};

type Book = {
  type: 'book';
  author: string;
};

type Entry = Post | Todo | Book;

@Component({
  ...
  template: `
    @let entry = this.currentEntry();

    @if (entry.type === 'post') {
      {{ entry.title }}
    }

    @if (entry.type === 'todo') {
      {{ entry.completed }}
    }

    @if (entry.type === 'book') {
      {{ entry.author }}
    }
  `,
})
export class EntryComponent {
  entry = input.required<Entry>();
  currentEntry = computed(() => this.entry());
}
300
Justin @iamjustin.dev · 16/11/2024
Did you know you might not even be lazy loading in #Angular when you use barrel files? medium.com/@iamjustin/y...
medium.com
You might not be lazy loading properly in Angular. Pitfall of barrel files.
Analyze the implications of barrel files on lazy loading efficiency in Angular.
040
Justin @iamjustin.dev · 15/11/2024
Question for speakers at tech events: Do you reuse your presentations for several events or is it one time only? I want to start speaking publicly, but the thought of putting a lot of effort into a presentation and only talking about it once is kinda meh
110
Justin @iamjustin.dev · 14/11/2024
Went to a conference today and one of the talks felt like a live podcast. Great energy and just talking about new tech. I’m here for it!
000
Justin @iamjustin.dev · 14/11/2024
It’s great! Definitely recommend checking out ‘queryOptions’.
110
Justin @iamjustin.dev · 13/11/2024
What if you could dynamically change the mock responses within your #Angular app (or any framework, really). Prototyped something and it actually works!
062
Justin @iamjustin.dev · 12/11/2024
`outputFromObservable` is pretty cool. #Angular
Code of a random input component that utilizes outputFromObservable to trigger an emit with the field value when the field is valid.
020
Justin @iamjustin.dev · 11/11/2024
Tried posting through a publication on Medium. It tanked my read ratio. Never again 😂
000
Justin @iamjustin.dev · 10/11/2024
Curious as to how I would implement feature flags in #angular? 👇🏻 medium.com/@iamjustin/f...
medium.com
Feature flags in Angular
Dive into the world of Angular feature flags! Discover the flexibility they bring, empowering seamless releases and agile development.
020
Reposted by Justin
Playful Programming @playfulprogramming.com · 08/11/2024
📝 How does Zoneless Angular Work? As part of our Angular Zone.js Internals series, in our latest article we learn more about the provideExperimentalZonelessChangeDetection experiment in Angular 18!
buff.ly
How does Zoneless Angular Work?
In the future Angular will not have Zone.js enabled by default and will not need it for change detection. But how will that work in a technical sense?
063
Justin @iamjustin.dev · 08/11/2024
Apparently you can generate your handlers with Source. Have to try this out lol source.mswjs.io/docs/integra...
source.mswjs.io
OpenAPI (Swagger)
Learn how to generate request handlers from OpenAPI documents.
110
Justin @iamjustin.dev · 08/11/2024
Currently listening to the podcast from Cory House with @kettanaito.com about MSW. It's great. www.youtube.com/watch?v=-g_j...
youtube.com
Mastering Mocking in Automated Tests with Artem Zakharchenko
YouTube video by Cory House
120
Justin @iamjustin.dev · 07/11/2024
Are you still adding people? Would like to be added as well 😄
120