Skip to content
View vctqs1's full-sized avatar

Block or report vctqs1

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vctqs1/README.md

Hi 👋, I'm Thu

Technical Lead & Frontend Engineer · Developer Experience Enthusiast · Vietnam 🇻🇳

vctqs1


  • 🔭 Currently Technical Lead at HCLTech × ANZx — building the Plus web banking platform & design system (promoted from Senior FE within a year; 8+ years total across frontend, backend & DevOps)
  • 🌱 Deeply passionate about Developer Experience (DX) — tooling, CI/CD, build performance, and developer workflows
  • 🏗️ I build things like Webpack/Vite plugins, runtime environment solutions, and accessibility-first design systems
  • 📦 Author of nav-progress-bar — a zero-dependency, CSP-safe Web Component for Next.js App Router navigation
  • 🔐 Published a practical mitigation for the Nx CREEP vulnerability (CVE-2025-36852) using GCP IAM conditions & Workload Identity Federation
  • 👯 Looking to collaborate on JS/TS, React, Vite, and DX-focused open source projects
  • 💬 Ask me about React, Next.js, Vite plugins, micro-frontends, mono-repos, gRPC, or DevOps
  • 📫 Reach me at vctqs1@gmail.com

📦 My Projects

ProjectDescription
@vctqs1/nav-progress-barZero-dependency, CSP-safe navigation progress bar as a native Web Component.
@vctqs1/nav-progress-bar-reactReact wrapper @vctqs1/nav-progress-bar. First-class Next.js App Router support.
@vctqs1/vite-plugin-resource-collectorVite plugin to collect only necessary files for build-time usage

🛠️ Open Source Contributions

Write-ups


🤝 Connect with me

vctqs1vctth13221653@vctthvctqs1


⚙️ Languages and Tools

reactnextjstypescriptvitereduxtailwindgonodejsgraphqlkubernetesgcpdockercypressjestfigmagitpostgresqlbashlinux


vctqs1 streak stats

Pinned Loading

  1. Practical Mitigation for Nx CREEP Vu...Practical Mitigation for Nx CREEP Vulnerability Using GCP IAM Conditions and Branch-Restricted Cache Writes
    1
    # Practical Mitigation for Nx CREEP (CVE-2025-36852) Using GCP IAM Conditions
    2
    3
    ## TL;DR
    4
    5
    If you're using deprecated Nx self-hosted remote cache packages like `@nx/gcs-cache`, one immediate mitigation for the CREEP vulnerability is:
  2. nav-progress-barnav-progress-barPublic

    A zero-dependency, CSP-safe navigation progress bar built as a native Web Component. First-class support for Next.js App Router — fills the dead time between a link click and loading.js appearing, …

    TypeScript

  3. vctqs1-vn/vite-plugin-resource-collectorvctqs1-vn/vite-plugin-resource-collectorPublic

    a Vite plugin designed to help developers collect and log transpiled source files during the build process

    TypeScript

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
vctqs1 (Thu Vo) · GitHub
Skip to content
View vctqs1's full-sized avatar

Block or report vctqs1

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vctqs1/README.md

Hi 👋, I'm Thu

Technical Lead & Frontend Engineer · Developer Experience Enthusiast · Vietnam 🇻🇳

vctqs1


  • 🔭 Currently Technical Lead at HCLTech × ANZx — building the Plus web banking platform & design system (promoted from Senior FE within a year; 8+ years total across frontend, backend & DevOps)
  • 🌱 Deeply passionate about Developer Experience (DX) — tooling, CI/CD, build performance, and developer workflows
  • 🏗️ I build things like Webpack/Vite plugins, runtime environment solutions, and accessibility-first design systems
  • 📦 Author of nav-progress-bar — a zero-dependency, CSP-safe Web Component for Next.js App Router navigation
  • 🔐 Published a practical mitigation for the Nx CREEP vulnerability (CVE-2025-36852) using GCP IAM conditions & Workload Identity Federation
  • 👯 Looking to collaborate on JS/TS, React, Vite, and DX-focused open source projects
  • 💬 Ask me about React, Next.js, Vite plugins, micro-frontends, mono-repos, gRPC, or DevOps
  • 📫 Reach me at vctqs1@gmail.com

