<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: wlucha</title>
    <description>The latest articles on Forem by wlucha (@wlucha).</description>
    <link>https://forem.com/wlucha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F387041%2F7a2a879a-d1d5-4247-92d4-0273e46af37e.jpeg</url>
      <title>Forem: wlucha</title>
      <link>https://forem.com/wlucha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/wlucha"/>
    <language>en</language>
    <item>
      <title>Boost Your Angular Forms with a Powerful Country Picker</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sat, 01 Mar 2025 20:07:33 +0000</pubDate>
      <link>https://forem.com/wlucha/boost-your-angular-forms-with-a-powerful-country-picker-5af9</link>
      <guid>https://forem.com/wlucha/boost-your-angular-forms-with-a-powerful-country-picker-5af9</guid>
      <description>&lt;p&gt;GitHub: &lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;https://github.com/wlucha/ng-country-select&lt;/a&gt;&lt;br&gt;
Npmjs: &lt;a href="https://www.npmjs.com/package/@wlucha/ng-country-select" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/@wlucha/ng-country-select&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In modern web development, creating dynamic and user-friendly applications often requires integrating efficient components. One common need is a country picker for forms. With a lightweight and powerful library like &lt;strong&gt;Angular Material Country Autocomplete&lt;/strong&gt;, developers can implement this feature quickly and effectively.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Angular Material Country Autocomplete?
&lt;/h2&gt;

&lt;p&gt;This library provides an elegant and high-performance solution for adding a country selection dropdown to Angular projects. It is fully compatible with the latest Angular versions (16-19) and designed for easy integration and extensive customization.&lt;/p&gt;
&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multilingual Support:&lt;/strong&gt; Includes languages like  English, French, Spanish, Italian, German, Arabic, Chinese, Hindi, Bengali, Portuguese and Russian.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Generated Flag Emojis:&lt;/strong&gt; Displays country flags based on ISO codes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Search:&lt;/strong&gt; Allows searching by country names, Alpha2/3 codes, or translations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Material Design Integration:&lt;/strong&gt; Seamlessly integrates with Angular Material.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimized Performance:&lt;/strong&gt; Features debounce search with RxJS and virtual scrolling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standalone Component:&lt;/strong&gt; Can be easily added to any project.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Why Use This Library?
&lt;/h2&gt;

&lt;p&gt;Using this library saves time and ensures a consistent user experience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Time-Saving:&lt;/strong&gt; No need to build a custom country picker from scratch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internationalization:&lt;/strong&gt; Supports multiple languages and localization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customizability:&lt;/strong&gt; Easily styled and configured for specific requirements.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Getting Started: Installation and Basic Setup
&lt;/h2&gt;

&lt;p&gt;Setting up the library is quick and straightforward.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Installation
&lt;/h3&gt;

&lt;p&gt;Install the library using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ng add @wlucha/ng-country-select
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Alternatively, manually add the dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save&lt;/span&gt; @angular/material @angular/cdk @angular/animations @wlucha/ng-country-select
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Import and Configure
&lt;/h3&gt;

&lt;p&gt;Import the component into your module:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;CountrySelectComponent&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@wlucha/ng-country-select&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;NgModule&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;imports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nx"&gt;CountrySelectComponent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;// ... other imports&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Use in Templates
&lt;/h3&gt;

&lt;p&gt;Add the component to your template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ng-country-select&lt;/span&gt;
  &lt;span class="na"&gt;(ngModel)=&lt;/span&gt;&lt;span class="s"&gt;“selectedCountry”&lt;/span&gt;
  &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;”‘Select&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt; &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="err"&gt;’”&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ng-country-select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Advanced Customization
&lt;/h2&gt;

&lt;p&gt;The library offers many customization options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Styling:&lt;/strong&gt; Override default styles using CSS classes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parameters:&lt;/strong&gt; Configure behavior such as default language or filters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Localization:&lt;/strong&gt; Add translations to support international users.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Real-World Use Cases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  E-Commerce Platforms
&lt;/h3&gt;

&lt;p&gt;Allow users to quickly select their shipping destination.&lt;/p&gt;

&lt;h3&gt;
  
  
  Travel Booking Applications
&lt;/h3&gt;

&lt;p&gt;Provide an intuitive interface for selecting departure or destination countries.&lt;/p&gt;

&lt;h3&gt;
  
  
  International Registration Forms
&lt;/h3&gt;

&lt;p&gt;Simplify the registration process with a user-friendly country picker.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supporting the Project
&lt;/h2&gt;

&lt;p&gt;Open-source projects thrive on community support. You can contribute by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⭐ Starring the project on GitHub&lt;/li&gt;
&lt;li&gt;🐛 Reporting bugs&lt;/li&gt;
&lt;li&gt;💡 Suggesting features or improvements&lt;/li&gt;
&lt;li&gt;📢 Sharing the tool with other developers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This library is a great example of how community-driven development can create valuable tools. Try it out today and enhance your Angular applications!&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;https://github.com/wlucha/ng-country-select&lt;/a&gt;&lt;br&gt;
Npmjs: &lt;a href="https://www.npmjs.com/package/@wlucha/ng-country-select" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/@wlucha/ng-country-select&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>angular</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🌍 How to Create a Country Autocomplete in Angular: A Step-by-Step Guide 🌍</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Fri, 07 Feb 2025 16:35:44 +0000</pubDate>
      <link>https://forem.com/wlucha/how-to-create-a-country-autocomplete-in-angular-a-step-by-step-guide-1bdl</link>
      <guid>https://forem.com/wlucha/how-to-create-a-country-autocomplete-in-angular-a-step-by-step-guide-1bdl</guid>
      <description>&lt;p&gt;&lt;em&gt;Empower your Angular apps with an elegant, multilingual country search.&lt;/em&gt;✨&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;

&lt;p&gt;When building any globally targeted Angular application — be it for e-commerce, social platforms, or travel portals — your users often need to select their country. A country dropdown or autocomplete can be surprisingly tricky to build from scratch: You might need to manage large lists of country names, codes, and even flags for a polished user experience. Not to mention supporting multiple languages and different forms of search (e.g., by ISO code, local name, or English name).&lt;/p&gt;

&lt;p&gt;In this guide, we’ll explore a simple yet powerful way to implement a &lt;strong&gt;country selection&lt;/strong&gt; feature in your Angular project. We’ll walk you through the entire process, from setting up a brand-new Angular Material project to integrating a robust, &lt;strong&gt;ready-made&lt;/strong&gt; country selection component using &lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;&lt;strong&gt;@wlucha/ng-country-select&lt;/strong&gt;&lt;/a&gt;. Let’s dive right in! 🌐&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Why Use a Pre-Built Country Autocomplete?
&lt;/h2&gt;

