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 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

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
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.
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.
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.
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.
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.
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.