I'm always excited to take on new projects and collaborate with innovative minds.

Website

https://krafton.my.id

Social Links

Project

AstraCall — Cloud Communications & AI Platform

A cloud communications platform bringing business SMS, OTP verification, voice calling, and AI voice agents into one workspace, with developer APIs and usage-based wallets.

Client

AstraCall — Cloud Communications & AI Platform

AstraCall helps businesses manage customer communication through SMS, voice calls, and AI-assisted conversations.

I extended and deployed an existing communications application into a branded SaaS platform, developing provider integrations, customer-facing workflows, developer APIs, and operational safeguards.

The platform supports transactional and bulk messaging, automatically generated OTPs, sender ID management, phone number assignment, voice routing, IVR menus, and AI call flows. Separate SMS and calling wallets help customers manage their usage.

 

I also implemented application security improvements, persistent theme storage, and Docker deployment behind a shared Traefik reverse proxy with HTTPS.

Engineering case study

  1. The business challenge

    Businesses often manage voice calls, SMS, verification messages, and automation through separate provider dashboards. This creates fragmented workflows and makes it harder to track usage, control access, and integrate communication into other applications.

    The challenge was to adapt an existing communications application into a cohesive platform with consistent branding, customer controls, developer access, and dependable deployment.

  2. Engineering approach

    I worked incrementally across the backend, customer interface, provider callbacks, and deployment configuration.

    I introduced shared messaging logic for dashboard and API requests, with request validation, wallet reservations, idempotent retries, and delivery-state tracking. Automatic OTP generation added expiry, attempt limits, and single-use verification.

    For voice communication, I extended number management, browser calling, IVR routing, and AI call flow integrations. Feature permissions let administrators enable selected capabilities for individual users.

    Security work addressed authentication, authorization, webhook verification, sensitive configuration handling, file access, and outbound request validation.

  3. Solution architecture

    A React customer interface communicates with a Node.js and Express backend. MariaDB stores customer accounts, permissions, balances, messaging records, call configuration, and integration state.

    Server-side adapters connect the application to SMS and telephony providers. Provider callbacks update delivery and call records, while WebSockets support relevant real-time voice workflows.

    Docker isolates the application and database. Traefik routes domain traffic and manages HTTPS certificates. Persistent volumes retain uploaded media and theme settings across application rebuilds.

    Connected Apps provides a foundation for customer-approved workspace connections with Karflow, using scoped access and reciprocal connection verification.

  4. Technologies involved

    Node.js and Express power the application backend, with React and Material UI providing the customer interface. MariaDB supports persistent application data.

    Stripe supports card checkout for configured purchases.

    Docker, Traefik, and Let’s Encrypt support deployment and HTTPS. REST APIs, WebSockets, signed callbacks, and idempotency controls connect the platform’s components.

  5. Outcome

    AstraCall is publicly available at astracall.cc with a dedicated brand, a responsive marketing website, and customer authentication pages.

    The deployed platform includes messaging APIs, automatic OTP workflows, configurable SMS purchasing and message limits, voice management, and administrator-controlled feature access.

    Deployment checks verified the updated frontend, database migrations, HTTPS, and persistent theme selection. Fourteen automated checks passed across SMS settings, security, and Connected Apps. These checks establish specific functional safeguards; they do not represent a comprehensive security audit or a production-scale load test.

  6. Lessons learned

    Communication integrations require careful handling of asynchronous events. A provider accepting a request does not mean a message was delivered or an action completed.

    Idempotency and transactional balance updates are essential when retries can create duplicate messages or charges. Provider-specific call identities and callback formats also need explicit handling.

    Persistent configuration matters as much as application code: theme settings, uploaded files, and credentials must survive rebuilds. Incremental deployments and rollback backups helped introduce changes while preserving existing services.

Share

Leave a comment

Your email address will not be published. Required fields are marked *

Your experience on this site will be improved by allowing cookies. Cookie Policy