&lt;p&gt;Before we jump into coding, let’s talk about &lt;em&gt;why&lt;/em&gt; you might want to use a pre-built solution. Managing a high-quality country autocomplete can be challenging for several reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Huge List&lt;/strong&gt;: There are nearly 200 countries worldwide, each with distinct codes (ISO Alpha2, Alpha3) and localized names.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multilingual Requirements&lt;/strong&gt;: Your users may need to see country names in different languages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flags&lt;/strong&gt;: Displaying flags as images or emojis can be tricky to handle efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Search Complexity&lt;/strong&gt;: Supporting partial matches, synonyms, or codes can increase your data-management overhead.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A specialized library like &lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;&lt;strong&gt;@wlucha/ng-country-select&lt;/strong&gt;&lt;/a&gt; handles all these complexities for you — complete with Angular Material design, flags rendered via emojis, multi-language support, and efficient searching powered by RxJS. This means you can focus on &lt;em&gt;your&lt;/em&gt; application’s core functionality while ensuring a polished and intuitive user experience. ✨&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Getting Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  3.1. Create (or Open) Your Angular Project
&lt;/h3&gt;

&lt;p&gt;If you haven’t already set up an Angular project, you can do so in a snap using the Angular CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @angular/cli
ng new country-demo
&lt;span class="nb"&gt;cd &lt;/span&gt;country-demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When prompted, you can choose to include Angular routing and select your preferred stylesheet format. Once done, open the project in your favorite code editor (VS Code, WebStorm, etc.).&lt;/p&gt;

&lt;h3&gt;
  
  
  3.2. Include Angular Material (Optional but Recommended)
&lt;/h3&gt;

&lt;p&gt;Since &lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;&lt;strong&gt;@wlucha/ng-country-select&lt;/strong&gt;&lt;/a&gt; is built with Angular Material design in mind, you might want to install and configure Angular Material if you haven’t already:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ng add @angular/material
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will be prompted to choose a Material theme, set up gestures, and enable browser animations. Follow the prompts to complete the installation. This step ensures that your app is styled in line with Material Design guidelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Install the "&lt;a class="mentioned-user" href="https://dev.to/wlucha"&gt;@wlucha&lt;/a&gt;/ng-country-select" Library
&lt;/h2&gt;

&lt;p&gt;Now, let’s add the country autocomplete library to our project. This single command installs all necessary dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save&lt;/span&gt; @angular/material @angular/cdk @angular/animations @wlucha/ng-country-select
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Note: If you’ve already installed Angular Material (@angular/material, @angular/cdk, and @angular/animations), you only need:&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save&lt;/span&gt; @wlucha/ng-country-select
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Configure the Module
&lt;/h2&gt;

&lt;p&gt;In Angular, we need to import the component that we want to use. Head over to your &lt;strong&gt;app.module.ts&lt;/strong&gt; (or any module where you want to use the country select) and add the CountrySelectComponent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BrowserModule&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/platform-browser&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;NgModule&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/core&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;AppComponent&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./app.component&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;CountrySelectComponent&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@wlucha/ng-country-select&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BrowserAnimationsModule&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/platform-browser/animations&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;NgModule&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;declarations&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;AppComponent&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;imports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nx"&gt;BrowserModule&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;BrowserAnimationsModule&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// Required for Angular Material animations&lt;/span&gt;
    &lt;span class="nx"&gt;CountrySelectComponent&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;bootstrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;AppComponent&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AppModule&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this, the  component is ready to be used in your templates.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Basic Usage: A Simple Example
&lt;/h2&gt;

&lt;p&gt;Let’s create a straightforward autocomplete in our &lt;strong&gt;app.component.html&lt;/strong&gt; to see how this works:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Select Your Country 🌏&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;ng-country-select&lt;/span&gt;
   &lt;span class="na"&gt;[lang]=&lt;/span&gt;&lt;span class="s"&gt;"'en'"&lt;/span&gt;
   &lt;span class="na"&gt;(countrySelected)=&lt;/span&gt;&lt;span class="s"&gt;"handleSelection($event)"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ng-country-select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, in &lt;strong&gt;app.component.ts&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Component&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/core&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Country&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@wlucha/ng-country-select&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;app-root&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;templateUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./app.component.html&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AppComponent&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;handleSelection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;selectedCountry&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Country&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Selected country:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;selectedCountry&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// Perform any logic based on the chosen country (e.g., storing user profile info)&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Boom&lt;/strong&gt; — that’s all you need for a functional country autocomplete! ✅ Users can type to filter the list, and once they choose a country, the (countrySelected) event emits the full Country object.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Digging Deeper: Key Features &amp;amp; Customization
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;&lt;strong&gt;@wlucha/ng-country-select&lt;/strong&gt;&lt;/a&gt; offers a host of features that make it easy to tailor the country selection experience to your needs:&lt;/p&gt;

&lt;h3&gt;
  
  
  7.1. Multi-Language Magic
&lt;/h3&gt;

&lt;p&gt;Out of the box, you can switch the language by using the lang input property:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ng-country-select&lt;/span&gt; &lt;span class="na"&gt;[lang]=&lt;/span&gt;&lt;span class="s"&gt;"'de'"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ng-country-select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will display country names in German. Supported languages include: English (en), German (de), French (fr), Spanish (es), and Italian (it). You can even search for a country in &lt;em&gt;all&lt;/em&gt; available translations with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ng-country-select&lt;/span&gt;
  &lt;span class="na"&gt;[searchAllLanguages]=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ng-country-select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  7.2. Smart Search &amp;amp; Flags
&lt;/h3&gt;

&lt;p&gt;Each country is displayed with an emoji flag (no extra images needed!) and is searchable by &lt;strong&gt;local name, English name, and ISO codes&lt;/strong&gt; (Alpha2 or Alpha3). It makes finding a country super easy.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.3. Angular Material Integration
&lt;/h3&gt;

&lt;p&gt;Because it uses Angular Material’s &lt;strong&gt;MatFormField&lt;/strong&gt; and &lt;strong&gt;MatInput&lt;/strong&gt;, you get consistent styling and theming out of the box. You can choose 'fill' or 'outline' appearances to match your app’s style, e.g.:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ng-country-select&lt;/span&gt; &lt;span class="na"&gt;[appearance]=&lt;/span&gt;&lt;span class="s"&gt;"'outline'"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ng-country-select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  7.4. Performance Optimizations
&lt;/h3&gt;

&lt;p&gt;The library comes with &lt;strong&gt;debounce&lt;/strong&gt; search input to reduce unnecessary lookups. You can configure the delay:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ng-country-select&lt;/span&gt; &lt;span class="na"&gt;[debounceTime]=&lt;/span&gt;&lt;span class="s"&gt;"300"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ng-country-select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ensures that searches are not fired on every keystroke but only after the user stops typing for 300 ms.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Advanced Usage
&lt;/h2&gt;

