ForrestadBashar
  • NEW!
    NEW!  Connect Ideas Across Notes
    Save time and share insights. With Paragraph Citation, you can quote others’ work with source info built in. If someone cites your note, you’ll see a card showing where it’s used—bringing notes closer together.
    Got it
      • Create new note
      • Create a note from template
        • Sharing URL Link copied
        • /edit
        • View mode
          • Edit mode
          • View mode
          • Book mode
          • Slide mode
          Edit mode View mode Book mode Slide mode
        • Customize slides
        • Note Permission
        • Read
          • Only me
          • Signed-in users
          • Everyone
          Only me Signed-in users Everyone
        • Write
          • Only me
          • Signed-in users
          • Everyone
          Only me Signed-in users Everyone
        • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invite by email
        Invitee

        This note has no invitees

      • Publish Note

        Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

        Your note will be visible on your profile and discoverable by anyone.
        Your note is now live.
        This note is visible on your profile and discoverable online.
        Everyone on the web can find and read all notes of this public team.

        Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

        Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

        Explore these features while you wait
        Complete general settings
        Bookmark and like published notes
        Write a few more notes
        Complete general settings
        Write a few more notes
        See published notes
        Unpublish note
        Please check the box to agree to the Community Guidelines.
        View profile
      • Commenting
        Permission
        Disabled Forbidden Owners Signed-in users Everyone
      • Enable
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
        • Everyone
      • Suggest edit
        Permission
        Disabled Forbidden Owners Signed-in users Everyone
      • Enable
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
      • Emoji Reply
      • Enable
      • Versions and GitHub Sync
      • Note settings
      • Note Insights New
      • Engagement control
      • Make a copy
      • Transfer ownership
      • Delete this note
      • Save as template
      • Insert from template
      • Import from
        • Dropbox
        • Google Drive
        • Gist
        • Clipboard
      • Export to
        • Dropbox
        • Google Drive
        • Gist
      • Download
        • Markdown
        • HTML
        • Raw HTML
    Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
    Create Create new note Create a note from template
    Menu
    Options
    Engagement control Make a copy Transfer ownership Delete this note
    Import from
    Dropbox Google Drive Gist Clipboard
    Export to
    Dropbox Google Drive Gist
    Download
    Markdown HTML Raw HTML
    Back
    Sharing URL Link copied
    /edit
    View mode
    • Edit mode
    • View mode
    • Book mode
    • Slide mode
    Edit mode View mode Book mode Slide mode
    Customize slides
    Note Permission
    Read
    Only me
    • Only me
    • Signed-in users
    • Everyone
    Only me Signed-in users Everyone
    Write
    Only me
    • Only me
    • Signed-in users
    • Everyone
    Only me Signed-in users Everyone
    Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.

    Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Explore these features while you wait
    Complete general settings
    Bookmark and like published notes
    Write a few more notes
    Complete general settings
    Write a few more notes
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    <h1>Technical Deep Dive: "VPN App - Simple native VPN app" Reviewed and Installed</h1> <p> Navigating the complex landscape of network security and privacy tools, one often encounters applications promising simplicity alongside robust functionality. Today, we're dissecting a product positioned precisely in this intersection: <a href="https://gplpal.com/product/vpn-app-simple-native-vpn-app/">VPN App - Simple native VPN app</a>. As a professional technical journalist and a senior web developer who's built and maintained a fair share of backend infrastructure and client-side applications, my interest is piqued by the "simple native" moniker. Does it deliver on its promise of an unburdened, performant VPN experience, or does simplicity inadvertently lead to compromise? Let's peel back the layers and examine its architecture, feature set, real-world utility, and deployment process. </p><p><img src="https://s3.us-east-005.backblazeb2.com/gplpal/2026/03/main.png" alt="VPN App - Simple native VPN app Free"></p> <h2>Initial Impressions and Architectural Philosophy</h2> <p> The phrase "simple native VPN app" immediately conjures a few expectations. "Native" suggests platform-specific implementations—Swift/Objective-C for iOS/macOS, Kotlin/Java for Android, C#/WPF for Windows, perhaps GTK/Qt with C++ for Linux. The advantage here is typically superior performance, tighter OS integration, and potentially lower resource consumption compared to cross-platform frameworks like Electron or React Native which abstract away system-level networking intricacies. For a VPN, this means the potential for direct interaction with the operating system's network stack, potentially leveraging kernel modules or highly optimized APIs for tunneling, encryption, and routing. </p> <p> "Simple" is the more ambiguous term. In software, "simple" can mean intuitive UI, minimal configuration, or a limited feature set. For a VPN, simplicity could imply a single-protocol solution (e.g., WireGuard or a streamlined OpenVPN client), fewer advanced options like split tunneling or custom DNS, and possibly a bare-bones server list. My immediate concern with "simple" in the VPN context is whether it sacrifices critical security or privacy features for the sake of ease of use. Are we looking at a basic client for an existing VPN service, or a standalone application designed to connect to any generic VPN server? The product description hints at a client-side application, implying it’s designed to connect to an external server infrastructure. </p> <p> From a developer's standpoint, building a "native VPN app" involves significant work at the network layer. It's not just a wrapper around a HTTP proxy. It requires setting up virtual network interfaces, handling packet encapsulation and decapsulation, managing encryption keys, and securely routing traffic. If this app is truly "native," it implies a deep understanding of the host OS's networking capabilities and security models. This is a non-trivial undertaking. </p> <h3>Underlying Protocols and Expected Security</h3> <p> A VPN application's core security lies in its chosen protocol. Common choices include OpenVPN, WireGuard, IKEv2/IPsec, and L2TP/IPsec. <ul> <li><strong>OpenVPN:</strong> Widely adopted, highly configurable, and generally considered secure. It can run over TCP or UDP, offering flexibility. Its complexity, however, might clash with the "simple" claim.</li> <li><strong>WireGuard:</strong> A newer, leaner protocol known for its cryptographic modernity, smaller codebase, and excellent performance. Its simplicity in configuration and implementation makes it a strong candidate for a "simple native app."</li> <li><strong>IKEv2/IPsec:</strong> Often built into operating systems, offering good performance and stability, particularly on mobile networks (due to its ability to re-establish connections quickly).</li> <li><strong>L2TP/IPsec:</strong> A legacy protocol, often criticized for potential vulnerabilities and performance issues. Hopefully, this isn't the primary choice.</li> </ul> Given the "simple" label, I'd lean towards WireGuard or a highly abstracted OpenVPN/IKEv2 implementation. The app should, at a minimum, support AES-256 encryption for data in transit and robust key exchange mechanisms. A critical aspect of any VPN review is a no-logs policy, or at least a transparent explanation of what data, if any, is collected. A "simple native app" might omit an explicit policy, leaving users in the dark. This is a significant red flag requiring clarification. </p> <h2>Feature Set and Real-World Utility</h2> <p> Let's consider the features one would expect from even a "simple" VPN client, and how this app might interpret them. </p> <h3>Core Functionality: Connect, Disconnect, Server Selection</h3> <p> At its most basic, the app needs an obvious connect/disconnect button. Server selection is crucial for bypassing geo-restrictions and optimizing performance. A "simple" app might present a rudimentary list, perhaps just country names, without showing latency or server load metrics. For practical use, ping times and geographic proximity are vital, and their absence would be a notable deficiency. </p> <h3>Beyond the Basics: Missing Functionality?</h3> <p> Advanced features commonly found in commercial VPN clients often include: <ul> <li><strong>Kill Switch:</strong> Automatically blocks internet traffic if the VPN connection drops, preventing accidental data leaks. For a "simple" app, implementing a reliable kill switch is complex as it requires deep OS integration and careful network rule manipulation. Its absence would significantly diminish the app's security posture.</li> <li><strong>DNS Leak Protection:</strong> Ensures that DNS queries are routed through the VPN tunnel, preventing exposure of your browsing activity to your ISP. This is fundamental.</li> <li><strong>Split Tunneling:</strong> Allows users to route specific applications or websites outside the VPN tunnel. While a powerful feature, it adds significant complexity, making it unlikely for a "simple" app.</li> <li><strong>Auto-Connect/Connect on Boot:</strong> Essential for maintaining continuous privacy without manual intervention.</li> <li><strong>Protocol Selection:</strong> Giving users the choice between OpenVPN (UDP/TCP), WireGuard, IKEv2. Simplicity might mean a single, pre-selected protocol, which limits flexibility.</li> </ul> The expectation for a "simple native VPN app" is that many of these advanced features would be absent. The question then becomes: is the core offering robust enough to justify these omissions? If it's merely a wrapper for basic tunnel creation without leak protection or a kill switch, its utility for serious privacy-conscious users is severely limited. </p> <h3>User Experience (UX) for Developers and End-Users</h3> <p> As a senior web developer, I often think about how such a tool would integrate into a larger ecosystem or be consumed by a non-technical user. If this "simple native VPN app" is meant to be integrated into another application (e.g., a custom browser, a secure communication client), then a well-documented API or SDK would be paramount. The term "app" usually implies a standalone client, but a "native" component could potentially be leveraged by developers. Without an explicit API, its utility for integration is nil, relegating it purely to end-user consumption. </p> <p> For an end-user, simplicity usually translates to a clean UI, minimal pop-ups, and clear connection status. A good native app feels responsive and integrates seamlessly with OS notifications and settings. If it's genuinely simple, the learning curve should be almost flat. Any complex configuration file manipulation, while standard for protocols like OpenVPN, would detract from the "simple" claim unless abstracted away entirely by the UI. </p> <h2>Installation Guide: Getting "VPN App" Up and Running</h2> <p> Given the product's description, I will outline a practical installation and configuration guide assuming a client-side application designed to connect to an existing, external VPN server. I'll hypothesize a typical scenario where the app acts as a client for a WireGuard or OpenVPN server, but abstracts much of the configuration away into a user-friendly interface. </p> <h3>Prerequisites</h3> <ol> <li><strong>Operating System:</strong> Compatible version of Windows, macOS, Linux, Android, or iOS (depending on the native implementation). For this guide, we'll assume a desktop environment (Windows/macOS/Linux).</li> <li><strong>VPN Server Details:</strong> You need access to a VPN server. This includes: <ul> <li>Server IP address or hostname.</li> <li>Port number (e.g., UDP 51820 for WireGuard, UDP 1194 for OpenVPN).</li> <li>Authentication credentials (username/password, or client-side keys/certificates).</li> <li>(Optional, but recommended) A configuration file (e.g., <code>.conf</code> for WireGuard, <code>.ovpn</code> for OpenVPN).</li> </ul> </li> <li><strong>Administrative Rights:</strong> Necessary for installing system-level network components (virtual network adapters, routing rules).</li> <li><strong>Internet Connection:</strong> To download the app and connect to the VPN server.</li> </ol> <h3>Step 1: Downloading the "VPN App" Client</h3> <p> The first step is to obtain the application package. Navigate to the product page on <a href="https://gplapl.com/">gplpal</a> or the designated download source for this specific application. For typical GPL products, you download an archive. </p> <ol> <li><strong>Visit the Download Source:</strong> Go to the official download page (or the product link provided initially).</li> <li><strong>Select Your Platform:</strong> Choose the appropriate version for your operating system (e.g., <code>vpn-app-windows-x64.exe</code>, <code>vpn-app-macos.dmg</code>, <code>vpn-app-linux.deb</code>/<code>.rpm</code>/<code>.AppImage</code>).</li> <li><strong>Download the Installer:</strong> Click the download link and save the file to a known location (e.g., your Downloads folder).</li> </ol> <h3>Step 2: Installing the Application</h3> <p> The installation process will vary slightly by operating system, but generally follows standard native application procedures. </p> <h4>For Windows:</h4> <ol> <li><strong>Run the Installer:</strong> Locate the <code>.exe</code> file you downloaded and double-click it.</li> <li><strong>User Account Control (UAC):</strong> If prompted by UAC, click "Yes" to allow the installer to make changes to your system.</li> <li><strong>Follow On-Screen Prompts:</strong> The installer wizard will guide you. Accept the license agreement (read it if you have concerns, especially regarding data collection), choose an installation directory (the default is usually fine), and proceed with the installation.</li> <li><strong>Install Network Adapters:</strong> The app will likely need to install a virtual network adapter (e.g., TAP for OpenVPN, TUN for WireGuard). Approve any driver installation prompts.</li> <li><strong>Finish:</strong> Once complete, the installer will usually offer to launch the "VPN App".</li> </ol> <h4>For macOS:</h4> <ol> <li><strong>Mount the Disk Image:</strong> Double-click the <code>.dmg</code> file. A new Finder window will open.</li> <li><strong>Drag to Applications:</strong> Drag the "VPN App" icon to your "Applications" folder alias within the mounted disk image.</li> <li><strong>Eject the Disk Image:</strong> Right-click the mounted disk image in Finder or on your desktop and choose "Eject".</li> <li><strong>Launch the App:</strong> Go to your Applications folder and double-click the "VPN App". You might need to approve a security prompt under System Settings > Privacy & Security > General for apps downloaded from unidentified developers.</li> <li><strong>System Extension Approval:</strong> macOS Ventura and later may require explicit approval for network extensions under System Settings > Network > VPN & Filters or Privacy & Security.</li> </ol> <h4>For Linux (Debian/Ubuntu example):</h4> <ol> <li><strong>Open Terminal:</strong> Navigate to the directory where you downloaded the <code>.deb</code> file.</li> <li><strong>Install the Package:</strong> Run <code>sudo dpkg -i vpn-app-linux.deb</code>.</li> <li><strong>Resolve Dependencies (if any):</strong> If <code>dpkg</code> reports missing dependencies, run <code>sudo apt-get install -f</code> to fix them.</li> <li><strong>Launch the App:</strong> Find it in your applications menu or run its command (e.g., <code>vpn-app</code>) from the terminal.</li> <li><strong>Network Permissions:</strong> You may need to grant permissions for the app to manage network interfaces, possibly through Polkit or Sudoers configurations for system-wide VPN control.</li> </ol> <h3>Step 3: Configuring the VPN Connection</h3> <p> This is where the "simple" aspect of the app should shine. Ideally, it provides an intuitive way to input your server details. </p> <ol> <li><strong>Launch "VPN App":</strong> Open the application if it's not already running.</li> <li><strong>Add New Connection Profile:</strong> Look for a button like "Add Profile", "New Connection", or a plus (+) icon.</li> <li><strong>Enter Server Details:</strong> <ul> <li><strong>Profile Name:</strong> Give it a descriptive name (e.g., "My Home Server", "Work VPN").</li> <li><strong>VPN Type/Protocol:</strong> The app might auto-detect or ask you to select (e.g., WireGuard, OpenVPN). If it's truly "simple," it might only support one or automatically configure it based on the input.</li> <li><strong>Server Address:</strong> Enter the IP address or hostname of your VPN server (e.g., <code>vpn.myserver.com</code> or <code>192.168.1.100</code>).</li> <li><strong>Port:</strong> Specify the VPN port (e.g., <code>51820</code> for WireGuard, <code>1194</code> for OpenVPN UDP).</li> <li><strong>Authentication:</strong> <ul> <li><strong>Username/Password:</strong> If your server uses credential-based authentication.</li> <li><strong>Client Key/Certificate:</strong> If it's a key-based system (common for WireGuard). You might need to paste the private key, public key, and server's public key (for WireGuard), or upload <code>.crt</code> and <code>.key</code> files (for OpenVPN).</li> <li><strong>Configuration File Import:</strong> The simplest method. Many VPN apps allow importing a pre-configured <code>.ovpn</code> or <code>.conf</code> file directly, which contains all necessary server and client details. Look for an "Import" or "Load Config" option. This is the ideal "simple" method for initial setup.</li> </ul> </li> </ul> </li> <li><strong>Save Profile:</strong> After entering all details, save the connection profile.</li> </ol> <h3>Step 4: Connecting to the VPN</h3> <p> Once configured, connecting should be a single click. </p> <ol> <li><strong>Select Profile:</strong> In the main interface of "VPN App", select the connection profile you just created.</li> <li><strong>Click Connect:</strong> Locate and click the "Connect" button.</li> <li><strong>Monitor Status:</strong> The app's interface should update to show "Connecting...", then "Connected". It might also display your new public IP address, connection duration, or data transfer statistics.</li> </ol> <h3>Step 5: Verifying the Connection and Basic Tests</h3> <p> It's crucial to confirm your VPN is working correctly and not leaking any information. </p> <ol> <li><strong>IP Address Check:</strong> <ul> <li>Before connecting, open a web browser and go to a site like <code>whatismyipaddress.com</code>. Note your current IP.</li> <li>Connect to the VPN.</li> <li>Refresh the IP address site. Your displayed IP should now be that of your VPN server.</li> </ul> </li> <li><strong>DNS Leak Test:</strong> <ul> <li>Go to a DNS leak test website (e.g., <code>dnsleaktest.com</code> or <code>ipleak.net</code>).</li> <li>Run a standard or extended test. Ideally, only DNS servers operated by your VPN provider (or custom ones you've configured through the VPN) should be visible. If your ISP's DNS servers appear, you have a DNS leak.</li> </ul> </li> <li><strong>WebRTC Leak Test (for browsers):</strong> <ul> <li>Visit <code>ipleak.net</code> and check the WebRTC section. Your local IP address should not be exposed. Note that browser-specific settings might be needed to mitigate WebRTC leaks independently of the VPN.</li> </ul> </li> </ol> <h3>Troubleshooting Common Issues</h3> <ul> <li><strong>"Failed to Connect" / "Connection Timed Out":</strong> <ul> <li>Verify server IP and port number.</li> <li>Check your internet connection.</li> <li>Ensure no firewall (on your client or the server) is blocking the VPN port.</li> <li>Confirm VPN server is running and accessible.</li> <li>Re-check authentication credentials or key files.</li> </ul> </li> <li><strong>Slow Speeds / Disconnections:</strong> <ul> <li>Try a different server location if available.</li> <li>Ensure your local network isn't congested.</li> <li>If using OpenVPN, try switching between UDP and TCP (UDP is generally faster).</li> <li>Disable any conflicting network software (e.g., other VPNs, proxies, antivirus with network filtering).</li> </ul> </li> <li><strong>App Won't Launch / Crashes:</strong> <ul> <li>Ensure all system prerequisites are met (OS version, administrative rights).</li> <li>Try reinstalling the app.</li> <li>Check application logs (if the app provides access) for specific error messages.</li> </ul> </li> <li><strong>DNS Leaks Detected:</strong> <ul> <li>Check if the "VPN App" has a specific setting for DNS leak protection and ensure it's enabled.</li> <li>Confirm your VPN server is configured to push its own DNS servers to clients.</li> </ul> </li> </ul> <h2>Developer Perspective and Integration Potential</h2> <p> As a senior web developer, the "native app" claim for <a href="https://gplpal.com/shop/">Free download WordPress themes</a> often sparks curiosity about underlying architecture and extensibility. If this "VPN App" truly is a native implementation, does it expose any hooks or APIs for other applications to leverage its functionality? A truly valuable native component might offer: <ul> <li><strong>Command-Line Interface (CLI):</strong> For scripting connections, server switching, or status checks. This is invaluable for automation, especially in server environments or CI/CD pipelines where secure tunnels are needed.</li> <li><strong>SDK/API:</strong> A library or module that allows other native applications (desktop or mobile) to integrate VPN functionality directly. Imagine embedding a secure tunnel into a custom enterprise application without having to build the VPN client from scratch.</li> <li><strong>Configuration Management:</strong> Clear documentation on how to programmatically manage connection profiles, import/export settings, or retrieve connection status.</li> </ul> Without such interfaces, the "VPN App" remains purely an end-user tool. While perfectly valid, it misses a significant opportunity to provide value to the developer community by offering a robust, native VPN component. The current description implies a standalone application, and without further details, assuming any direct integration capabilities would be speculative. This limits its appeal for those looking to build secure client applications that need embedded VPN capabilities. </p> <h2>Critique and Final Thoughts</h2> <p> The "VPN App - Simple native VPN app" presents itself with a clear, concise vision: a native, simple VPN experience. The "native" aspect holds promise for performance and tight OS integration, which are crucial for a network-centric application like a VPN. However, the "simple" label raises concerns. </p> <p> If "simple" means a clean UI and minimal setup, while retaining essential security features like robust encryption, DNS leak protection, and ideally a kill switch, then this app has a place. It would appeal to users who simply want to connect to a VPN server without being overwhelmed by technical options, or to developers looking for a straightforward client for their self-hosted VPN services. </p> <p> If "simple" means a stripped-down implementation that omits vital security components—no kill switch, no proper DNS leak protection, or reliance on outdated protocols—then its utility as a privacy tool is severely compromised. A VPN that doesn't adequately protect against leaks or accidental disconnections offers a false sense of security, which is arguably worse than no security at all. </p> <p> The lack of explicit details on supported protocols, encryption standards, and crucially, a logging policy, makes a definitive security assessment impossible without hands-on testing and code review. As a developer, I'd need to see strong evidence that "simple" does not equate to "insecure" or "undeveloped." Documentation outlining the security architecture and chosen cryptographic primitives would significantly bolster confidence. </p> <p> For developers contemplating integrating such a native component or for users needing a robust privacy solution, transparency is paramount. The current offering needs to clarify its technical underpinnings and security assurances. It serves its purpose as a basic client to connect to an existing server, provided that server is itself robustly configured. However, for those demanding enterprise-grade security, advanced features, or an SDK for integration, this "simple native VPN app" likely falls short of expectations. It aims for a niche that values ease of use above all else, and in that niche, it might find its footing, assuming the underlying network security mechanisms are sound. </p>

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password
    or
    Sign in via Google Sign in via Facebook Sign in via X(Twitter) Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    By signing in, you agree to our terms of service.

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully