# Meshflare

> Cloudflare Zero Trust mesh and tunnel manager

- **Year**: 2025
- **Links**: [GitHub](https://github.com/bgwastu/meshflare), [Live Demo](https://meshflare-demo.wastu.workers.dev)

## Problem
I used to be the number one fan of Tailscale. It just worked, and having all my devices in a single mesh network was a lifesaver, especially back when I was still learning to manage my own servers (and messing things up constantly).

The problem is, on mobile, you only get one active VPN slot.

Here in Indonesia, that's a big deal. Local ISPs have notoriously bad peering with overseas services, and they block websites I visit every day, like Reddit. An always-on VPN wasn't optional for me; I had to run Cloudflare WARP for my everyday connection, which meant Tailscale had to go.

Over time, I moved my self-hosted stuff behind Cloudflare Tunnels and Access. Tailscale became this thing I only turned on once in a blue moon when I needed to SSH into an instance.

When Cloudflare launched WARP-to-WARP routing, it felt like the answer. But using it wasn't anything like Tailscale:

- You had to open the Cloudflare dashboard just to find a device's IP.
- No ✨ magic dns ✨.
- Cloudflare loves redesigning their dashboard, so every few months you're hunting for where settings moved.
- The split tunnel defaulted to exclude mode, which managed to lock me out of my own server more times than I'd like to admit lol.

## Solution
At first, I just hacked together a script that created magic DNS records automatically whenever a device showed up. That script quietly ran for about a year.

Eventually, I got tired of the Cloudflare dashboard stripping away the joy every time I needed to change a simple setting. So I built Meshflare to do what I actually wanted:

- See all my devices and their status in one clean view
- Set custom "magic dns" (`.mesh`) automatically whenever a new device connects
- Manage tunnels without getting lost in nested menus
- Block ads network-wide via DNS blocklists (basically Pi-hole inside Zero Trust)

## Tech stack

Runs serverless on Cloudflare Workers + D1, or self-hosted with Bun and SQLite. Built with React and TanStack Query.
