Write-ups
Long-form write-ups by Long Nguyễn on a Nuxt 2 to Vue 3 migration, an offline-first scheduling app, a chatbot that answers without an LLM, and past projects.
- Migrating a 4-year Nuxt 2 codebase to Vue 3
A post-mortem on moving WegoPro's Nuxt 2 app, around 150k lines of TypeScript, to Vue 3 by shipping new features as Vue 3 web components inside the running Nuxt 2 host, including what slowed it down and what I would undo.
- Vue 3 web components as a bridge for migrating Nuxt 2 to Vue 3
How Vue 3 web components, built with defineCustomElement, let a Nuxt 2 host and Vue 3 islands share one page through DOM attributes and CustomEvents, what you give up, and when the approach fails.
- Cosimi: a portfolio chatbot that answers without an LLM
Cosimi is the deterministic retrieval engine and SDK behind the chat on this site: a question is embedded and matched against a curated corpus in PostgreSQL with pgvector, with no LLM in the request path.
- The Cosimi principle: use language models at build time, not in the live answer
The design idea behind the chat on this site: let one model generate content from my source documents and another audit it offline, then freeze the result and keep models out of the request path.
- Crewdoku: an offline-first team scheduling app
An offline-first app that builds a fair multi-week team schedule from your rules with a HiGHS solver compiled to WebAssembly. There are no accounts and no server; everything stays in IndexedDB on your machine.
- Gidi: a 29 MB on-device model for Vietnamese personal-finance notes
A 29 MB INT8 model that reads short Vietnamese money notes and predicts type, counterparty and amount, running fully in the browser with no server.
- WegoPro: four years on a B2B travel and expense platform
What I worked on as a Web Developer at WegoPro, a B2B corporate travel and expense platform formerly called Travelstop, from March 2022 to April 2026: the back-office platform, a modular monolith architecture, and the move from Nuxt 2 to Vue 3.
- Multiplier.finance: web app and backend for a multi-chain DeFi lending protocol
I was Lead Web Developer at BlockDevs from 2019 to 2022 on Multiplier.finance, an AAVE-style lending protocol across chains: lending, wallet integration, staking, the Express APIs and PostgreSQL behind them, and the Vue 2 to Vue 3 migration.
- SuperLauncher: full-stack work on an IDO launchpad and staking platform
I was a core member and full-stack web developer on SuperLauncher at BlockDevs (Feb 2020 to Jan 2022), an IDO, staking, and marketplace platform: the Node.js and Express backend, The Graph subgraphs, and a custom Vue 3 wallet module.