▸ NLV-26-CRM Twenty requests, one row. Replies and bookings into a CRM exactly once. A Nordic B2B SaaS · with Tim N. Delivered08/2026 → 09/2026 8 claims n8n workflows that move LinkedIn, email and Calendly events into the CRM without losing or doubling any of them, and a CRM switch with no downtime.
Problem Replies were missed, sent to Slack twice, or never reached the CRM. Build An atomic claim per event, CRM written before Slack, and a 24-hour shadow run. Result 0 errors in the shadow run and 2,075 duplicate companies merged.
Concurrent requests to rows written 20 → 1
Errors in the 24-hour shadow run 0
Duplicate companies merged 2,075 Open the record →
▸ NLV-26-ONT Ontevo, getting a paid AI product ready to charge for Ontevo (Lighthouse Insights) · with Tran Tien Van Building04/2026 → 2 claims · 1 public Pricing, checkout and Stripe entitlements, tenant-safe customer simulations and admin tools for a US AI customer-insight SaaS.
Problem Paid plans, tenant safety and admin tools had to land in a large shared codebase. Build Next.js 15 screens and Django 5.2 services, each change shipped with tests. Result 637 commits and 293 test files added since 04/2026.
My commits on Ontevo 637
Test files I added to Ontevo 293 Open the record → Live ↗
▸ NLV-26-PRF Two slow intros removed, and what they were hiding fixed Van Data Team · with Tran Tien Van Delivered10/2026 10 claims Performance passes on vandatateam.com and vanaxity.com, measured before and after on the same machine.
Problem Intros hid the pages for up to 6 seconds and bundles shipped the whole blog. Build Removed the intros, moved WebGL to a worker, split bundles, stopped idle repaints. Result Hero visible on desktop at 526 ms instead of 4,493 ms.
Top of the page visible on desktop 4,493 → 526 ms
Mobile layout shift (CLS) 0.160 → 0
Headline readable on desktop 5,436 → 716 ms Open the record → Live ↗
▸ NLV-26-HRM An HR system for a furniture factory, from time clock to timesheet A furniture manufacturer in Vietnam Live04/2026 → 6 claims Attendance, shifts, piecework and payroll for a factory in Vietnam, with a Linux agent that reads the gate time clocks.
Problem Attendance ran on clock exports and spreadsheets. Build .NET 8 API, React client, PostgreSQL and a time-clock agent on site. Result 79,262 punches turned into 6,354 workdays in production.
Time-clock punches turned into workdays 79,262 → 6,354
Permissions across 6 roles 112 Open the record →
▸ NLV-25-DMS Distributor management for Uniben Foods and Vietcos Uniben Foods and Vietcos · with Pratek Live02/2025 → 06/2026 2 claims · 1 public Order, return and reporting modules used by a multi-branch distributor network, with Java APIs behind a React client.
Problem Distributors tracked orders and returns across branches by hand. Build Five modules, Java REST APIs, real-time status and Excel or PDF export. Result Running for two consumer-goods companies on their own domains.
DMS modules delivered 5 Open the record → Live ↗
▸ NLV-25-EVS eVS, e-invoice checking for Vietnamese companies Pratek Live02/2025 → 06/2026 1 claim · 1 public The public site and invoice flows of a SaaS that collects incoming e-invoices and checks them with the tax authority.
Problem Accountants checked every incoming invoice by hand each tax period. Build Java APIs called only through Next.js server routes, validated XML upload, SEO and two languages. Result Live at evsapp.vn with a free tier and a partner program.
eVS is live ✓ Open the record → Live ↗
▸ NLV-26-RIB Twenty account briefs that refresh themselves A US industrial supplier · with Tim N. Live08/2026 → 3 claims · 1 public Sourced briefs on a sales team's target accounts and a Flash Report of what changed, rebuilt every 14 days. The public demo uses fictional names.
Problem Sales needed prioritized, sourced account research that stayed current. Build Deterministic Python builders, a relationship graph, scheduled refresh and a login. Result 20 briefs and a Flash Report, refreshed every 14 days.
Account briefs kept current 20
Test cases in the briefs repository 147 Open the record → Demo ↗
▸ NLV-26-AVA Explainer videos, checked frame by frame and handed over editable Own project Building05/2026 → 4 claims Remotion pipelines with word-timed captions, synthetic or recorded voice, automated render checks and a native CapCut export.
Problem Clients wanted videos they could still edit, without black frames or drifting captions. Build Custom scenes and character rigs, word timings from speech recognition and QA gates on every render. Result 6,482 frames rendered with 0 black frames on the longest piece.
Frames checked, 0 black 6,482
Frame drift caught by tests 1,313 Open the record →
▸ NLV-26-AGT An agent pipeline that only says what its sources support Van Data Team · with Tran Tien Van Delivered08/2026 4 claims Short tech-news videos made by a producer agent and its role agents, with every spoken sentence tied to a source and a person approving the hook, the script, the scenes and the final cut.
Problem Generated news videos drifted from their sources and nobody could say where a sentence came from. Build A producer agent over role agents, a claim registry, word-timing and clarity gates, and human approval at four stages. Result Runs stop instead of guessing, and every sentence on screen traces back to a source.
Role agents under one producer agent 8
Stages that wait for a person 4
Test cases in the files I added 302 Open the record →
▸ NLV-25-BIP Power BI portal behind Azure AD sign-in Pratek Delivered02/2025 → 06/2026 1 claim An internal portal where each user signs in with Microsoft and sees only the reports their role allows.
Problem Reports were shared by link with no control over who saw what. Build .NET APIs that check the role, a React client with MSAL, embedded Power BI. Result Three role tiers, one sign-in.
Role tiers in the BI portal 3
▸ NLV-25-EOF E-Office, people and project planning at Pratek ↗ Pratek Live02/2025 → 06/2026 Internal system for scheduling people and planning projects. I set the frontend structure the team kept as its standard.
Problem Resource planning lived in spreadsheets. Build React and Ant Design screens on .NET APIs, Microsoft sign-in. Result In use at hrm.pratek.vn. Live ↗
▸ NLV-25-UCD An online-course platform, built from a course and extended ↗ Learning project Live02/2025 → 10/2025 1 claim A learning project. Evondev's Next.js course app, which I extended with a course chatbot, admin analytics and notifications.
Problem I wanted to learn a whole product, from the screens to the data, so I built the course's platform end to end. Build On top of the course: a chatbot that answers from the course catalogue, an analytics dashboard for admins, and notifications. Result Live as a demo. Sign-in, orders, uploads and course editing come from the course; no tests.
My commits after the course base 25 Live ↗
▸ NLV-26-ATR Paid-ads attribution for WhatsApp leads A tutoring centre in Singapore · with Tim N. Live08/2026 → Leads that arrived through WhatsApp ads had been counted as organic. An Apps Script engine matches them to ad sets and reports purchases back to Meta.
Problem Ad spend on WhatsApp leads looked like it brought nothing. Build Header-based column matching, a lock, hourly triggers and hashed Conversions API events. Result Spend and enrolments reconciled in one dashboard.
▸ NLV-26-GRO Leads that stopped disappearing A salon-suite studio in New York · with Tim N. Live07/2026 → 2 claims Ad leads, CRM, SMS and cost-per-lead reporting for a salon-suite studio in New York.
Problem Leads from Meta ads and the website landed in tools nobody watched, and the SMS reply broke. Build Save first, filter only at the SMS step, send each form to four systems separately. Result Cost per lead tracked at $21.74 with spikes caught.
Cost per lead $21.74
Make operations saved per month 2,880
▸ NLV-26-HBK Handbooks on AI coding assistants for non-technical teams Own project Delivered09/2026 → 10/2026 Interactive single-file guides with real screenshots, numbered pins and notes, written in Vietnamese.
Problem Non-technical teammates could not start with AI coding tools. Build Annotated screenshots joined to notes with SVG lines, a zoom lightbox and practice tasks. Result Two handbooks published. Open the record → GitHub ↗
▸ NLV-26-KOL If Gmail times out mid-send, it checks Sent before retrying An influencer-marketing team in Vietnam Delivered10/2026 1 claim A local-first outreach tool for recruiting creators. A language model drafts, a person approves, Gmail sends each email exactly once.
Problem One operator had to contact 100 to 150 creators a day without double sends. Build A SQLite job queue with leases, fixed Message-IDs and a check of the Sent folder. Result 23 of 23 acceptance cases passed with evidence.
Test cases in the KOL outreach tool 473
▸ NLV-26-LCL lead-cli, search large lead datasets from the terminal ↗ Own project Delivered08/2026 1 claim · 1 public Streams country files of 75 to 80 MB, filters, and writes NDJSON, CSV or TSV atomically. Ships as a single binary.
Problem Lead datasets were too big to open in a spreadsheet. Build A streaming parser, a blacklist check and cross-OS CI. Result 93 test cases on Ubuntu, macOS and Windows.
lead-cli test cases 93 GitHub ↗
▸ NLV-26-NEW InfoSaver, a Telegram bot that files links with a summary ↗ Own project Delivered04/2026 Send a link to the bot; a language model summarizes it and the row lands in a Google Sheet by topic.
Problem Saved links were scattered across apps. Build Telegram bot, model summaries, Google Sheets as the store. Result 48 commits, in daily use. GitHub ↗
▸ NLV-26-OUT A cold-email program run like a system A US fractional-CFO firm · with Tim N. Live07/2026 → 2 claims Daily health checks, inbox rotation, reply triage and positive replies routed to the CRM for a US finance firm.
Problem Deliverability and replies depended on someone checking inboxes by hand. Build Command-line tools on the sending platform's API, Slack reports and Zoho Flow routing. Result 114 inboxes checked daily and 234 replies classified.
Sending inboxes monitored daily 114
Test cases in the outbound tools 108
▸ NLV-26-POD This site, and how its figures are checked Own project Building10/2026 → 1 claim Every figure on this site comes from one ledger with a source and a date. The build fails when a reference does not check out.
Problem Portfolios state numbers nobody can check. Build A typed claims ledger, evidence with access levels, copy linted for machine-sounding phrases. Result The CV PDFs and the site read from the same file. Open the record →
▸ NLV-26-REV Weekly revenue dashboard with an admin area ↗ Own project Live10/2026 1 claim · 1 public A revenue card rebuilt from a reference video, an admin area to edit the data and a REST API behind both.
Problem A take-home brief with a reference video and a short deadline. Build Next.js 16 front end, Express 5 API, Prisma and PostgreSQL, tests at three levels. Result Live demo with data reset every night.
revenue-dashboard test cases 55 Live ↗ GitHub ↗
▸ NLV-26-SOC 3,370 posts in 34 minutes, and a checkpoint that looked into the future An AI social-scheduling SaaS · with Tim N. Delivered07/2026 → 10/2026 2 claims A listening pipeline over 15 community sources that scores and de-duplicates posts and feeds a competitor study.
Problem The team needed to see relevant community threads every day without missing new ones. Build Scheduled scans with checkpoints, a SQLite ledger for duplicates and scoring. Result Duplicates down from 86% to 20%.
New posts collected in one run 3,370
Duplicate share in scans 86% → 20%
▸ NLV-26-TRK Renewal orders that reach Analytics, once each A subscription brand on Shopify, US · with Tim N. Delivered07/2026 → 09/2026 3 claims Purchase tracking for a Shopify subscription brand. One Analytics home, ads that bid on real purchases, renewals and refunds sent from the server, and a daily check of every order.
Problem Sales went to two Analytics properties, ads counted cart steps as sales, and renewal orders did not reliably reach Analytics. Build One property, ads bidding on the purchase event only, renewals sent server-side with a key per order, refunds sent as refunds. Result 122 of 122 renewal orders found in Analytics on 7 and 8 September; none counted twice.
Renewal orders found in Analytics, 7 and 8 September 122
Renewal orders received server-side on 9 September, none counted twice 43 Open the record →
▸ NLV-26-UNI Multilingual lead routing, rules first Own project Delivered10/2026 Leads from several channels are de-duplicated by phone, routed by language with rules for 7 languages, and an LLM is asked only when the rules are unsure.
Problem A sales team needed leads in seven languages routed to the right desk. Build Rules first, a language model as a fallback, first and last touch kept per customer. Result If the model fails, the lead is still routed and flagged.
▸ NLV-26-VDT vandatateam.com in two languages, with an AI model benchmark hub ↗ Van Data Team · with Tran Tien Van Live03/2026 → 3 claims · 1 public The agency site of Van Data Team. I wrote 403 of its 938 commits, the Vietnamese routes and the first version of the benchmark hub.
Problem The site needed Vietnamese pages and a way to compare AI models with sources. Build Locale routing, a sourced benchmark dataset and tests for both languages. Result 87 routes live, 26 of them in Vietnamese.
Models in the benchmark hub 131
Page routes, English and Vietnamese 87 Live ↗
▸ NLV-26-WMS Production and warehouse modules for a furniture ERP A furniture manufacturer in Vietnam Building09/2026 → 3 claims The manufacturing module and the warehouse upgrade of an ERP built with its lead developer. Production orders, bills of materials imported from Excel, shortage checks, pick allocation and barcode scanning.
Problem The factory wanted its warehouses, purchasing and production on one system; its bills of materials lived in Excel. Build Production orders, an Excel import that evaluates bill-of-materials formulas, shortage checks and a warehouse upgrade. Result Running as a pilot at the factory, with tests on every module I touched.
Test cases I wrote in the ERP repository 1,193
API operations in the manufacturing module I built 24 Open the record →
▸ NLV-26-XCL x-cli, a command-line client for X ↗ Own project Delivered08/2026 → 09/2026 1 claim · 1 public Reads feeds and posts through the normal web interface; every write is a preview first, executed by ID.
Problem Agents needed to work with X without a paid API and without posting by surprise. Build A preview-then-execute model with immutable previews. Result 110 test cases, MIT licence.
x-cli test cases 110 GitHub ↗