&lt;p&gt;If you want to bind this component to a FormControl, display alpha codes, or listen to more events (e.g., input changes), take advantage of these additional inputs and outputs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ng-country-select&lt;/span&gt;
   &lt;span class="na"&gt;[lang]=&lt;/span&gt;&lt;span class="s"&gt;"'en'"&lt;/span&gt;
   &lt;span class="na"&gt;[formControl]=&lt;/span&gt;&lt;span class="s"&gt;"countryControl"&lt;/span&gt;
   &lt;span class="na"&gt;[searchAllLanguages]=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;
   &lt;span class="na"&gt;[showCodes]=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;
   &lt;span class="na"&gt;[debounceTime]=&lt;/span&gt;&lt;span class="s"&gt;"200"&lt;/span&gt;
   &lt;span class="na"&gt;[appearance]=&lt;/span&gt;&lt;span class="s"&gt;"'outline'"&lt;/span&gt;
   &lt;span class="na"&gt;[placeholder]=&lt;/span&gt;&lt;span class="s"&gt;"'Search country'"&lt;/span&gt;
   &lt;span class="na"&gt;(countrySelected)=&lt;/span&gt;&lt;span class="s"&gt;"onCountrySelect($event)"&lt;/span&gt;
   &lt;span class="na"&gt;(inputChanged)=&lt;/span&gt;&lt;span class="s"&gt;"trackSearchTerm($event)"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ng-country-select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  8.1. Key Inputs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;defaultCountry&lt;/strong&gt;: Preselect a country from the start.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;formControl&lt;/strong&gt;: Two-way binding with Angular Reactive Forms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;lang&lt;/strong&gt;: Choose the language (en, de, fr, es, it).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;searchAllLanguages&lt;/strong&gt;: Toggle multi-lingual searching on/off.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;appearance&lt;/strong&gt;: 'fill' | 'outline' to control the Material appearance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;placeholder&lt;/strong&gt;: Override the search box placeholder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;disabled&lt;/strong&gt;: Disable the entire component if needed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8.2. Important Outputs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;countrySelected&lt;/strong&gt;: Emits a Country object when a user picks a country.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;inputChanged&lt;/strong&gt;: Emits a string for every typed character, useful for analytics or debugging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;closed&lt;/strong&gt;: Triggers when the autocomplete panel closes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  9. Putting It All Together
&lt;/h2&gt;

&lt;p&gt;Below is a more comprehensive example to illustrate how you might tie this into a reactive form:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;OnInit&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/core&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;FormControl&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/forms&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Country&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@wlucha/ng-country-select&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;app-root&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;template&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`
    &amp;lt;h2&amp;gt;Advanced Country Selection 🌍&amp;lt;/h2&amp;gt;
    &amp;lt;form&amp;gt;
      &amp;lt;ng-country-select
        [lang]="'es'"
        [formControl]="countryControl"
        [showCodes]="true"
        [searchAllLanguages]="true"
        [appearance]="'outline'"
        [placeholder]="'Elige tu país...'"
        (countrySelected)="onCountrySelected($event)"
        (inputChanged)="onInputChanged($event)"
      &amp;gt;&amp;lt;/ng-country-select&amp;gt;
    &amp;lt;/form&amp;gt;
    &amp;lt;p&amp;gt;Selected Country: {{ selectedCountryName }}&amp;lt;/p&amp;gt;
    `&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AppComponent&lt;/span&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;OnInit&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

 &lt;span class="nx"&gt;countryControl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FormControl&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
 &lt;span class="nl"&gt;selectedCountryName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

 &lt;span class="nf"&gt;ngOnInit&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Optional: set default value in reactive form&lt;/span&gt;
    &lt;span class="c1"&gt;// countryControl.setValue({ name: 'Germany', alpha2: 'DE', ... })&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;onCountrySelected&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Country&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;selectedCountryName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;country&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;User selected:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;country&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;onInputChanged&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;term&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;User is typing:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;term&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this snippet, we:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Instantiate a FormControl to track the country.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Listen for countrySelected to update our component state.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Capture real-time user input from inputChanged.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Display the user’s selection in the template.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  10. Where to Go from Here?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  10.1. Explore More Features
&lt;/h3&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub repository&lt;/strong&gt;&lt;/a&gt; for deeper documentation, advanced use cases, and upcoming features like an ng-add schematic, more languages, and possibly richer flag options. Feel free to submit issues or pull requests if you spot a bug or have an idea for a new feature.&lt;/p&gt;

&lt;h3&gt;
  
  
  10.2. Contribute &amp;amp; Support
&lt;/h3&gt;

&lt;p&gt;If you find this library helpful, &lt;strong&gt;show some love&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Star the repo&lt;/strong&gt; on GitHub ⭐&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Report bugs&lt;/strong&gt; or &lt;strong&gt;suggest features&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Share&lt;/strong&gt; with your colleagues or community&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every small contribution helps make open-source tools more robust. 😍&lt;/p&gt;

&lt;h3&gt;
  
  
  10.3. Integrate in Production
&lt;/h3&gt;

&lt;p&gt;Once satisfied with your setup, you can integrate the country select component wherever you need. It’s perfect for user registration forms, shipping address inputs, or dynamic dashboards that might filter data by region. Pair it with a good backend that handles localized content, and you’ll be serving up an exceptional user experience worldwide. 🌎&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Conclusion
&lt;/h2&gt;

&lt;p&gt;Implementing a country autocomplete in Angular no longer needs to be a daunting task. By harnessing the power of &lt;strong&gt;Angular Material&lt;/strong&gt; and a specialized library like &lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;&lt;strong&gt;@wlucha/ng-country-select&lt;/strong&gt;&lt;/a&gt;, you can quickly spin up a &lt;strong&gt;multilingual&lt;/strong&gt;, &lt;strong&gt;flag-emoji&lt;/strong&gt;-enhanced, and &lt;strong&gt;highly performant&lt;/strong&gt; country picker in just a few steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key takeaways&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can avoid the headache of managing huge country lists and localization quirks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The library is flexible enough to handle different Angular versions, from 16 to 19.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Searching by partial name, code, or localized name is super smooth — thanks to built-in RxJS support.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Give it a try, customize it to your needs, and watch your users enjoy a swift, intuitive location selection experience! 🎉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thanks for reading, and happy coding!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Check out more details and the full documentation on the project’s GitHub page: &lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;&lt;strong&gt;@wlucha/ng-country-select&lt;/strong&gt;&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>webdev</category>
      <category>programming</category>
      <category>typescript</category>
    </item>
    <item>
      <title>🚀 Kickstart Your Angular Projects with the Ultimate Starter Kit! 🚀</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sun, 02 Feb 2025 08:57:11 +0000</pubDate>
      <link>https://forem.com/wlucha/kickstart-your-angular-projects-with-the-ultimate-starter-kit-1cg7</link>
      <guid>https://forem.com/wlucha/kickstart-your-angular-projects-with-the-ultimate-starter-kit-1cg7</guid>
      <description>&lt;p&gt;Have you ever wanted a &lt;strong&gt;ready-to-go Angular&lt;/strong&gt; project that helps you skip the boilerplate setup and jump straight into development? Look no further! Introducing the &lt;strong&gt;Angular Starter&lt;/strong&gt; – a &lt;strong&gt;production-ready&lt;/strong&gt;, &lt;strong&gt;enterprise-grade&lt;/strong&gt; Angular boilerplate packed with modern tools and best practices.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Quick Link&lt;/strong&gt;: &lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;  ⭐&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why You’ll Love It ❤️
&lt;/h2&gt;

