Back to blog

9/10/2026 | 2 min read

Inside SkyLink: Engineering an Automated ISP Billing & MikroTik Network Management System

A comprehensive technical dive into how I built a full-stack commercial ISP management SaaS automating PPPoE sessions, real-time OLT fiber telemetry, and instant bKash webhook reconciliation for 2,400+ users.

Node.jsMikroTik APIPostgreSQLNext.jsDockerNetwork Automation
Inside SkyLink: Engineering an Automated ISP Billing & MikroTik Network Management System

Managing an Internet Service Provider (ISP) network manually with spreadsheets and individual router logins becomes impossible once you scale past a few hundred subscribers. I engineered **SkyLink** as a centralized network automation and billing platform to solve this exact operational challenge for over 2,400 active broadband users.

## Core System Architecture

The application is structured into three primary architectural tiers:
1. **Network Provisioning Engine**: Direct TCP socket integration with MikroTik RouterOS API (`/ip/pool`, `/ppp/secret`, and `/queue/simple`).
2. **Telemetry & Fiber Monitoring**: Real-time polling of Optical Line Terminals (OLT) and Optical Network Units (ONU) measuring optical RX/TX power levels in dBm to detect fiber cuts before customer complaints arrive.
3. **Automated Billing & IPN Webhook Pipeline**: Instant Payment Notification (IPN) handlers integrated with bKash and Nagad payment gateways for sub-second account reactivation.

## Communicating with MikroTik RouterOS

Connecting to MikroTik routers requires robust connection pooling and state validation. When a subscriber's bill is overdue, the system executes an automated firewall redirect rather than dropping PPPoE packets, guiding them to an automated payment portal:

```typescript
import { RouterOSAPI } from 'node-routeros';

export async function throttleSubscriberSpeed(subscriberIp: string, targetQueue: string) {
const conn = new RouterOSAPI({
host: process.env.MIKROTIK_HOST,
user: process.env.MIKROTIK_USER,
password: process.env.MIKROTIK_PASSWORD,
keepalive: true,
});

await conn.connect();
const queue = await conn.write('/queue/simple/print', [
`?name=${targetQueue}`,
]);

if (queue.length > 0) {
await conn.write('/queue/simple/set', [
`=.id=${queue[0]['.id']}`,
'=max-limit=512k/512k',
'=comment=Auto-throttled due to payment lapse',
]);
}
conn.close();
}
```

## Immutable Ledger for Payments

ISP billing requires zero tolerance for accounting discrepancies. In PostgreSQL 16, every recharge transaction writes an immutable record to a transaction log table wrapped in strict serializable database transactions. If an MFS gateway webhook fires twice, idempotent order IDs prevent duplicate balance top-ups.

Automating these workflows eliminated over 90% of manual support tickets while ensuring zero downtime during peak evening bandwidth hours.

Comments

0 replies

0/2000 characters

  • No comments yet. Be the first to share your thoughts.

About Me

Rahim Badsa is a Full Stack Web Developer from Bangladesh, specializing in MERN, Next.js, Shopify, and WordPress for practical business-focused web products.

Downloads

Contact Info

Lalmonirhat, Bangladesh

[email protected]

+880 1877-104723

FAQ

Who is Rahim Badsa?

Rahim Badsa is a Full Stack Web Developer and Shopify App Developer from Bangladesh who builds production-ready web solutions using MERN, Next.js, Shopify, and WordPress. He is also the Co-founder of Rank Fast LLC and works as a Web Developer at Trinet Digital Agency.

What kind of developer is Rahim Badsa?

Rahim Badsa (also spelled Rahim Badsa, Rahim Badsha, or Rohim Badsa) is a Bangladeshi full stack web developer specializing in MERN stack, Next.js, Shopify, and WordPress development. He has delivered 100+ projects including SaaS dashboards, Shopify custom apps, WooCommerce stores, and SEO-optimized business websites.

What technologies does Rahim Badsa use?

Rahim Badsa works mainly with the MERN stack (MongoDB, Express, React, Node.js), Next.js, TypeScript, Shopify Liquid, and WordPress, alongside Tailwind CSS, PostgreSQL, Prisma, Docker, and modern frontend tools. As a full stack developer, he handles both frontend UI and backend API development, database design, deployment, and technical SEO.

Is Rahim Badsa available for freelance or remote work?

Yes. Rahim Badsa is available for freelance, contract, and fully remote collaboration with clients worldwide. Whether you need a Shopify developer, MERN stack developer, Next.js developer, or WordPress developer, he can help. You can reach out through the contact section on this portfolio or via LinkedIn.

Rahim Badsa Copyright 2026. All rights reserved.