📦 My Projects

ProjectDescription
@vctqs1/nav-progress-barZero-dependency, CSP-safe navigation progress bar as a native Web Component.
@vctqs1/nav-progress-bar-reactReact wrapper @vctqs1/nav-progress-bar. First-class Next.js App Router support.
@vctqs1/vite-plugin-resource-collectorVite plugin to collect only necessary files for build-time usage

🛠️ Open Source Contributions

Write-ups


🤝 Connect with me

vctqs1vctth13221653@vctthvctqs1


⚙️ Languages and Tools

reactnextjstypescriptvitereduxtailwindgonodejsgraphqlkubernetesgcpdockercypressjestfigmagitpostgresqlbashlinux


vctqs1 streak stats

Pinned Loading

  1. Practical Mitigation for Nx CREEP Vu...Practical Mitigation for Nx CREEP Vulnerability Using GCP IAM Conditions and Branch-Restricted Cache Writes
    1
    # Practical Mitigation for Nx CREEP (CVE-2025-36852) Using GCP IAM Conditions
    2
    3
    ## TL;DR
    4
    5
    If you're using deprecated Nx self-hosted remote cache packages like `@nx/gcs-cache`, one immediate mitigation for the CREEP vulnerability is:
  2. nav-progress-barnav-progress-barPublic

    A zero-dependency, CSP-safe navigation progress bar built as a native Web Component. First-class support for Next.js App Router — fills the dead time between a link click and loading.js appearing, …

    TypeScript

  3. vctqs1-vn/vite-plugin-resource-collectorvctqs1-vn/vite-plugin-resource-collectorPublic

    a Vite plugin designed to help developers collect and log transpiled source files during the build process

    TypeScript

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' vctqs1 (Thu Vo) · GitHub
Skip to content
View vctqs1's full-sized avatar

Block or report vctqs1

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vctqs1/README.md

Hi 👋, I'm Thu

Technical Lead & Frontend Engineer · Developer Experience Enthusiast · Vietnam 🇻🇳

vctqs1


  • 🔭 Currently Technical Lead at HCLTech × ANZx — building the Plus web banking platform & design system (promoted from Senior FE within a year; 8+ years total across frontend, backend & DevOps)
  • 🌱 Deeply passionate about Developer Experience (DX) — tooling, CI/CD, build performance, and developer workflows
  • 🏗️ I build things like Webpack/Vite plugins, runtime environment solutions, and accessibility-first design systems
  • 📦 Author of nav-progress-bar — a zero-dependency, CSP-safe Web Component for Next.js App Router navigation
  • 🔐 Published a practical mitigation for the Nx CREEP vulnerability (CVE-2025-36852) using GCP IAM conditions & Workload Identity Federation
  • 👯 Looking to collaborate on JS/TS, React, Vite, and DX-focused open source projects
  • 💬 Ask me about React, Next.js, Vite plugins, micro-frontends, mono-repos, gRPC, or DevOps
  • 📫 Reach me at vctqs1@gmail.com

📦 My Projects

ProjectDescription
@vctqs1/nav-progress-barZero-dependency, CSP-safe navigation progress bar as a native Web Component.
@vctqs1/nav-progress-bar-reactReact wrapper @vctqs1/nav-progress-bar. First-class Next.js App Router support.
@vctqs1/vite-plugin-resource-collectorVite plugin to collect only necessary files for build-time usage

🛠️ Open Source Contributions

Write-ups


🤝 Connect with me

vctqs1vctth13221653@vctthvctqs1


⚙️ Languages and Tools

reactnextjstypescriptvitereduxtailwindgonodejsgraphqlkubernetesgcpdockercypressjestfigmagitpostgresqlbashlinux


vctqs1 streak stats

