TATrương Tuấn AnhTuna / truongtuananh.vn

All systems

System 02IndustryLive

Aerosky PCCC - Fire-rated doors

Founder and CEO, since 01/2025

Online retail for fire-rated doors: the buyer configures in 5 steps, receives a PDF quotation and a VietQR bank transfer code, and the order runs straight into a Telegram bot.

Company
Công ty TNHH Công nghệ Thiên Vũ Automation, trading as AeroSky, Đà Nẵng
Role
Founder and CEO of AeroSky, taking every commercial, legal and technical decision and writing the code myself
Status

Live since 19 Aug 2026, now running at aerosky.vn/pccc (the fire-safety arm of the main aerosky.vn site) in a mode that only takes advisory requests and issues estimates. Online selling opens once the circulation permits under Decree 105/2025 on fire-safety product circulation, the dealer contract and the e-commerce website notification required of online sellers in Vietnam are all in place.

Internal operations run on Biz-Manager, an ERP built on the ERP + Bot framework.

Address
aerosky.vn/pccc (opens in a new tab)
Screenshot, Aerosky PCCC - Fire-rated doors

Screenshot of the real interface.

Metrics

  • 35products in 6 categories, one page per product
  • 54static pages, 54 of 54 in the sitemap; the build only passes when every page is there
  • 199server-side test cases in 18 groups: pricing, payment, order state, privacy, bot
  • 94Lighthouse mobile score (a lab number I measured myself), LCP 2.4 s, axe 0 violations across 15 pages at 390px
  • 0project references published; the register is empty on purpose, a project reaches the site only with both the evidence and the right to publish it

Interface screenshots

Biz-Manager, AeroSky's internal operating system. Client names and figures are masked.
Biz-Manager, AeroSky's internal operating system. Client names and figures are masked.

The story

The problem

A fire door is sold on paperwork: EI rating, dimensions, acceptance records, fire-safety certificates. A homeowner or a contractor usually makes three phone calls before learning a price.

I wanted them to configure the door themselves, see the price and place a deposit, while my side receives a complete order immediately.

Read on: approach and principle

Approach

The order flow writes to the database first, then notifies the Telegram bot and email, retries by itself on failure, and escalates if nobody has handled it within 4 hours. After that the work is human: call the customer, measure on site, sign off the drawing, 20 days of production, installation and handover of the fire-safety file.

Principle

Two hard rules. One: the partner factory's name stays in the internal file, and a release blocker holds that boundary.

Two: the project reference section appears only with both the evidence and the right to publish; missing either one hides the whole section.

Technical decisions

  1. The manufacturing partner's name stays internal, with a machine enforcing it

    Aerosky is a dealer; naming the factory hands the customer directions to buy direct. A place name plus the product category is on the blocked list as well.

    A content check holds that boundary at every release.

  2. No evidence and the whole section hides itself

    A page builds only with the evidence in place: figures that carry a source and photographs cleared for use. Anything not cleared, client names, photographs and addresses included, is stripped in the data layer, so the page can print only what there is permission to publish.

  3. One always-on machine with a durable disk, instead of per-request functions

    A site that takes orders has to remember work in progress: the orders, a retry queue every 30 seconds, the reminder on an order older than 4 hours. Per-request functions give you ephemeral disk only and cut background work, so an order stalls halfway while the site still looks green.

    The choice was one always-on machine in Singapore, durable disk, draining the queue before it shuts down.

  4. The server is the only source of prices

    The first version let the browser mint quotation numbers from a random value while the server minted a different order number; a code review caught it. Now every commercial identifier, estimate, order and payment intent alike, is minted by the server in a single write; the page asks only for a preview, and every write command stays on the server.

  5. Editing the website from a Telegram message, still through the gates and a Confirm button

    The bot opens a branch in the repository instead of editing the server directly, because the next release would overwrite it. The machine runs the same gates a person has to pass, then sends the change back with a Confirm or Discard button, because it takes a human to read "1.9m VND typed as 19m VND".

    Turn the feature off and that path disappears.

  6. AI can be switched off, and production dimensions come from the site visit

    EI rating advice follows QCVN 06:2022, the Vietnamese fire-safety building code, and carries a disclaimer; AI reads photographs of the installation spot, while the dimensions that go into production come from the site visit (photographs are off by 10-20% where the trade needs ±5 mm); doors can be rendered into a customer's photograph, with the watermark applied on the server. With AI switched off the site still runs normally.

From this system

Have a project that needs EI-rated doors?

Aerosky opens online sales once the permits are in place. For now I take estimate and survey requests, advise on the right EI rating, and let you know when sales open.