RSSAmplifier

Blog

Luis Aviles

Recent content on Luis Aviles

luixaviles.comRSS feed ↗46 posts

Latest posts

How to Speed Up Test Coverage Using Multi-Agent Orchestration

In Part 1 of this series , we looked at how to run a single, autonomous AI agent inside a Nebubox container to generate unit tests, patch bugs in our CLI code, and open a Pull Request. 
 That sequential, closed-loop workflow works great for smaller modules. But as codebases grow, forcing a single agent to write extensive test suites line-by-line can be slow, hitting context window limits and…

How to Safely Automate Unit Test Generation Using AI Sandboxes

In my previous post , I introduced nebubox , a CLI tool I built to run AI coding tools (like Claude Code, Antigravity, and Codex) safely inside Docker containers. By restricting the filesystem access of the agent to just your project directory, you get the productivity gains of autonomous coding without risking your SSH keys, env files, or other local repositories. 
 Today, we are taking this…

How to Run AI Coding Tools Safely Inside Docker Containers

I’ve been using AI coding agents (Claude Code, Gemini CLI, Codex CLI) to refactor and write code across different projects. They work well. But every time I ran one code agent, I kept asking myself: can this agent run autonomously without risking access to my SSH keys, my cloud credentials, or even other projects content? 
 I wanted the productivity gains without the risk, so I built…

A Practical Guide to use Context Caching


 
 
 If you’ve built an LLM-based application, you’ve likely faced “The Context Problem”: providing enough information to the model to get a good answer often means sending massive amounts of text with every single request . 
 In a recent project, ElectoBot , I built a tool to help citizens compare government plans from different presidential candidates.…

Using Gemini Pro Vision for Image Processing using Angular and NestJS


 
 
 In a previous post , I explained the main aspects of building a full-stack web application from scratch and explored current capabilities for chat and text generation of Gemini models. 
 In this blog post, we will use the same Nx workspace as a starting point and will add the ability to process images using the Gemini Pro vision model. 
 If you want to code along this…

Build your First Gemini Powered Chatbot with Angular and NestJS


 
 
 The rise of Natural Language Processing(NLP) has opened up exciting opportunities for developers, allowing them to create engaging and interactive chatbot applications. 
 In this blog post, we will guide you through the process of creating a chatbot application from scratch using the TypeScript programming language. The project will be based on the latest version of the…

Build your First PaLM API Powered Chatbot with Angular


 
 
 Chatbot applications have become a trend in the past months due to the introduction of natural language processing technologies. And the good news for developers is we can start using these powerful APIs to build our applications. 
 In this blog post, we will understand how to build a Chatbot that leverages the Google PaLM API along with the Angular framework.
The…

How to Create Standalone Components in Angular

Angular has become one of the most popular frameworks to build web applications today.
One of the key features of the framework is its the component-based architecture, which allows coding best practices as the modularity and reusability. Each Angular component consists of a template, a TypeScript class and metadata. 
 In this blog post, we will dive deeper into standalone components and…

How to Manage Breakpoints using BreakpointObserver in Angular

Defining Breakpoints is important when you start working with Responsive Design and most of the time they’re created using CSS code. For example: 
 . title { 
 font-size : 12 px ; 
 } 
 
 @ media ( max-width : 600px ) { 
 . title { 
 font-size : 14 px ; 
 } 
 } 
 By default, the text size value will be 12px and this value will be changed to 14px when…

How to Build a Slideshow App Using Swiper and Angular

Google Slides and Microsoft PowerPoint are the most popular options to build presentations nowadays. However, have you ever considered having a custom tool where you can use your web development knowledge to create beautiful slides? 
 In this post, we will build a slideshow app with the ability to render one slide at a time using Angular, Swiper, and a little bit of CSS. 
 Project Setup…

How to Update the Application Title based on Routing Changes in Angular

Have you tried to update the document&rsquo;s title of your application? Maybe you&rsquo;re thinking that applying interpolation should be enough: &#xA; < head > &#xA; < title > {{myCustomTitleVariable}} </ title > &#xA; </ head > &#xA; &#xA; < body > &#xA; < root-app ></ root-app > &#xA; </ body > &#xA; That solution is not going to work since the <title> element is outside of the scope of the…

Why Migrate from Protractor to Cypress?