Pinned Loading

  1. Practical Mitigation for Nx CREEP Vu...Practical Mitigation for Nx CREEP Vulnerability Using GCP IAM Conditions and Branch-Restricted Cache Writes
    1
    # Practical Mitigation for Nx CREEP (CVE-2025-36852) Using GCP IAM Conditions
    2
    3
    ## TL;DR
    4
    5
    If you're using deprecated Nx self-hosted remote cache packages like `@nx/gcs-cache`, one immediate mitigation for the CREEP vulnerability is:
  2. nav-progress-barnav-progress-barPublic

    A zero-dependency, CSP-safe navigation progress bar built as a native Web Component. First-class support for Next.js App Router — fills the dead time between a link click and loading.js appearing, …

    TypeScript

  3. vctqs1-vn/vite-plugin-resource-collectorvctqs1-vn/vite-plugin-resource-collectorPublic

    a Vite plugin designed to help developers collect and log transpiled source files during the build process

    TypeScript

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' vctqs1 (Thu Vo) · GitHub
Skip to content
View vctqs1's full-sized avatar

Block or report vctqs1

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vctqs1/README.md

Hi 👋, I'm Thu

Technical Lead & Frontend Engineer · Developer Experience Enthusiast · Vietnam 🇻🇳

vctqs1


  • 🔭 Currently Technical Lead at HCLTech × ANZx — building the Plus web banking platform & design system (promoted from Senior FE within a year; 8+ years total across frontend, backend & DevOps)
  • 🌱 Deeply passionate about Developer Experience (DX) — tooling, CI/CD, build performance, and developer workflows
  • 🏗️ I build things like Webpack/Vite plugins, runtime environment solutions, and accessibility-first design systems
  • 📦 Author of nav-progress-bar — a zero-dependency, CSP-safe Web Component for Next.js App Router navigation
  • 🔐 Published a practical mitigation for the Nx CREEP vulnerability (CVE-2025-36852) using GCP IAM conditions & Workload Identity Federation
  • 👯 Looking to collaborate on JS/TS, React, Vite, and DX-focused open source projects
  • 💬 Ask me about React, Next.js, Vite plugins, micro-frontends, mono-repos, gRPC, or DevOps
  • 📫 Reach me at vctqs1@gmail.com

📦 My Projects

ProjectDescription
@vctqs1/nav-progress-barZero-dependency, CSP-safe navigation progress bar as a native Web Component.
@vctqs1/nav-progress-bar-reactReact wrapper @vctqs1/nav-progress-bar. First-class Next.js App Router support.
@vctqs1/vite-plugin-resource-collectorVite plugin to collect only necessary files for build-time usage

🛠️ Open Source Contributions

Write-ups


🤝 Connect with me

vctqs1vctth13221653@vctthvctqs1


⚙️ Languages and Tools

reactnextjstypescriptvitereduxtailwindgonodejsgraphqlkubernetesgcpdockercypressjestfigmagitpostgresqlbashlinux


vctqs1 streak stats

Pinned Loading

  1. Practical Mitigation for Nx CREEP Vu...Practical Mitigation for Nx CREEP Vulnerability Using GCP IAM Conditions and Branch-Restricted Cache Writes
    1
    # Practical Mitigation for Nx CREEP (CVE-2025-36852) Using GCP IAM Conditions
    2
    3
    ## TL;DR
    4
    5
    If you're using deprecated Nx self-hosted remote cache packages like `@nx/gcs-cache`, one immediate mitigation for the CREEP vulnerability is:
  2. nav-progress-barnav-progress-barPublic

    A zero-dependency, CSP-safe navigation progress bar built as a native Web Component. First-class support for Next.js App Router — fills the dead time between a link click and loading.js appearing, …

    TypeScript

  3. vctqs1-vn/vite-plugin-resource-collectorvctqs1-vn/vite-plugin-resource-collectorPublic

    a Vite plugin designed to help developers collect and log transpiled source files during the build process

    TypeScript

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' vctqs1 (Thu Vo) · GitHub
Skip to content
View vctqs1's full-sized avatar

Block or report vctqs1

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vctqs1/README.md

Hi 👋, I'm Thu

Technical Lead & Frontend Engineer · Developer Experience Enthusiast · Vietnam 🇻🇳

