Skip to content

Commit

Permalink
feat: change keyword for SEO
Browse files Browse the repository at this point in the history
  • Loading branch information
tuanngocptn committed Dec 19, 2024
1 parent 91df69f commit 71afbb0
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion home.html
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
<!-- Main Text -->
<a href="https://nport.link"><h1>nport.link</h1></a>
<p class="description">
NPort is a powerful and lightweight tunneling tool that serves as a complete replacement for <a href="https://ngrok.com/">ngrok</a>, allowing you to create secure HTTP/HTTPS connections from your localhost to public URLs - with all the same features but completely free and open source.
NPort is a powerful and lightweight <a href="https://ngrok.com" target="_blank">ngrok alternative</a> that creates secure HTTP/HTTPS connections from localhost to public URLs.
</p>
<!-- Subtitle -->
<div class="social-links">
Expand Down
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="NPort - A free and open source ngrok alternative that tunnels HTTP(s) connections for straightforward access to localhost via public URLs"><meta name="keywords" content="nport, ngrok alternative, localhost tunnel, local tunnel, HTTP tunnel, HTTPS tunnel, URL forwarding, web development, free ngrok alternative, open source ngrok alternative"><meta name="author" content="Nick - Ngoc Pham"><meta property="og:type" content="website"><meta property="og:url" content="https://nport.link/"><meta property="og:title" content="NPort - Local Tunnel Made Easy | Free & Open Source Ngrok Alternative"><meta property="og:description" content="A free and open source ngrok alternative that tunnels HTTP(s) connections for straightforward access to localhost via public URLs"><meta property="og:image" content="https://nport.link/assets/webp/nport-site.webp"><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://nport.link/"><meta property="twitter:title" content="NPort - Local Tunnel Made Easy | Free & Open Source Ngrok Alternative"><meta property="twitter:description" content="A free and open source ngrok alternative that tunnels HTTP(s) connections for straightforward access to localhost via public URLs"><meta property="twitter:image" content="https://nport.link/assets/webp/nport-site.webp"><link rel="apple-touch-icon" sizes="180x180" href="https://nport.link/assets/favicon_io/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="https://nport.link/assets/favicon_io/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="https://nport.link/assets/favicon_io/favicon-16x16.png"><link rel="manifest" href="https://nport.link/assets/favicon_io/site.webmanifest"><title>NPort - Local Tunnel Made Easy | Free & Open Source Ngrok Alternative</title><style>*{margin:0;padding:0;box-sizing:border-box}a{text-decoration:none;color:inherit}body{font-family:sans-serif;min-height:100vh;margin:0;padding:0;position:relative;background:#1e1e1e;color:#fff;display:flex;align-items:center;justify-content:center;overflow-y:auto}.content{text-align:center;max-width:1200px;width:100%;margin:100px auto 80px;padding:0 1rem;position:relative}.content h1{font-size:4rem;font-weight:700;text-transform:uppercase;letter-spacing:5px;margin-bottom:10px;background:linear-gradient(45deg,#fff,#d4d4d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.content h2{margin-top:4rem;margin-bottom:4rem;font-size:2rem;font-weight:400;letter-spacing:3px}.description{font-size:1.2rem;color:#d4d4d4;max-width:800px;margin:1.5rem auto;line-height:1.6;opacity:.8}.content h2 code,.feature code{background-color:#1e1e1e;padding:.4em .6em;border-radius:6px;font-family:Consolas,Monaco,"Andale Mono",monospace;cursor:pointer;border:1px solid #454545;font-size:.9em;color:#d4d4d4;box-shadow:0 2px 4px rgba(0,0,0,.2);display:inline-block;position:relative;text-align:left}.content h2 code::before,.feature code::before{content:"$";color:#858585;margin-right:.8em;user-select:none}.content h2 code:hover,.feature code:hover{background-color:#2d2d2d;border-color:#666}.social-links{display:flex;gap:1rem;justify-content:center}.button{display:flex;align-items:center;gap:.5rem;padding:.6em 1.2em;border-radius:6px;text-decoration:none;font-size:1rem;font-weight:500;transition:all .2s ease;color:#d4d4d4}.button img{width:20px;height:20px}.button:hover{background-color:#2d2d2d}.coffee-button{display:inline-flex;align-items:center;background-color:#fd0;color:#000;padding:.6em 1.2em;border-radius:6px;text-decoration:none;font-family:cursive;font-size:1.2rem;transition:all .3s ease}.coffee-button:hover{background-color:#ffcd00;transform:translateY(-1px)}.coffee-button img{height:24px;margin-right:8px}.mobile-text{display:none}@media screen and (max-width:768px){.desktop-text{display:none}.mobile-text{display:inline}.coffee-button{padding:8px 16px}}.logo{position:fixed;top:0;left:0;z-index:10;display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit;background:#1e1e1e;padding:20px 40px;width:100%}.logo img{object-fit:contain;height:60px;width:60px}.logo span{font-size:3rem;color:#fff}.features{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;margin:2rem auto;padding:0 1rem;text-align:left}.feature{background:rgba(30,30,30,.6);padding:1.5rem;border-radius:8px;border:1px solid #454545}.feature h3{font-size:1.2rem;margin-bottom:1rem;color:#fff}.feature p{font-size:1rem;color:#d4d4d4;line-height:1.6;margin-bottom:1rem}.feature ul{list-style-position:inside;color:#d4d4d4}.feature li{line-height:1.4}.feature code{display:inline-block;background:#1e1e1e;padding:.4em .6em;border-radius:4px;font-family:Consolas,Monaco,"Andale Mono",monospace;font-size:.9em;color:#d4d4d4;margin:.5rem 0}.footer{position:fixed;bottom:0;left:0;width:100%;padding:20px;text-align:center;color:#d4d4d4;font-size:.9rem;background:#1e1e1e;z-index:10}.footer a{color:#fff;text-decoration:underline;text-underline-offset:2px;transition:opacity .2s ease}.footer a:hover{opacity:.8;text-decoration-thickness:2px}@media (max-width:768px){body{display:block}.content{margin:80px auto 60px}.content h1{font-size:2.5rem;letter-spacing:3px}.content h2{font-size:1.5rem}.description{font-size:1rem;padding:0 20px;margin:1rem auto}.social-links{flex-direction:row;justify-content:center;gap:.5rem;padding:0 1rem}.button{width:auto;padding:.4em .8em;font-size:.9rem}.logo{padding:10px 20px;gap:.5rem}.logo img{height:30px;width:30px}.logo span{font-size:2rem}.features{grid-template-columns:1fr;gap:1rem}.feature{padding:1rem}.footer{padding:10px;font-size:.8rem}}.copy-feedback{position:fixed;background-color:#2d2d2d;color:#d4d4d4;padding:.4em .8em;border-radius:6px;font-size:.9em;pointer-events:none;opacity:0;z-index:1000;transition:all .2s ease;border:1px solid #454545;box-shadow:0 2px 4px rgba(0,0,0,.2);white-space:nowrap}.copy-feedback.show{opacity:1}</style></head><body><a href="https://nport.link" class="logo"><img src="./assets/webp/nport-logo-dark-min.webp" alt="NPort logo" height="30" width="30"> <span>NPort</span></a><div class="content"><a href="https://nport.link"><h1>nport.link</h1></a><p class="description">NPort is a powerful and lightweight tunneling tool that serves as a complete replacement for <a href="https://ngrok.com/">ngrok</a>, allowing you to create secure HTTP/HTTPS connections from your localhost to public URLs - with all the same features but completely free and open source.</p><div class="social-links"><a href="https://github.com/tuanngocptn/nport" target="_blank" class="button github"><img src="./assets/webp/github.webp" alt="Github NPort"> <span>GitHub</span> </a><a href="https://www.npmjs.com/package/nport" target="_blank" class="button npm"><img src="./assets/webp/npm.webp" alt="NPM NPort"> <span>npm</span> </a><a href="https://buymeacoffee.com/tuanngocptn" target="_blank" class="coffee-button"><img src="./assets/webp/buy-me-a-coffee-min.webp" alt="Coffee cup icon" height="24" width="18"> <span class="desktop-text">Buy me a coffee</span> <span class="mobile-text">Coffee</span></a></div><h2><code>npm i -g nport</code></h2><p class="description">Perfect for developers who need to:</p><div class="features"><div class="feature"><h3>🚀 Share Local Development</h3><p>Instantly share your local development server with teammates or clients without complex server setup.</p></div><div class="feature"><h3>🔒 Test Webhooks</h3><p>Securely test webhook integrations from services like GitHub, Stripe, or PayPal directly on your local machine.</p></div><div class="feature"><h3>📱 Mobile Testing</h3><p>Test your web applications on mobile devices using a public URL while developing on localhost.</p></div><div class="feature"><h3>🛠️ API Development</h3><p>Develop and debug API integrations by exposing your local endpoints to external services.</p></div><div class="feature"><h3>⚡ Key Features</h3><ul><li>Custom subdomain support (e.g., myapp.nport.link)</li><li>Automatic HTTPS encryption</li><li>WebSocket support</li><li>No configuration needed</li><li>Cross-platform compatibility</li></ul></div><div class="feature"><h3>💻 Quick Start</h3><p>After installation, simply run:</p><p><code>nport -s myapp -p 3000</code></p><p>This will create a tunnel from localhost:3000 to https://myapp.nport.link</p></div></div></div><footer class="footer"><p>Created by <a href="https://github.com/tuanngocptn" target="_blank">Nick - Ngoc Pham</a> 🇻🇳 | Powered by <a href="https://github.com/tuanngocptn/nport" target="_blank">nport</a> | <a href="https://www.npmjs.com/package/nport" target="_blank">npm</a></p></footer><script>document.querySelectorAll(".content h2 code, .feature code").forEach(e=>{e.addEventListener("click",async t=>{try{var o=t.target.textContent.replace("$ ","");await navigator.clipboard.writeText(o);let e=document.createElement("div");e.className="copy-feedback",e.textContent="Copied! 📋",document.body.appendChild(e),e.style.left=t.clientX+10+"px",e.style.top=t.clientY-20+"px",requestAnimationFrame(()=>e.classList.add("show")),t.target.style.backgroundColor="#2d2d2d",setTimeout(()=>{t.target.style.backgroundColor="#1e1e1e",e.classList.remove("show"),setTimeout(()=>e.remove(),200)},1e3)}catch(t){console.error("Failed to copy text: ",t)}})})</script></body></html>
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="NPort - A free and open source ngrok alternative that tunnels HTTP(s) connections for straightforward access to localhost via public URLs"><meta name="keywords" content="nport, ngrok alternative, localhost tunnel, local tunnel, HTTP tunnel, HTTPS tunnel, URL forwarding, web development, free ngrok alternative, open source ngrok alternative"><meta name="author" content="Nick - Ngoc Pham"><meta property="og:type" content="website"><meta property="og:url" content="https://nport.link/"><meta property="og:title" content="NPort - Local Tunnel Made Easy | Free & Open Source Ngrok Alternative"><meta property="og:description" content="A free and open source ngrok alternative that tunnels HTTP(s) connections for straightforward access to localhost via public URLs"><meta property="og:image" content="https://nport.link/assets/webp/nport-site.webp"><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://nport.link/"><meta property="twitter:title" content="NPort - Local Tunnel Made Easy | Free & Open Source Ngrok Alternative"><meta property="twitter:description" content="A free and open source ngrok alternative that tunnels HTTP(s) connections for straightforward access to localhost via public URLs"><meta property="twitter:image" content="https://nport.link/assets/webp/nport-site.webp"><link rel="apple-touch-icon" sizes="180x180" href="https://nport.link/assets/favicon_io/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="https://nport.link/assets/favicon_io/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="https://nport.link/assets/favicon_io/favicon-16x16.png"><link rel="manifest" href="https://nport.link/assets/favicon_io/site.webmanifest"><title>NPort - Local Tunnel Made Easy | Free & Open Source Ngrok Alternative</title><style>*{margin:0;padding:0;box-sizing:border-box}a{text-decoration:none;color:inherit}body{font-family:sans-serif;min-height:100vh;margin:0;padding:0;position:relative;background:#1e1e1e;color:#fff;display:flex;align-items:center;justify-content:center;overflow-y:auto}.content{text-align:center;max-width:1200px;width:100%;margin:100px auto 80px;padding:0 1rem;position:relative}.content h1{font-size:4rem;font-weight:700;text-transform:uppercase;letter-spacing:5px;margin-bottom:10px;background:linear-gradient(45deg,#fff,#d4d4d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.content h2{margin-top:4rem;margin-bottom:4rem;font-size:2rem;font-weight:400;letter-spacing:3px}.description{font-size:1.2rem;color:#d4d4d4;max-width:800px;margin:1.5rem auto;line-height:1.6;opacity:.8}.content h2 code,.feature code{background-color:#1e1e1e;padding:.4em .6em;border-radius:6px;font-family:Consolas,Monaco,"Andale Mono",monospace;cursor:pointer;border:1px solid #454545;font-size:.9em;color:#d4d4d4;box-shadow:0 2px 4px rgba(0,0,0,.2);display:inline-block;position:relative;text-align:left}.content h2 code::before,.feature code::before{content:"$";color:#858585;margin-right:.8em;user-select:none}.content h2 code:hover,.feature code:hover{background-color:#2d2d2d;border-color:#666}.social-links{display:flex;gap:1rem;justify-content:center}.button{display:flex;align-items:center;gap:.5rem;padding:.6em 1.2em;border-radius:6px;text-decoration:none;font-size:1rem;font-weight:500;transition:all .2s ease;color:#d4d4d4}.button img{width:20px;height:20px}.button:hover{background-color:#2d2d2d}.coffee-button{display:inline-flex;align-items:center;background-color:#fd0;color:#000;padding:.6em 1.2em;border-radius:6px;text-decoration:none;font-family:cursive;font-size:1.2rem;transition:all .3s ease}.coffee-button:hover{background-color:#ffcd00;transform:translateY(-1px)}.coffee-button img{height:24px;margin-right:8px}.mobile-text{display:none}@media screen and (max-width:768px){.desktop-text{display:none}.mobile-text{display:inline}.coffee-button{padding:8px 16px}}.logo{position:fixed;top:0;left:0;z-index:10;display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit;background:#1e1e1e;padding:20px 40px;width:100%}.logo img{object-fit:contain;height:60px;width:60px}.logo span{font-size:3rem;color:#fff}.features{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;margin:2rem auto;padding:0 1rem;text-align:left}.feature{background:rgba(30,30,30,.6);padding:1.5rem;border-radius:8px;border:1px solid #454545}.feature h3{font-size:1.2rem;margin-bottom:1rem;color:#fff}.feature p{font-size:1rem;color:#d4d4d4;line-height:1.6;margin-bottom:1rem}.feature ul{list-style-position:inside;color:#d4d4d4}.feature li{line-height:1.4}.feature code{display:inline-block;background:#1e1e1e;padding:.4em .6em;border-radius:4px;font-family:Consolas,Monaco,"Andale Mono",monospace;font-size:.9em;color:#d4d4d4;margin:.5rem 0}.footer{position:fixed;bottom:0;left:0;width:100%;padding:20px;text-align:center;color:#d4d4d4;font-size:.9rem;background:#1e1e1e;z-index:10}.footer a{color:#fff;text-decoration:underline;text-underline-offset:2px;transition:opacity .2s ease}.footer a:hover{opacity:.8;text-decoration-thickness:2px}@media (max-width:768px){body{display:block}.content{margin:80px auto 60px}.content h1{font-size:2.5rem;letter-spacing:3px}.content h2{font-size:1.5rem}.description{font-size:1rem;padding:0 20px;margin:1rem auto}.social-links{flex-direction:row;justify-content:center;gap:.5rem;padding:0 1rem}.button{width:auto;padding:.4em .8em;font-size:.9rem}.logo{padding:10px 20px;gap:.5rem}.logo img{height:30px;width:30px}.logo span{font-size:2rem}.features{grid-template-columns:1fr;gap:1rem}.feature{padding:1rem}.footer{padding:10px;font-size:.8rem}}.copy-feedback{position:fixed;background-color:#2d2d2d;color:#d4d4d4;padding:.4em .8em;border-radius:6px;font-size:.9em;pointer-events:none;opacity:0;z-index:1000;transition:all .2s ease;border:1px solid #454545;box-shadow:0 2px 4px rgba(0,0,0,.2);white-space:nowrap}.copy-feedback.show{opacity:1}</style></head><body><a href="https://nport.link" class="logo"><img src="./assets/webp/nport-logo-dark-min.webp" alt="NPort logo" height="30" width="30"> <span>NPort</span></a><div class="content"><a href="https://nport.link"><h1>nport.link</h1></a><p class="description">NPort is a powerful and lightweight <a href="https://ngrok.com" target="_blank">ngrok alternative</a> that creates secure HTTP/HTTPS connections from localhost to public URLs.</p><div class="social-links"><a href="https://github.com/tuanngocptn/nport" target="_blank" class="button github"><img src="./assets/webp/github.webp" alt="Github NPort"> <span>GitHub</span> </a><a href="https://www.npmjs.com/package/nport" target="_blank" class="button npm"><img src="./assets/webp/npm.webp" alt="NPM NPort"> <span>npm</span> </a><a href="https://buymeacoffee.com/tuanngocptn" target="_blank" class="coffee-button"><img src="./assets/webp/buy-me-a-coffee-min.webp" alt="Coffee cup icon" height="24" width="18"> <span class="desktop-text">Buy me a coffee</span> <span class="mobile-text">Coffee</span></a></div><h2><code>npm i -g nport</code></h2><p class="description">Perfect for developers who need to:</p><div class="features"><div class="feature"><h3>🚀 Share Local Development</h3><p>Instantly share your local development server with teammates or clients without complex server setup.</p></div><div class="feature"><h3>🔒 Test Webhooks</h3><p>Securely test webhook integrations from services like GitHub, Stripe, or PayPal directly on your local machine.</p></div><div class="feature"><h3>📱 Mobile Testing</h3><p>Test your web applications on mobile devices using a public URL while developing on localhost.</p></div><div class="feature"><h3>🛠️ API Development</h3><p>Develop and debug API integrations by exposing your local endpoints to external services.</p></div><div class="feature"><h3>⚡ Key Features</h3><ul><li>Custom subdomain support (e.g., myapp.nport.link)</li><li>Automatic HTTPS encryption</li><li>WebSocket support</li><li>No configuration needed</li><li>Cross-platform compatibility</li></ul></div><div class="feature"><h3>💻 Quick Start</h3><p>After installation, simply run:</p><p><code>nport -s myapp -p 3000</code></p><p>This will create a tunnel from localhost:3000 to https://myapp.nport.link</p></div></div></div><footer class="footer"><p>Created by <a href="https://github.com/tuanngocptn" target="_blank">Nick - Ngoc Pham</a> 🇻🇳 | Powered by <a href="https://github.com/tuanngocptn/nport" target="_blank">nport</a> | <a href="https://www.npmjs.com/package/nport" target="_blank">npm</a></p></footer><script>document.querySelectorAll(".content h2 code, .feature code").forEach(e=>{e.addEventListener("click",async t=>{try{var o=t.target.textContent.replace("$ ","");await navigator.clipboard.writeText(o);let e=document.createElement("div");e.className="copy-feedback",e.textContent="Copied! 📋",document.body.appendChild(e),e.style.left=t.clientX+10+"px",e.style.top=t.clientY-20+"px",requestAnimationFrame(()=>e.classList.add("show")),t.target.style.backgroundColor="#2d2d2d",setTimeout(()=>{t.target.style.backgroundColor="#1e1e1e",e.classList.remove("show"),setTimeout(()=>e.remove(),200)},1e3)}catch(t){console.error("Failed to copy text: ",t)}})})</script></body></html>

0 comments on commit 71afbb0

Please sign in to comment.