Great memories come to my mind when I read about Protractor. I remember those days when I was working actively using the AngularJS framework to build Single-Page Applications, and Protractor was the most viable option for writing E2E(End-to-End) tests. &#xA; In fact, Protractor has been created in 2013 when AngularJS was the most popular web framework and it allowed run tests through the web…

Angular CDK: Sorting Items using Drag & Drop

There is no doubt that we are living in an era where the interactivity of your web application is a very important part of retaining your users. &#xA; For example, it&rsquo;s very common to find requirements to perform a Drag and Drop operation inside of your web application: Upload image files, prioritize activities (think in a Task Board) or even sort elements in your web app. &#xA; Luckily, the…

How to integrate Web Components using Lit in Angular

In previous posts, I explained how to create projects in Lit and TypeScript from scratch. Also, I covered different topics about Web Components, and Single-Page Applications, using them. &#xA; In this tutorial, I&rsquo;ll explain the needed steps to integrate these Web Components in Angular. Spoiler: You can find the source code of a demo project at the end. &#xA; &#xA; &#xA; Integration of Web…

Getting Started with Here Maps and Web Components using Lit

In the past months, I have been actively working on the development of geolocation-oriented solutions in web applications. My experience has been good so far, taking into account the availability of modern tools and libraries, with a wide range of features that even enable the use of interactive maps and location services. &#xA; In this article, I&rsquo;ll explain how to integrate Here Maps…

How to Solve CORS using a Proxy Server and Koa

No matter how much experience you have in software development, you&rsquo;ve likely had to deal with the CORS problem. &#xA; The good news is that there are now new and different ways to solve this issue, from using an extension for your favorite browser, to defining a custom solution. &#xA; In this post, I&rsquo;ll explain how to implement a basic Proxy Server using Node.js so that you can use it…

How to Implement an Event Bus in TypeScript

In real-world software development, design patterns offer reusable solutions and, most prominently, make code easier to maintain. &#xA; The Event Bus idea is generally associated with the Publish-subscribe pattern : &#xA; &#xA; Publish–subscribe is a messaging pattern through which message senders, called &ldquo;publishers&rdquo;, do not program the messages to be sent directly to specific…

Drawing HTML Elements upwards/downwards dynamically in the Screen

A couple of weeks ago, I start writing a custom component that allows rendering a list of other components dynamically. One of its features shows the list up or down, according to the space available in the viewport (or the screen). &#xA; A solution to this type of problem may require the use of the web APIs available through the Window interface. &#xA; The Web APIs &#xA; API comes from…

How to Handle Time Zones using DateTime and Luxon

Raise your hand if you ever had issues dealing with time zones or even if you asked about &ldquo;How to convert a Date object to another timezone in JavaScript&rdquo;. &#xA; In my personal experience, this kind of requirement can become a big problem for developers if the date-handling-related concepts are not clearly understood or the right tools are not used. &#xA; Using Dates and Time Zones in…

Web Components communication using an Event Bus

Imagine you&rsquo;re building a Single Page Application using Web Components only, you got several pages, configured the routes and you need to handle general events or actions. &#xA; Here&rsquo;s when you start to think about potential solutions as well: Maybe It&rsquo;s time to adding state management to the application? Is it a good time to build a &ldquo;custom&rdquo; solution? Or what about…

Lit 2.0 Released: Building fast and lightweight Web Components

In the past months, I&rsquo;ve been using Web Components actively to build single-page applications. It has been a great experience so far, not only because I learned a lot about the latest web standards but also because the web applications ended up being quite fast. &#xA; The Web Component development story is not something new. In fact, it has been nearly three years since LitElement has been…

How to Share styles in Web Components with LitElement and TypeScript

Have you ever thought about the benefits of code reuse? &#xA; It is common to try to find techniques or strategies that allow us to save time and reuse existing code for the implementation of our applications. However, let&rsquo;s start by first understanding what we mean by code reuse . &#xA; &#xA; Code reuse, also called software reuse, is the use of existing software, or software knowledge, to…

How to Observe Property Changes with LitElement and TypeScript

In a previous post, I explained how to manage LitElement properties using @property and @internalProperty decorators through TypeScript. Also, I explained how LitElement manages the declared properties and when it triggers an update cycle, causing the component to re-render its defined template. &#xA; A couple of days ago I saw an interesting question regarding these property changes on a…

LitElement properties: @property vs @internalProperty