&lt;p&gt;Building an Angular app from scratch can be time-consuming, especially if you want to ensure best practices, scalability, and a rock-solid foundation. The Angular Starter project simplifies your workflow so you can focus on &lt;strong&gt;what really matters – coding your features&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Highlights 🌟
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Angular 19&lt;/strong&gt;: Always stay on the cutting edge.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Angular Material&lt;/strong&gt;: Effortless Material Design for a gorgeous UI.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unit Testing with Jest&lt;/strong&gt;: Blazing fast tests for your components.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;E2E Testing with Cypress&lt;/strong&gt;: Bulletproof your app from start to finish.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transloco&lt;/strong&gt;: Internationalize your app with minimal fuss.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker Support&lt;/strong&gt;: Ship your containerized Angular app effortlessly.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compodoc &amp;amp; Storybook&lt;/strong&gt;: Auto-generate docs and showcase components.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Audits with AuditJS&lt;/strong&gt;: Keep your dependencies safe and sound.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Generated CHANGELOG&lt;/strong&gt;: Never miss an update in your project's evolution.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get Started in Minutes ⏱️
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;
git clone https://github.com/wlucha/angular-starter
&lt;span class="nb"&gt;cd &lt;/span&gt;angular-starter

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start the development server&lt;/span&gt;
npm run start

&lt;span class="c"&gt;# Open your browser at http://localhost:4200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Deployment 🐳
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build the Docker image&lt;/span&gt;
docker build &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; angular-starter

&lt;span class="c"&gt;# Run the Docker container&lt;/span&gt;
docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:80 angular-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Commands You’ll Use All the Time 👨‍💻
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run start&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start the development server.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run lint&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lint the project for code quality.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run test&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run unit tests with Jest.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run build&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Build the project for production.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run compodoc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Generate documentation with Compodoc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run storybook&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Launch Storybook for component examples.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run audit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Audit dependencies for security vulnerabilities.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm run prettier&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Format the entire project with Prettier.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Demo &amp;amp; Deployment 🖥️
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Demo&lt;/strong&gt;: &lt;a href="https://stackblitz.com/github/wlucha/angular-starter" rel="noopener noreferrer"&gt;Check it out on StackBlitz&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploy to Heroku&lt;/strong&gt;: &lt;a href="https://heroku.com/deploy" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye0dxlawj5v0we69w488.png" alt="Deploy to Heroku" width="147" height="32"&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contribute &amp;amp; Make It Even Better ✨
&lt;/h2&gt;

&lt;p&gt;This project thrives on community feedback and contributions. If you spot any improvement or have a cool feature in mind, feel free to open a new issue or submit a pull request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Support the Project ⭐
&lt;/h2&gt;

&lt;p&gt;If you find this starter helpful, consider giving the repo a star on GitHub! Every star lets us know we're on the right track and motivates us to keep pushing out new features and improvements.&lt;/p&gt;

&lt;h2&gt;
  
  
  License 📄
&lt;/h2&gt;

&lt;p&gt;Released under the MIT License, meaning you have the freedom to use, modify, and distribute this project in your own workflow.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Ready to build something amazing?&lt;/strong&gt; Give the project a star, clone the repository, and start your next Angular adventure today! 🚀&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The best time to start was yesterday. The next best time is now." – So why not spin it up and get coding? ⚡&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>🌍 Angular Material Country Autocomplete</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sun, 02 Feb 2025 08:28:14 +0000</pubDate>
      <link>https://forem.com/wlucha/angular-material-country-autocomplete-2d00</link>
      <guid>https://forem.com/wlucha/angular-material-country-autocomplete-2d00</guid>
      <description>&lt;p&gt;Hey everyone! I'm super excited to introduce &lt;strong&gt;&lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;ng-country-select&lt;/a&gt;&lt;/strong&gt; – a high-performance, multilingual country autocomplete built on &lt;strong&gt;Angular&lt;/strong&gt; and &lt;strong&gt;Angular Material&lt;/strong&gt;. If you’ve ever needed a quick and elegant way to select countries in your apps (complete with flags, codes, and translations), look no further!  &lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F27c60301-aedc-4d97-8eb0-015912bab4b2" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F27c60301-aedc-4d97-8eb0-015912bab4b2" width="256" height="303"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Why ng-country-select?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;🚀 Angular 16+ Ready&lt;/strong&gt; – Fully compatible with Angular 16, 17, 18, and 19.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌐 Multi-Language Magic&lt;/strong&gt; – English, German, French, Spanish and Italian out of the box, and super easy to add more.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎌 Automatic Flag Emojis&lt;/strong&gt; – Zero image dependencies! Relying on ISO codes for the magic.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔍 Intelligent Search&lt;/strong&gt; – Match by local name, English name, alpha2/3 codes, or &lt;em&gt;any&lt;/em&gt; available translation.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎨 Material Design&lt;/strong&gt; – Seamless integration with Angular Material for a polished UI.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⚡ Performance&lt;/strong&gt; – RxJS-based searching with debouncing and optional virtual scrolling.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🧩 Standalone&lt;/strong&gt; – Import the component directly, no extra boilerplate needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  📺 Live Demo
&lt;/h2&gt;

