Invisible VPN

Tech Stack

What I Worked On
-
Developed the Flutter mobile application for Android and iOS, focusing on a simple and intuitive VPN connection experience.
-
Developed the NestJS backend responsible for authentication, VPN management, server communication, and API services consumed by the mobile application.
-
Integrated WireGuard as the underlying VPN technology to establish secure and encrypted network connections.
-
Implemented VPN server management, allowing the application to communicate with the backend and obtain the required configuration for connecting to available VPN servers.
-
Implemented VPN connection management, including connecting, disconnecting, and monitoring the current VPN connection state.
-
Built real-time connection status handling so users can clearly see whether the VPN is connected, disconnected, or in the process of connecting.
-
Implemented server selection functionality, allowing users to select available VPN servers based on the backend-provided server information.
-
Designed and implemented the communication between the Flutter application, NestJS backend, and WireGuard VPN infrastructure.
-
Implemented REST APIs in NestJS for authentication, VPN operations, server management, and mobile application communication.
-
Worked with PostgreSQL and Prisma ORM for backend data management and persistent application data.
-
Implemented backend authentication and security mechanisms to protect user accounts and VPN-related API operations.
-
Worked with Docker and server infrastructure to deploy and manage backend and VPN-related services.
-
Configured and managed WireGuard networking, including VPN interfaces, private networking, client configurations, and IP address allocation.
-
Worked with Linux networking and VPN infrastructure, including routing and network configuration required for VPN traffic.
-
Implemented proper state management and API integration in Flutter to synchronize mobile application state with the backend.
-
Optimized the mobile application for a smooth cross-platform VPN experience, including connection states, loading states, error handling, and responsive UI.
System Architecture
The overall system follows a client-server VPN architecture:
Flutter Mobile App → NestJS Backend → WireGuard VPN Server → Internet
The Flutter application communicates with the NestJS backend through REST APIs. The backend manages users, VPN servers, configurations, and VPN-related operations, while WireGuard handles the encrypted VPN tunnel and network traffic.
Key Features
- Secure VPN connections
- WireGuard-based VPN infrastructure
- Flutter mobile application
- NestJS backend
- VPN server selection
- Connect / disconnect functionality
- Real-time VPN connection status
- User authentication
- REST API integration
- PostgreSQL database
- Prisma ORM
- Secure VPN configuration management
- Linux networking and server management
- Docker-based backend deployment
- Cross-platform mobile experience
Technologies Used
- Flutter
- Dart
- NestJS
- Node.js
- TypeScript
- WireGuard
- PostgreSQL
- Prisma ORM
- REST APIs
- Docker
- Linux
- VPN Networking
- Authentication & Security