vctqs1


  • 🔭 Currently Technical Lead at HCLTech × ANZx — building the Plus web banking platform & design system (promoted from Senior FE within a year; 8+ years total across frontend, backend & DevOps)
  • 🌱 Deeply passionate about Developer Experience (DX) — tooling, CI/CD, build performance, and developer workflows
  • 🏗️ I build things like Webpack/Vite plugins, runtime environment solutions, and accessibility-first design systems
  • 📦 Author of nav-progress-bar — a zero-dependency, CSP-safe Web Component for Next.js App Router navigation
  • 🔐 Published a practical mitigation for the Nx CREEP vulnerability (CVE-2025-36852) using GCP IAM conditions & Workload Identity Federation
  • 👯 Looking to collaborate on JS/TS, React, Vite, and DX-focused open source projects
  • 💬 Ask me about React, Next.js, Vite plugins, micro-frontends, mono-repos, gRPC, or DevOps
  • 📫 Reach me at vctqs1@gmail.com

📦 My Projects

ProjectDescription
@vctqs1/nav-progress-barZero-dependency, CSP-safe navigation progress bar as a native Web Component.
@vctqs1/nav-progress-bar-reactReact wrapper @vctqs1/nav-progress-bar. First-class Next.js App Router support.
@vctqs1/vite-plugin-resource-collectorVite plugin to collect only necessary files for build-time usage

🛠️ Open Source Contributions

Write-ups


🤝 Connect with me

vctqs1vctth13221653@vctthvctqs1


⚙️ Languages and Tools

reactnextjstypescriptvitereduxtailwindgonodejsgraphqlkubernetesgcpdockercypressjestfigmagitpostgresqlbashlinux


vctqs1 streak stats

Pinned Loading

  1. Practical Mitigation for Nx CREEP Vu...Practical Mitigation for Nx CREEP Vulnerability Using GCP IAM Conditions and Branch-Restricted Cache Writes
    1
    # Practical Mitigation for Nx CREEP (CVE-2025-36852) Using GCP IAM Conditions
    2
    3
    ## TL;DR
    4
    5
    If you're using deprecated Nx self-hosted remote cache packages like `@nx/gcs-cache`, one immediate mitigation for the CREEP vulnerability is:
  2. nav-progress-barnav-progress-barPublic

    A zero-dependency, CSP-safe navigation progress bar built as a native Web Component. First-class support for Next.js App Router — fills the dead time between a link click and loading.js appearing, …

    TypeScript

  3. vctqs1-vn/vite-plugin-resource-collectorvctqs1-vn/vite-plugin-resource-collectorPublic

    a Vite plugin designed to help developers collect and log transpiled source files during the build process

    TypeScript

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' vctqs1 (Thu Vo) · GitHub
Skip to content
View vctqs1's full-sized avatar

Block or report vctqs1

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vctqs1/README.md

Hi 👋, I'm Thu

Technical Lead & Frontend Engineer · Developer Experience Enthusiast · Vietnam 🇻🇳

vctqs1


  • 🔭 Currently Technical Lead at HCLTech × ANZx — building the Plus web banking platform & design system (promoted from Senior FE within a year; 8+ years total across frontend, backend & DevOps)
  • 🌱 Deeply passionate about Developer Experience (DX) — tooling, CI/CD, build performance, and developer workflows
  • 🏗️ I build things like Webpack/Vite plugins, runtime environment solutions, and accessibility-first design systems
  • 📦 Author of nav-progress-bar — a zero-dependency, CSP-safe Web Component for Next.js App Router navigation
  • 🔐 Published a practical mitigation for the Nx CREEP vulnerability (CVE-2025-36852) using GCP IAM conditions & Workload Identity Federation
  • 👯 Looking to collaborate on JS/TS, React, Vite, and DX-focused open source projects
  • 💬 Ask me about React, Next.js, Vite plugins, micro-frontends, mono-repos, gRPC, or DevOps
  • 📫 Reach me at vctqs1@gmail.com

📦 My Projects

ProjectDescription
@vctqs1/nav-progress-barZero-dependency, CSP-safe navigation progress bar as a native Web Component.
@vctqs1/nav-progress-bar-reactReact wrapper @vctqs1/nav-progress-bar. First-class Next.js App Router support.
@vctqs1/vite-plugin-resource-collectorVite plugin to collect only necessary files for build-time usage

🛠️ Open Source Contributions

Write-ups


🤝 Connect with me

vctqs1vctth13221653@vctthvctqs1