LitElement is an excellent alternative to build lightweight web applications since it’s based on the Web Components standard, and with the help of TypeScript, we can see more possibilities to build Web Components faster with a good developer experience. &#xA; In this article, I will explain practically the use of @property and @internalProperty decorators using a TypeScript implementation. &#xA;…

How to Handle Events with LitElement and TypeScript

In previous posts , I covered different topics about Web Components and Single-Page Applications using LitElement and TypeScript . &#xA; It&rsquo;s very known that LitElement has added a good support to manage Properties and Events to write powerful web components. In this post, we&rsquo;ll focus on event handling using a LitElement-based component as a use case using the TypeScript language.…

How to Setup environment variables using JSON files with Rollup and TypeScript

In previous posts, I explained How to setup a TypeScript project using Rollup.js from scratch. Also, I covered How to Serve a Single Page Application(SPA) using Rollup.js and Web Dev Server step by step. Then, I covered How to Build a LitElement Application with Rollup.js and TypeScript. &#xA; In this article, I&rsquo;ll take the result of those tutorials as a starting point to set up environment…

How to Build a LitElement Application with Rollup.js and TypeScript

In previous posts, I explained How to setup a TypeScript project using Rollup.js from scratch. Also, I covered How to Serve a Single Page Application(SPA) using Rollup.js and Web Dev Server step by step. &#xA; In this article, I&rsquo;ll take the result of both tutorials as a starting point to integrate LitElement into the game to write the first Web Components through the latest web standards and…

How to Serve a Single Page Application(SPA) using Rollup.js and Web Dev Server

In a previous post, I explained How to setup a TypeScript project using Rollup.js . In that article, I covered the necessary steps to have a Project Setup ready to generate a build using TypeScript and Rollup configurations. &#xA; So let&rsquo;s take that project as a starting point to serve a Single-page Application using modern web tools. &#xA; What is a SPA (Single-page Application)? &#xA;…

How to setup a TypeScript project using Rollup.js

A couple of months ago I started to work through web standards, Rollup.js, and TypeScript. It’s my first experience using Rollup although I’ve been working with TypeScript on different projects and using it along with frameworks like Angular. &#xA; So far it has been a good experience in terms of performance and tools integration, so I decided to write a quick tutorial to have a setup ready using…

Understanding flatMap and mergeMap operators in RxJS with TypeScript

RxJS is a popular library nowadays and it’s used in a wide range of applications. And it even becomes part of popular frameworks like Angular. &#xA; It’s not unknown that the library comes with many powerful functions that can be used together to solve complex problems with only a few lines of code. A couple of days ago I saw the following question on a developer website: &#xA; &#xA; How to use…

Form Handling using TypeScript and RxJS

RxJS and TypeScript are becoming more and more popular these days. It&rsquo;s feasible to use both technologies alone or even as part of any JavaScript library or framework. &#xA; It&rsquo;s an interesting fact to know that the RxJS project is using TypeScript actively and it helped to find bugs when the library was migrating from JavaScript. &#xA; In this article, we&rsquo;ll see a Reactive…

Understanding switchMap and forkJoin operators in RxJS with TypeScript

RxJS is a library with more than 22 Million downloads per week. It&rsquo;s widely used in the JavaScript world and it has great support of TypeScript. There&rsquo;s no need to say much about it to understand how important is today. &#xA; Some days ago I saw the following question in a developer forum: &#xA; &#xA; Is there a way to handle a list of Observables and get the final result of them once…

Using Route Guards, Actions and Web Components with TypeScript

Imagine you are building a Single Page Application using Web Components only, you already defined a set of views, configured the routes and you&rsquo;re handling the authentication very well. &#xA; Suddenly you understand that you must manage autorizations to decide to render a view or not. For example, you need to manage the /admin and /analytics route for authorized users only. &#xA; In a…

Form Validation using RxJS and TypeScript

In a previous post, I explained how you can handle your HTML Forms using RxJS and TypeScript. &#xA; Talking in a Reactive approach, I will show you some techniques to validate an HTML Form using static types and the help of some powerful RxJS operators. &#xA; The HTML Form &#xA; Let&rsquo;s define the following HTML Form as a starting point. &#xA; < div class = 'container' > &#xA; < div class =…

Testing Web Components with Karma, Mocha, Chai and TypeScript