&lt;p&gt;Try it out in our &lt;a href="https://wlucha.github.io/ng-country-select/" rel="noopener noreferrer"&gt;&lt;strong&gt;Live Demo&lt;/strong&gt;&lt;/a&gt; and see it in action!&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Angular Compatibility
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Angular Version&lt;/th&gt;
&lt;th&gt;Supported?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FAngular-16-red" alt="Angular 16" width="76" height="20"&gt;&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FAngular-17-orange" alt="Angular 17" width="76" height="20"&gt;&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FAngular-18-yellow" alt="Angular 18" width="76" height="20"&gt;&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FAngular-19-green" alt="Angular 19" width="76" height="20"&gt;&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🛠️ Setup in 60 Seconds
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Install Dependencies
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save&lt;/span&gt; @angular/material @angular/cdk @angular/animations @wlucha/ng-country-select
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Import Component
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;CountrySelectComponent&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@wlucha/ng-country-select&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;NgModule&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;imports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nx"&gt;CountrySelectComponent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;// ... other imports&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Add Basic Usage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ng-country-select&lt;/span&gt;
  &lt;span class="na"&gt;[lang]=&lt;/span&gt;&lt;span class="s"&gt;"'en'"&lt;/span&gt;
  &lt;span class="na"&gt;(countrySelected)=&lt;/span&gt;&lt;span class="s"&gt;"handleSelection($event)"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ng-country-select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🎛️ Parameters
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🎚️ Inputs
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;defaultCountry&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;`Country \&lt;/td&gt;
&lt;td&gt;null`&lt;/td&gt;
&lt;td&gt;&lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;selectedCountry&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;`Country \&lt;/td&gt;
&lt;td&gt;null`&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lang&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;'en'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Language for displaying country names (e.g., &lt;code&gt;en&lt;/code&gt;, &lt;code&gt;de&lt;/code&gt;, &lt;code&gt;fr&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;searchAllLanguages&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;If &lt;code&gt;true&lt;/code&gt;, searching will match in &lt;strong&gt;all&lt;/strong&gt; available translations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;placeholder&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;'Search country'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Placeholder text for the input field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;debounceTime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;number&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Debounce time in milliseconds for the search input&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;disabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disables the component if &lt;code&gt;true&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;appearance&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;`'fill' \&lt;/td&gt;
&lt;td&gt;'outline'`&lt;/td&gt;
&lt;td&gt;&lt;code&gt;'fill'&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;required&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Marks the field as required if &lt;code&gt;true&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;showCodes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;If &lt;code&gt;true&lt;/code&gt;, shows alpha2/alpha3 codes in the autocomplete results&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;color&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ThemePalette&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;'primary'&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Angular Material color palette to use (&lt;code&gt;'primary'&lt;/code&gt;, &lt;code&gt;'accent'&lt;/code&gt;, &lt;code&gt;'warn'&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🚨 Outputs
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Event&lt;/th&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;countrySelected&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Country&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full country object on selection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;inputChanged&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Live search term updates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;closed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;When dropdown closes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  💻 Power User Setup
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ng-country-select&lt;/span&gt;
  &lt;span class="na"&gt;[lang]=&lt;/span&gt;&lt;span class="s"&gt;"'en'"&lt;/span&gt;
  &lt;span class="na"&gt;[searchAllLanguages]=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;
  &lt;span class="na"&gt;[showCodes]=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;
  &lt;span class="na"&gt;[debounceTime]=&lt;/span&gt;&lt;span class="s"&gt;"200"&lt;/span&gt;
  &lt;span class="na"&gt;[appearance]=&lt;/span&gt;&lt;span class="s"&gt;"'outline'"&lt;/span&gt;
  &lt;span class="na"&gt;[placeholder]=&lt;/span&gt;&lt;span class="s"&gt;"'Search country'"&lt;/span&gt;
  &lt;span class="na"&gt;(countrySelected)=&lt;/span&gt;&lt;span class="s"&gt;"onCountrySelect($event)"&lt;/span&gt;
  &lt;span class="na"&gt;(inputChanged)=&lt;/span&gt;&lt;span class="s"&gt;"trackSearchTerm($event)"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ng-country-select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🌟 Support the Project
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Love this component? Here's how you can help:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;⭐ &lt;strong&gt;Star the repo&lt;/strong&gt; (you're awesome!)
&lt;/li&gt;
&lt;li&gt;🐛 &lt;strong&gt;Report bugs&lt;/strong&gt; &lt;a href="https://github.com/wlucha/ng-country-select/issues" rel="noopener noreferrer"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💡 &lt;strong&gt;Suggest features&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📢 &lt;strong&gt;Share with your network&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Your star fuels development! ⭐&lt;/span&gt;
&lt;span class="c"&gt;# Clone and explore:&lt;/span&gt;
git clone https://github.com/wlucha/ng-country-select.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/wlucha/ng-country-select" rel="noopener noreferrer"&gt;https://github.com/wlucha/ng-country-select&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>angular</category>
      <category>programming</category>
    </item>
    <item>
      <title>🚀 Angular 19 + Cypress, Material + Transloco + Jest, EsLint + Docker + Prettier 🚀</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sun, 04 Aug 2024 06:53:13 +0000</pubDate>
      <link>https://forem.com/wlucha/angular-18-cypress-material-transloco-jest-eslint-docker-prettier-2o39</link>
      <guid>https://forem.com/wlucha/angular-18-cypress-material-transloco-jest-eslint-docker-prettier-2o39</guid>
      <description>&lt;p&gt;This is an Angular 19 Starter with Material, Cypress, Transloco, Jest, Compodoc, Docker Support, ESLint &amp;amp; Prettier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub: &lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ &lt;a href="https://angular.dev/" rel="noopener noreferrer"&gt;Angular 19&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://material.angular.io/" rel="noopener noreferrer"&gt;Angular Material&lt;/a&gt;&lt;br&gt;
✅ Unit Testing with &lt;a href="https://jestjs.io/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt;&lt;br&gt;
✅ End-to-End Testing with &lt;a href="https://www.cypress.io/" rel="noopener noreferrer"&gt;Cypress&lt;/a&gt;&lt;br&gt;
✅ Internationalization with &lt;a href="https://github.com/jsverse/transloco" rel="noopener noreferrer"&gt;Transloco&lt;/a&gt;&lt;br&gt;
✅ Auto documentation with &lt;a href="https://compodoc.app/" rel="noopener noreferrer"&gt;Compodoc&lt;/a&gt;&lt;br&gt;
✅ Provide component examples with &lt;a href="https://storybook.js.org/" rel="noopener noreferrer"&gt;Storybook&lt;/a&gt;&lt;br&gt;
✅ Analyse your project with &lt;a href="https://www.npmjs.com/package/source-map-explorer" rel="noopener noreferrer"&gt;source-map-explorer&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://github.com/conventional-changelog/commitlint" rel="noopener noreferrer"&gt;Commit Linting&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.npmjs.com/package/auditjs" rel="noopener noreferrer"&gt;AuditJS&lt;/a&gt; Audit this application using Sonatype OSS Index&lt;br&gt;
✅ Auto-generate a CHANGELOG with &lt;a href="https://github.com/cookpete/auto-changelog" rel="noopener noreferrer"&gt;auto-changelog&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://heroku.com/deploy" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye0dxlawj5v0we69w488.png" alt="Deploy" width="147" height="32"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install / Development
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the project&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/wlucha/angular-starter
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;angular-starter

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start server&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm run start

&lt;span class="c"&gt;# Open in browser: http://localhost:4200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Deployment
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build Docker image&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker build &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; angular-starter

&lt;span class="c"&gt;# Run Docker Container&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:80 angular-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hub.docker.com/r/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://hub.docker.com/r/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `npm run start` - Start the app
- `npm run lint` - Lint the project
- `npm run test` - Run unit tests
- `npm run build` - Build the project
- `npm run build:prod` - Build the project in production mode
- `npm run build:prod:stats` - Build the project in product mode with stats
- `npm run analyse` - Analyse bundle with [webpack-bundle-analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer)
- `npm run compodoc` - Generate [compodoc](https://github.com/compodoc/compodoc) documentation
- `npm run version` - Generate changelog
- `npm run prettier` - Format the whole project
- `npm run audit` - Audit this application using Sonatype OSS Index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;MIT License&lt;/p&gt;

&lt;p&gt;Copyright (c) 2025 Wilfried Lucha&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub: &lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>webdev</category>
      <category>cypress</category>
      <category>transloco</category>
    </item>
    <item>
      <title>The best Angular 19 Starter Project</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sun, 04 Aug 2024 06:51:01 +0000</pubDate>
      <link>https://forem.com/wlucha/the-best-angular-18-starter-project-1a6g</link>
      <guid>https://forem.com/wlucha/the-best-angular-18-starter-project-1a6g</guid>
      <description>&lt;p&gt;This is an Angular 19 Starter with Material, Cypress, Transloco, Jest, Compodoc, Docker Support, ESLint &amp;amp; Prettier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub: &lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ &lt;a href="https://angular.dev/" rel="noopener noreferrer"&gt;Angular 19&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://material.angular.io/" rel="noopener noreferrer"&gt;Angular Material&lt;/a&gt;&lt;br&gt;
✅ Unit Testing with &lt;a href="https://jestjs.io/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt;&lt;br&gt;
✅ End-to-End Testing with &lt;a href="https://www.cypress.io/" rel="noopener noreferrer"&gt;Cypress&lt;/a&gt;&lt;br&gt;
✅ Internationalization with &lt;a href="https://github.com/jsverse/transloco" rel="noopener noreferrer"&gt;Transloco&lt;/a&gt;&lt;br&gt;
✅ Auto documentation with &lt;a href="https://compodoc.app/" rel="noopener noreferrer"&gt;Compodoc&lt;/a&gt;&lt;br&gt;
✅ Provide component examples with &lt;a href="https://storybook.js.org/" rel="noopener noreferrer"&gt;Storybook&lt;/a&gt;&lt;br&gt;
✅ Analyse your project with &lt;a href="https://www.npmjs.com/package/source-map-explorer" rel="noopener noreferrer"&gt;source-map-explorer&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://github.com/conventional-changelog/commitlint" rel="noopener noreferrer"&gt;Commit Linting&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.npmjs.com/package/auditjs" rel="noopener noreferrer"&gt;AuditJS&lt;/a&gt; Audit this application using Sonatype OSS Index&lt;br&gt;
✅ Auto-generate a CHANGELOG with &lt;a href="https://github.com/cookpete/auto-changelog" rel="noopener noreferrer"&gt;auto-changelog&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://heroku.com/deploy" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye0dxlawj5v0we69w488.png" alt="Deploy" width="147" height="32"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install / Development
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the project&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/wlucha/angular-starter
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;angular-starter

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start server&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm run start

&lt;span class="c"&gt;# Open in browser: http://localhost:4200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Deployment
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build Docker image&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker build &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; angular-starter

&lt;span class="c"&gt;# Run Docker Container&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:80 angular-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hub.docker.com/r/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://hub.docker.com/r/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `npm run start` - Start the app
- `npm run lint` - Lint the project
- `npm run test` - Run unit tests
- `npm run build` - Build the project
- `npm run build:prod` - Build the project in production mode
- `npm run build:prod:stats` - Build the project in product mode with stats
- `npm run analyse` - Analyse bundle with [webpack-bundle-analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer)
- `npm run compodoc` - Generate [compodoc](https://github.com/compodoc/compodoc) documentation
- `npm run version` - Generate changelog
- `npm run prettier` - Format the whole project
- `npm run audit` - Audit this application using Sonatype OSS Index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;MIT License&lt;/p&gt;

&lt;p&gt;Copyright (c) 2025 Wilfried Lucha&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub: &lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>cypress</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The best Angular 19 Starter Project</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sat, 13 Jan 2024 09:04:52 +0000</pubDate>
      <link>https://forem.com/wlucha/the-best-angular-17-starter-project-26a3</link>
      <guid>https://forem.com/wlucha/the-best-angular-17-starter-project-26a3</guid>
      <description>&lt;p&gt;This is an Angular 19 Starter with Material, Transloco, Jest, Compodoc, Docker Support, ESLint &amp;amp; Prettier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub: &lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ &lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;Angular 19&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://material.angular.io/" rel="noopener noreferrer"&gt;Angular Material&lt;/a&gt;&lt;br&gt;
✅ Unit Testing with &lt;a href="https://jestjs.io/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt;&lt;br&gt;
✅ End-to-End Testing with &lt;a href="https://testcafe.io/" rel="noopener noreferrer"&gt;TestCafé&lt;/a&gt;&lt;br&gt;
✅ Internationalization with &lt;a href="https://github.com/ngneat/transloco" rel="noopener noreferrer"&gt;Transloco&lt;/a&gt;&lt;br&gt;
✅ Auto documentation with &lt;a href="https://compodoc.app/" rel="noopener noreferrer"&gt;Compodoc&lt;/a&gt;&lt;br&gt;
✅ Provide component examples with &lt;a href="https://storybook.js.org/" rel="noopener noreferrer"&gt;Storybook&lt;/a&gt;&lt;br&gt;
✅ Analyse your project with &lt;a href="https://www.npmjs.com/package/source-map-explorer" rel="noopener noreferrer"&gt;source-map-explorer&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://github.com/conventional-changelog/commitlint" rel="noopener noreferrer"&gt;Commit Linting&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.npmjs.com/package/auditjs" rel="noopener noreferrer"&gt;AuditJS&lt;/a&gt; Audit this application using Sonatype OSS Index&lt;br&gt;
✅ Auto-generate a CHANGELOG with &lt;a href="https://github.com/cookpete/auto-changelog" rel="noopener noreferrer"&gt;auto-changelog&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://heroku.com/deploy" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye0dxlawj5v0we69w488.png" alt="Deploy" width="147" height="32"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install / Development
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the project&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/wlucha/angular-starter
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;angular-starter

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start server&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm run start

&lt;span class="c"&gt;# Open in browser: http://localhost:4200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Deployment
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build Docker image&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker build &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; angular-starter

&lt;span class="c"&gt;# Run Docker Container&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:80 angular-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hub.docker.com/r/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://hub.docker.com/r/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `npm run start` - Start the app
- `npm run lint` - Lint the project
- `npm run test` - Run unit tests
- `npm run build` - Build the project
- `npm run build:prod` - Build the project in production mode
- `npm run build:prod:stats` - Build the project in product mode with stats
- `npm run analyse` - Analyse bundle with [webpack-bundle-analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer)
- `npm run compodoc` - Generate [compodoc](https://github.com/compodoc/compodoc) documentation
- `npm run version` - Generate changelog
- `npm run prettier` - Format the whole project
- `npm run audit` - Audit this application using Sonatype OSS Index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;MIT License&lt;/p&gt;

&lt;p&gt;Copyright (c) 2025 Wilfried Lucha&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub: &lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>angular</category>
      <category>beginners</category>
      <category>javascript</category>
    </item>
    <item>
      <title>The best Angular 19 Starter Project</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Mon, 26 Dec 2022 22:13:09 +0000</pubDate>
      <link>https://forem.com/wlucha/the-best-angular-15-starter-project-576o</link>
      <guid>https://forem.com/wlucha/the-best-angular-15-starter-project-576o</guid>
      <description>&lt;p&gt;This is an Angular 19 Starter with Material, Transloco, Jest, Compodoc, Docker Support, ESLint &amp;amp; Prettier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub: &lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ &lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;Angular 19&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://material.angular.io/" rel="noopener noreferrer"&gt;Angular Material&lt;/a&gt;&lt;br&gt;
✅ Unit Testing with &lt;a href="https://jestjs.io/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt;&lt;br&gt;
✅ End-to-End Testing with [TestCafé](&lt;a href="https://testcafe.io/" rel="noopener noreferrer"&gt;https://testcafe.io/&lt;/a&gt; &lt;br&gt;
✅ Internationalization with &lt;a href="https://github.com/ngneat/transloco" rel="noopener noreferrer"&gt;Transloco&lt;/a&gt;&lt;br&gt;
✅ Auto documentation with &lt;a href="https://compodoc.app/" rel="noopener noreferrer"&gt;Compodoc&lt;/a&gt;&lt;br&gt;
✅ Analyse your project with &lt;a href="https://www.npmjs.com/package/webpack-bundle-analyzer" rel="noopener noreferrer"&gt;webpack-bundle-analyzer&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://github.com/conventional-changelog/commitlint" rel="noopener noreferrer"&gt;Commit Linting&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.npmjs.com/package/auditjs" rel="noopener noreferrer"&gt;AuditJS&lt;/a&gt; Audit this application using Sonatype OSS Index&lt;br&gt;
✅ Auto-generate a CHANGELOG with &lt;a href="https://github.com/cookpete/auto-changelog" rel="noopener noreferrer"&gt;auto-changelog&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://heroku.com/deploy" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye0dxlawj5v0we69w488.png" alt="Deploy" width="147" height="32"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install / Development
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the project&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/wlucha/angular-starter
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;angular-starter

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start server&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm run start

&lt;span class="c"&gt;# Open in browser: http://localhost:4200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Deployment
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build Docker image&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker build &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; angular-starter

&lt;span class="c"&gt;# Run Docker Container&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:80 angular-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hub.docker.com/r/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://hub.docker.com/r/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `npm run start` - Start the app
- `npm run lint` - Lint the project
- `npm run test` - Run unit tests
- `npm run build` - Build the project
- `npm run build:prod` - Build the project in production mode
- `npm run build:prod:stats` - Build the project in product mode with stats
- `npm run analyse` - Analyse bundle with [webpack-bundle-analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer)
- `npm run compodoc` - Generate [compodoc](https://github.com/compodoc/compodoc) documentation
- `npm run version` - Generate changelog
- `npm run prettier` - Format the whole project
- `npm run audit` - Audit this application using Sonatype OSS Index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;MIT License&lt;/p&gt;

&lt;p&gt;Copyright (c) 2025 Wilfried Lucha&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub: &lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>angular</category>
    </item>
    <item>
      <title>🚀 Angular 14 + ESLint, Material + Transloco + Jest, TestCafe + Docker + Prettier 🚀</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sat, 15 Oct 2022 06:44:28 +0000</pubDate>
      <link>https://forem.com/wlucha/angular-14-eslint-material-transloco-jest-testcafe-docker-prettier-2l66</link>
      <guid>https://forem.com/wlucha/angular-14-eslint-material-transloco-jest-testcafe-docker-prettier-2l66</guid>
      <description>&lt;p&gt;This is &lt;strong&gt;THE&lt;/strong&gt; Angular 14 Starter project you are looking for!&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;✅ &lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;Angular 14&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://material.angular.io/" rel="noopener noreferrer"&gt;Angular Material&lt;/a&gt;&lt;br&gt;
✅ Unit Testing with &lt;a href="https://jestjs.io/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt;&lt;br&gt;
✅ End-to-End Testing with &lt;a href="https://testcafe.io/" rel="noopener noreferrer"&gt;TestCafé&lt;/a&gt;&lt;br&gt;
✅ Internationalization with &lt;a href="https://github.com/ngneat/transloco" rel="noopener noreferrer"&gt;Transloco&lt;/a&gt;&lt;br&gt;
✅ Auto documentation with &lt;a href="https://compodoc.app/" rel="noopener noreferrer"&gt;Compodoc&lt;/a&gt; &lt;br&gt;
✅ Analyse your project with &lt;a href="https://www.npmjs.com/package/source-map-explorer" rel="noopener noreferrer"&gt;source-map-explorer&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://github.com/conventional-changelog/commitlint" rel="noopener noreferrer"&gt;Commit Linting&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://stackblitz.com/github/wlucha/angular-starter" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldc28wlirqoltggjzd63.png" alt="StackBlitz Demo" width="146" height="37"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the project&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/wlucha/angular-starter
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;angular-starter

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start server&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm run start

&lt;span class="c"&gt;# Open in browser: http://localhost:4200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Deployment
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build Docker image&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker build &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; angular-starter

&lt;span class="c"&gt;# Run Docker Container&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:80 angular-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hub.docker.com/r/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://hub.docker.com/r/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;npm run start&lt;/code&gt; - start the app&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run lint&lt;/code&gt; - lint the project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run test&lt;/code&gt; - run unit tests&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build&lt;/code&gt; - build the project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build:prod&lt;/code&gt; - build the project in production mode&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build:prod:stats&lt;/code&gt; - build the project in product mode with stats&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run analyse&lt;/code&gt; - analyse bundle with &lt;a href="https://github.com/webpack-contrib/webpack-bundle-analyzer" rel="noopener noreferrer"&gt;webpack-bundle-analyzer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run compodoc&lt;/code&gt; - generate &lt;a href="https://github.com/compodoc/compodoc" rel="noopener noreferrer"&gt;compodoc&lt;/a&gt; documentation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run changelog&lt;/code&gt; - generate changelog&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run prettier&lt;/code&gt; - format the whole project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🚀 Angular 19 + ESLint, Material + Transloco + Jest, TestCafe + Docker + Prettier 🚀</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sun, 25 Sep 2022 10:45:25 +0000</pubDate>
      <link>https://forem.com/wlucha/angular-14-eslint-material-transloco-jest-testcafe-docker-prettier-6d3</link>
      <guid>https://forem.com/wlucha/angular-14-eslint-material-transloco-jest-testcafe-docker-prettier-6d3</guid>
      <description>&lt;p&gt;This is &lt;strong&gt;the&lt;/strong&gt; Angular 19 Starter project you are looking for!&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;✅ &lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;Angular 19&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://material.angular.io/" rel="noopener noreferrer"&gt;Angular Material&lt;/a&gt;&lt;br&gt;
✅ Unit Testing with &lt;a href="https://jestjs.io/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt;&lt;br&gt;
✅ End-to-End Testing with &lt;a href="https://testcafe.io/" rel="noopener noreferrer"&gt;TestCafé&lt;/a&gt;&lt;br&gt;
✅ Internationalization with &lt;a href="https://github.com/ngneat/transloco" rel="noopener noreferrer"&gt;Transloco&lt;/a&gt;&lt;br&gt;
✅ Auto documentation with &lt;a href="https://compodoc.app/" rel="noopener noreferrer"&gt;Compodoc&lt;/a&gt; &lt;br&gt;
✅ Analyse your project with &lt;a href="https://www.npmjs.com/package/source-map-explorer" rel="noopener noreferrer"&gt;source-map-explorer&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://github.com/conventional-changelog/commitlint" rel="noopener noreferrer"&gt;Commit Linting&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://stackblitz.com/github/wlucha/angular-starter" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldc28wlirqoltggjzd63.png" alt="StackBlitz Demo" width="146" height="37"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the project&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/wlucha/angular-starter
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;angular-starter

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start server&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm run start

&lt;span class="c"&gt;# Open in browser: http://localhost:4200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Deployment
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build Docker image&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker build &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; angular-starter

&lt;span class="c"&gt;# Run Docker Container&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:80 angular-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hub.docker.com/r/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://hub.docker.com/r/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;npm run start&lt;/code&gt; - start the app&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run lint&lt;/code&gt; - lint the project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run test&lt;/code&gt; - run unit tests&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build&lt;/code&gt; - build the project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build:prod&lt;/code&gt; - build the project in production mode&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build:prod:stats&lt;/code&gt; - build the project in product mode with stats&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run analyse&lt;/code&gt; - analyse bundle with &lt;a href="https://github.com/webpack-contrib/webpack-bundle-analyzer" rel="noopener noreferrer"&gt;webpack-bundle-analyzer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run compodoc&lt;/code&gt; - generate &lt;a href="https://github.com/compodoc/compodoc" rel="noopener noreferrer"&gt;compodoc&lt;/a&gt; documentation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run changelog&lt;/code&gt; - generate changelog&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run prettier&lt;/code&gt; - format the whole project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>typescript</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🚀 Angular 14 + ESLint, Material + Transloco + Jest, TestCafe + Docker + Prettier 🚀</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sun, 03 Jul 2022 18:11:00 +0000</pubDate>
      <link>https://forem.com/wlucha/angular-14-eslint-material-transloco-jest-testcafe-docker-prettier-1pn1</link>
      <guid>https://forem.com/wlucha/angular-14-eslint-material-transloco-jest-testcafe-docker-prettier-1pn1</guid>
      <description>&lt;p&gt;This is &lt;strong&gt;the&lt;/strong&gt; Angular 14 Starter project you are looking for!&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;✅ &lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;Angular 14&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://material.angular.io/" rel="noopener noreferrer"&gt;Angular Material&lt;/a&gt;&lt;br&gt;
✅ Unit Testing with &lt;a href="https://jestjs.io/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt;&lt;br&gt;
✅ End-to-End Testing with &lt;a href="https://testcafe.io/" rel="noopener noreferrer"&gt;TestCafé&lt;/a&gt;&lt;br&gt;
✅ Internationalization with &lt;a href="https://github.com/ngneat/transloco" rel="noopener noreferrer"&gt;Transloco&lt;/a&gt;&lt;br&gt;
✅ Auto documentation with &lt;a href="https://compodoc.app/" rel="noopener noreferrer"&gt;Compodoc&lt;/a&gt; &lt;br&gt;
✅ Analyse your project with &lt;a href="https://www.npmjs.com/package/source-map-explorer" rel="noopener noreferrer"&gt;source-map-explorer&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://github.com/conventional-changelog/commitlint" rel="noopener noreferrer"&gt;Commit Linting&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://stackblitz.com/github/wlucha/angular-starter" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldc28wlirqoltggjzd63.png" alt="StackBlitz Demo" width="146" height="37"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install / Development
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the project&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/wlucha/angular-starter
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;angular-starter

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start server&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm run start

&lt;span class="c"&gt;# Open in browser: http://localhost:4200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Deployment
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build Docker image&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker build &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; angular-starter

&lt;span class="c"&gt;# Run Docker Container&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:80 angular-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hub.docker.com/r/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://hub.docker.com/r/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;npm run start&lt;/code&gt; - start the app&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run lint&lt;/code&gt; - lint the project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run test&lt;/code&gt; - run unit tests&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build&lt;/code&gt; - build the project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build:prod&lt;/code&gt; - build the project in production mode&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build:prod:stats&lt;/code&gt; - build the project in product mode with stats&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run analyse&lt;/code&gt; - analyse bundle with &lt;a href="https://github.com/webpack-contrib/webpack-bundle-analyzer" rel="noopener noreferrer"&gt;webpack-bundle-analyzer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run compodoc&lt;/code&gt; - generate &lt;a href="https://github.com/compodoc/compodoc" rel="noopener noreferrer"&gt;compodoc&lt;/a&gt; documentation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run changelog&lt;/code&gt; - generate changelog&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run prettier&lt;/code&gt; - format the whole project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🚀 Angular 13 + ESLint, Material + Transloco + Jest, TestCafe + Docker + Prettier 🚀</title>
      <dc:creator>wlucha</dc:creator>
      <pubDate>Sat, 30 Apr 2022 07:29:56 +0000</pubDate>
      <link>https://forem.com/wlucha/angular-13-eslint-material-transloco-jest-testcafe-docker-prettier-30be</link>
      <guid>https://forem.com/wlucha/angular-13-eslint-material-transloco-jest-testcafe-docker-prettier-30be</guid>
      <description>&lt;p&gt;This is the Angular 13 Starter project you are looking for!&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;✅ &lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;Angular 13&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://material.angular.io/" rel="noopener noreferrer"&gt;Angular Material&lt;/a&gt;&lt;br&gt;
✅ Unit Testing with &lt;a href="https://jestjs.io/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt;&lt;br&gt;
✅ End-to-End Testing with &lt;a href="https://testcafe.io/" rel="noopener noreferrer"&gt;TestCafé&lt;/a&gt;&lt;br&gt;
✅ Internationalization with &lt;a href="https://github.com/ngneat/transloco" rel="noopener noreferrer"&gt;Transloco&lt;/a&gt;&lt;br&gt;
✅ Auto documentation with &lt;a href="https://compodoc.app/" rel="noopener noreferrer"&gt;Compodoc&lt;/a&gt; &lt;br&gt;
✅ Analyse your project with &lt;a href="https://www.npmjs.com/package/source-map-explorer" rel="noopener noreferrer"&gt;source-map-explorer&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;&lt;br&gt;
✅ &lt;a href="https://github.com/conventional-changelog/commitlint" rel="noopener noreferrer"&gt;Commit Linting&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://stackblitz.com/github/wlucha/angular-starter" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldc28wlirqoltggjzd63.png" alt="StackBlitz Demo" width="146" height="37"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install / Development
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the project&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/wlucha/angular-starter
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;angular-starter

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start server&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm run start

&lt;span class="c"&gt;# Open in browser: http://localhost:4200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Deployment
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build Docker image&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker build &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; angular-starter

&lt;span class="c"&gt;# Run Docker Container&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:80 angular-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hub.docker.com/r/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://hub.docker.com/r/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;npm run start&lt;/code&gt; - start the app&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run lint&lt;/code&gt; - lint the project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run test&lt;/code&gt; - run unit tests&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build&lt;/code&gt; - build the project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build:prod&lt;/code&gt; - build the project in production mode&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run build:prod:stats&lt;/code&gt; - build the project in product mode with stats&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run analyse&lt;/code&gt; - analyse bundle with &lt;a href="https://github.com/webpack-contrib/webpack-bundle-analyzer" rel="noopener noreferrer"&gt;webpack-bundle-analyzer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run compodoc&lt;/code&gt; - generate &lt;a href="https://github.com/compodoc/compodoc" rel="noopener noreferrer"&gt;compodoc&lt;/a&gt; documentation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run changelog&lt;/code&gt; - generate changelog&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npm run prettier&lt;/code&gt; - format the whole project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/wlucha/angular-starter" rel="noopener noreferrer"&gt;https://github.com/wlucha/angular-starter&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