⚙️ Languages and Tools

reactnextjstypescriptvitereduxtailwindgonodejsgraphqlkubernetesgcpdockercypressjestfigmagitpostgresqlbashlinux


vctqs1 streak stats

Pinned Loading

  1. Practical Mitigation for Nx CREEP Vu...Practical Mitigation for Nx CREEP Vulnerability Using GCP IAM Conditions and Branch-Restricted Cache Writes
    1
    # Practical Mitigation for Nx CREEP (CVE-2025-36852) Using GCP IAM Conditions
    2
    3
    ## TL;DR
    4
    5
    If you're using deprecated Nx self-hosted remote cache packages like `@nx/gcs-cache`, one immediate mitigation for the CREEP vulnerability is:
  2. nav-progress-barnav-progress-barPublic

    A zero-dependency, CSP-safe navigation progress bar built as a native Web Component. First-class support for Next.js App Router — fills the dead time between a link click and loading.js appearing, …

    TypeScript

  3. vctqs1-vn/vite-plugin-resource-collectorvctqs1-vn/vite-plugin-resource-collectorPublic

    a Vite plugin designed to help developers collect and log transpiled source files during the build process

    TypeScript

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); vctqs1 (Thu Vo) · GitHub
Skip to content
View vctqs1's full-sized avatar

Block or report vctqs1

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vctqs1/README.md

Hi 👋, I'm Thu

Technical Lead & Frontend Engineer · Developer Experience Enthusiast · Vietnam 🇻🇳

vctqs1


  • 🔭 Currently Technical Lead at HCLTech × ANZx — building the Plus web banking platform & design system (promoted from Senior FE within a year; 8+ years total across frontend, backend & DevOps)
  • 🌱 Deeply passionate about Developer Experience (DX) — tooling, CI/CD, build performance, and developer workflows
  • 🏗️ I build things like Webpack/Vite plugins, runtime environment solutions, and accessibility-first design systems
  • 📦 Author of nav-progress-bar — a zero-dependency, CSP-safe Web Component for Next.js App Router navigation
  • 🔐 Published a practical mitigation for the Nx CREEP vulnerability (CVE-2025-36852) using GCP IAM conditions & Workload Identity Federation
  • 👯 Looking to collaborate on JS/TS, React, Vite, and DX-focused open source projects
  • 💬 Ask me about React, Next.js, Vite plugins, micro-frontends, mono-repos, gRPC, or DevOps
  • 📫 Reach me at vctqs1@gmail.com

📦 My Projects

ProjectDescription
@vctqs1/nav-progress-barZero-dependency, CSP-safe navigation progress bar as a native Web Component.
@vctqs1/nav-progress-bar-reactReact wrapper @vctqs1/nav-progress-bar. First-class Next.js App Router support.
@vctqs1/vite-plugin-resource-collectorVite plugin to collect only necessary files for build-time usage

🛠️ Open Source Contributions

Write-ups


🤝 Connect with me

vctqs1vctth13221653@vctthvctqs1


⚙️ Languages and Tools

reactnextjstypescriptvitereduxtailwindgonodejsgraphqlkubernetesgcpdockercypressjestfigmagitpostgresqlbashlinux


vctqs1 streak stats

Pinned Loading

  1. Practical Mitigation for Nx CREEP Vu...Practical Mitigation for Nx CREEP Vulnerability Using GCP IAM Conditions and Branch-Restricted Cache Writes
    1
    # Practical Mitigation for Nx CREEP (CVE-2025-36852) Using GCP IAM Conditions
    2
    3
    ## TL;DR
    4
    5
    If you're using deprecated Nx self-hosted remote cache packages like `@nx/gcs-cache`, one immediate mitigation for the CREEP vulnerability is:
  2. nav-progress-barnav-progress-barPublic

    A zero-dependency, CSP-safe navigation progress bar built as a native Web Component. First-class support for Next.js App Router — fills the dead time between a link click and loading.js appearing, …

    TypeScript

  3. vctqs1-vn/vite-plugin-resource-collectorvctqs1-vn/vite-plugin-resource-collectorPublic

    a Vite plugin designed to help developers collect and log transpiled source files during the build process

    TypeScript