Imagine yourself building an electric car. &#xA; By design, this car has an electric motor, a thermal system(cooling), a battery, a charge port, a transmission, and other units . Every part of the system has requirements that must be met before being attached to the other components. &#xA; If any of these components has not been properly tested, it may happen that when testing the whole car it…

RxJS 7 and Beyond: What to Expect and Prepare For

Some days ago I&rsquo;ve been part of the Modern Web Podcast along with Tracy Lee and we interviewed to Ben Lesh , the author of RxJS (A JavaScript library for reactive programming using Observables), on the most recent updates for RxJS 7 and it&rsquo;s targeted release date. &#xA; It was an opportunity to understand how RxJS has been improved over time, how TypeScript helped to identify bugs and…

Testing Web Components with Cypress and TypeScript(E2E)

In my previous posts, I covered a wide range of topics about LitElement and TypeScript. Then I created a Single Page Application based on Web Components. &#xA; Let&rsquo;s deep dive over this project to understand how to add the End-to-End(E2E) testing capability using Cypress and TypeScript. &#xA; The Shadow DOM &#xA; The Shadow DOM API is about web components encapsulation and that means it…

Web Components Integration using LitElement and TypeScript

In my previous posts, I explained how to create a project based on LitElement and TypeScript from scratch. Also, I added the routing management and explained how to have more control over the navigation lifecycle. &#xA; Let&rsquo;s deep dive over the Web Components creation to understand how to reuse them, respond to any property change, and dispatch custom events. &#xA; Writing a Web Component…

Navigation Lifecycle using Vaadin Router and LitElement

In a previous post, I explained the main aspects to add a Routing Management with LitElement and TypeScript to build a SPA( Single Page Application ). It&rsquo;s important to note that a good understanding of the routing library you selected to work through can help you to have more control over the navigation lifecycle. &#xA; Navigation Lifecycle &#xA; Creating and configuring routes into your…

Routing Management with LitElement and TypeScript

Most modern frameworks provide a routing mechanism to handle the navigation between views within the application. This is a critical feature for a Single Page Application(SPA). &#xA; This is where the Route Matching comes in mind. When a SPA relies on a router, you&rsquo;ll need to define a set of routes with the supported locations. &#xA; In the JavaScript world, most of route definitions are…

Getting started with LitElement and TypeScript

The use of powerful frameworks and libraries is very widespread nowadays. We can name Angular, React.js, Vue, Svelte, among with others. &#xA; It&rsquo;s hard to imagine to build a web application without the use of any of those component-based frameworks. For these options, the components are reusable and configurable widgets , they are able to provide a custom behavior and styling, and…

Build Your First Voice-Driven Web Application

&#xA; Some time ago I had the goal to implement a web application to be able to write what I&rsquo;m speaking automatically and allow to execute actions through my voice commands. I thought it was a good idea to provide a way to listen to some feedback from the application too. After doing quick research I discovered a couple of Web APIs to solve this problem.

Why you should learn JavaScript?

&#xA; &#xA; &#xA; &#xA; &#xA; Restart Animation &#xA; &#xA; &#xA; &#xA; Animation: JavaScript's domain 2015 - 2020 &#xA; &#xA; JavaScript is undoubtedly one of the most popular languages and it adapts with great ease to various use cases.

Real Time Apps with TypeScript: Integrating Web Sockets, Node & Angular

Some time ago I implemented a simple chat application using TypeScript language only. The main goal was to write a demo to explain how you can use this programming language on the client side and on the server. The client app is using latest Angular features. &#xA; In this post I will show you how I implemented the app from scratch. &#xA; &#xA; &#xA; Demo: TypeScript Chat Application &#xA; &#xA;…

Releasing v1.0.0 of a Socket.io-TypeScript Chat Project

Some months ago I implemented a simple chat version using TypeScript language only.&#xA;This project was presented in a local conference, explaining some reasons to use TypeScript language in your backend and frontend projects. &#xA; Today I&rsquo;m happy to announce that my GitHub repository is fully updated and version 1.0.0 has been released. &#xA; Live Demo &#xA; Open at least two browser…

Setting up Local Environment to Develop Angular Applications

&#xA; &#xA; Photo by Blake Connally on Unsplash &#xA; &#xA; Angular is definitely in a great stage and every new version comes with awesome features. The project itself comes with great tools that will allow you to start to develop web applications from scratch. &#xA; A common question, from the people that I know, is about the tools they need in their environments before starting to develop with…