AngularJS (1.x) was once a very popular front-end framework, and many applications built with it still run smoothly today.
As technology evolves, teams want to move to modern Angular (2+) for its TypeScript support, cleaner architecture, better tools, and long-term maintenance.
However, rewriting a large AngularJS project from scratch can be time-consuming and risky.
That’s why many developers choose to run AngularJS and Angular together in a hybrid setup — this approach saves time and costs while still ensuring an effective migration process and keeping the system running normally.
To make AngularJS and Angular work together, the Angular team released an official package called @angular/upgrade.
It acts as a bridge between the two frameworks, allowing them to share the same DOM, services, and data.
You can install it easily:
npm install @angular/upgrade @angular/upgrade-static |
With this tool, you can:
This is an official and stable migration solution, fully supported by the Angular team — not a workaround or a temporary solution.
Step 1: Bootstrap Both Frameworks
In your main entry file, initialize Angular and AngularJS to run together:
|
|
Step 2: Downgrade an Angular Component
Suppose you have an Angular component like this:
@Component({ selector: 'hello-ng', template: 'Hello from Angular' })export class HelloNgComponent {} |
You can make it available inside AngularJS templates:
|
|
Now you can use it directly in AngularJS HTML:
<hello-ng></hello-ng> |
Step 3: Upgrade an AngularJS Service
You can also reuse existing AngularJS services inside Angular:
angular.module('hybridApp').service('LegacyService', function() { this.getData = () => 'data from AngularJS';}); |
@Injectable({ providedIn: 'root' })export class LegacyAdapter { constructor(@Inject('LegacyService') private legacy: any) {} getData() { return this.legacy.getData(); }} |
Step 4: Split Routing Clearly
Keep routing for both frameworks separate to prevent conflicts:
Use ngRoute or ui-router for AngularJS pages.
Use @angular/router for Angular modules.
Define clear URL boundaries, for example:
/legacy/* handled by AngularJS
/app/* handled by Angular
This ensures smooth navigation and stable behavior, while you continue upgrading parts of the application step by step.
Running AngularJS and Angular together may sound complicated, but with the official upgrade tools, it’s actually quite manageable.
This approach offers several key benefits:
No need to rewrite the entire application.
Safe, gradual migration — one module at a time.
Full compatibility with your existing system.
Freedom to create new features using modern Angular.
While this hybrid setup isn’t meant to be permanent, it serves as a practical bridge between old and new technologies, helping you modernize your app step by step without breaking what already works.
Whether you need scalable software solutions, expert IT outsourcing, or a long-term development partner, ISB Vietnam is here to deliver. Let’s build something great together—reach out to us today. Or click here to explore more ISB Vietnam's case studies.
[References]
https://v17.angular.io/guide/upgrade
January 6, 2026
If you are a developer or a technical writer, you know the pain of creating sequence diagrams. You open a GUI tool like Visio or Lucidchart, drag a box, drag another box, draw a line, realize the line isn't straight, adjust the line, and then realize you need to move everything to the right to fit a new actor.
It’s tedious. It’s hard to version control. It feels like drawing, not engineering.
Enter Mermaid.js. Mermaid allows you to create diagrams using text and code. It renders Markdown-like syntax into beautiful, professional diagrams. In this guide, we will master the art of writing Sequence Diagrams as code.
Mermaid is a JavaScript-based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically.
Diagrams as Code: You store your diagrams in your Git repository as .md files.
Version Control: You can see diffs in your diagrams just like you see changes in your code.
Speed: No more pixel-pushing. You focus on the logic; Mermaid handles the layout.
Integration: Supported natively by GitHub, GitLab, Notion, Obsidian, and VS Code.
To create a sequence diagram in a Markdown file, you use a code block with the mermaid identifier.
Let's start with the absolute basics: Alice talking to Bob.
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
Bob-->>Alice: I am good, thanks!
The Output: The code above tells Mermaid to draw two participants. The ->> represents a solid arrow (request), and -->> represents a dotted arrow (response).

By default, Mermaid creates participants in the order they appear. However, for complex diagrams, you often want to define them explicitly to control the order or use aliases.
participant: Renders as a rectangle (default).
actor: Renders as a stick figure.
as: Allows you to use short aliases in your code.
sequenceDiagram
actor U as User
participant FE as Frontend
participant API as Backend API
participant DB as Database
U->>FE: Clicks button
FE->>API: GET /users
API->>DB: Select * from users
The Output: Notice how we used U, FE, and API in the code, but the diagram renders the full names.

In a real system, a service takes time to process a request. We visualize this using "activation bars" (the vertical rectangles on the lifeline).
Long way: activate Alice / deactivate Alice
Short way (Recommended): Add + to the end of the arrow to activate, and - to deactivate.
sequenceDiagram
participant Client
participant Server
participant DB
Client->>+Server: Request Data
Note right of Server: Server is processing...
Server->>+DB: Query Data
DB-->>-Server: Return Results
Server-->>-Client: 200 OK
The Output: The grey bars indicate that the Server and Database are "busy" processing the request. This is crucial for analyzing performance bottlenecks.

Software isn't linear; it has loops and if/else conditions. Mermaid handles this with loop, alt (alternative), and opt (optional).
This is used to show mutually exclusive paths, such as a successful login vs. a failed login.
sequenceDiagram
actor User
participant Auth as Auth Service
User->>Auth: Submit Credentials
alt Credentials Valid
Auth-->>User: Return Token (200 OK)
else Credentials Invalid
Auth-->>User: Return Error (401 Unauthorized)
end

Used for repeated actions, such as polling or retries.
sequenceDiagram
participant Client
participant Server
loop Every 5 seconds
Client->>Server: Health Check
Server-->>Client: Healthy
end
The Output (Complex Logic): Here is a visualization of how these logical blocks appear in a rendered diagram.

Use Notes: You can add notes to clarify specific steps using Note right of [Actor] or Note over [Actor1],[Actor2].
Keep it Simple: If your sequence diagram is getting too wide or too long, consider breaking it into two separate diagrams.
Use the Live Editor: When learning, use the Mermaid Live Editor. It gives you instant feedback as you type.
Switching to "Diagrams as Code" with Mermaid is a game-changer for developer productivity. It keeps your documentation close to your code, makes updates trivial, and ensures your diagrams always look consistent.
Next time you need to document an API flow, close Visio and open your Markdown editor. Your future self (and your team) will thank you.
Ready to get started?
Contact IVC for a free consultation and discover how we can help your business grow online.
January 6, 2026
Mendix is an enterprise Low-Code application development platform (owned by Siemens).
This platform allows organizations to build, deploy, and manage software applications rapidly without the need for extensive manual coding.
Key Highlights: Accelerates software development, integrates AI (via the Mendix AI assistant - MAIA), easily integrates with other systems (such as SAP, AWS), and supports comprehensive digital transformation.
Goal: To help companies modernize legacy systems, automate processes, and create new digital experiences for customers.
Many major global corporations across various sectors (Finance, Manufacturing, Logistics, Healthcare, etc.) are using Mendix to solve specific challenges:

Siemens Energy: Used Mendix to scale from 4,000 to 40,000 internal users. They developed over 200 apps to drive innovation and increase workflow efficiency globally.
Zurich Insurance: Uses Mendix to simplify business processes and support business strategy through rapid app development, serving customers better.
Glico (Food & Confectionery): Applied in Smart Manufacturing and their digital transformation journey to manage production processes more effectively.
WADA (World Anti-Doping Agency): Uses it to deliver software faster, helping manage athlete data and keep sports clean.
Jabil (Manufacturing): Deployed over 100 apps to improve global factory operations and promote high customization in manufacturing.
HTM (Public Transport): Achieved 60% faster application development speeds, improving employee efficiency and transport system management.
Not every software project should use Mendix. It is best suited when:
Urgent/Time-critical: Applications need to be completed in weeks rather than months.
Frequent Changes: Business processes change constantly; apps need rapid modification without crashing the system.
Internal Digital Transformation: Custom-built ERP/CRM systems, employee portals, warehouse management, and supply chain management apps.
Legacy Modernization: Replacing outdated software (like Lotus Notes, FoxPro) with modern web interfaces.
These are employees who understand business processes (HR, Accounting, Logistics...) but do not have deep programming knowledge.
Why it fits:
Drag & Drop Interface: Mendix provides "Mendix Studio" on the web. Users can drag and drop buttons, forms, and design workflows using visual diagrams without writing a single line of code.
Solving the "Excel" Pain: Suitable for those managing data with dozens of disjointed Excel files who want to turn them into a centralized, secure management app.
Rapid Prototyping: Business users can visualize app ideas to present to IT teams or leadership.
Those who already know Java, JavaScript, CSS, SQL...
Why it fits:
Eliminating Tedious Work: Mendix automates repetitive tasks like database setup, basic security, or UI/UX design. Developers can focus on complex logic.
Extensibility: Unlike closed "No-code" tools, Mendix allows developers to write code (Java actions, JavaScript widgets) to handle complex requirements that drag-and-drop tools cannot.
System Integration: Excellent support for connecting APIs (REST, SOAP, OData) and integrating with major systems like SAP, Salesforce, and AWS rapidly.
Source: https://www.mendix.com/
January 6, 2026
Plan Mode was introduced by Cursor in October 2025. Plan Mode assists AI Agents in executing Complex Projects and long-term tasks by providing clear Context and Direction right from the start. In other words, Plan mode sets up a plan before execution in Cursor AI.
I have a plan to change language from English to Vietnamese in my demo project.
Start planning by pressing Shift + Tab in the agent input.
" change language from English to Vietnamese"
Cursor will ask you a few questions to Clarify your Requirements .
you only select the Answer and click Continue

Cursor will create a detailed plan (Markdown file)
It lets you review/edit the plan like a design document.

Then click to Build the plan when ready.

You can Review the results once more before applying them

As you can see, Plan Mode will be very useful when you have the following needs:
Whether you need scalable software solutions, expert IT outsourcing, or a long-term development partner, ISB Vietnam is here to deliver. Let’s build something great together—reach out to us today. Or click here to explore more ISB Vietnam's case studies.
More Cursor AI
At ISB Vietnam, we are always open to exploring new partnership opportunities.
If you're seeking a reliable, long-term partner who values collaboration and shared growth, we'd be happy to connect and discuss how we can work together.