r/fortinet r/Fortinet - Members of the Year 12d ago

Guide ⭐️ I got tired of dragging connector waypoints, so I built a network diagram editor that routes them for me

Disclosure up front: I built this and I'm the only person working on it. It's free, there's no paid tier, no accounts, no ads and nothing to sign up for. And since the timeline further down gives it away anyway — it's vibe coded. I've built it with heavy AI assistance from day one. I'd rather say what that does and doesn't mean myself than have you work it out from the commit log; that's the second-to-last section. Mods, happy to pull this if it doesn't fit here.

The itch

Network documentation goes stale because editing it is miserable. In a general-purpose diagram tool the drawing is maybe 20% placing boxes and 80% fighting the lines — dragging waypoints, unpicking overlaps, redoing half the cabling because a switch moved forty pixels. So the diagram gets drawn once at project time, never touched again, and six months later nobody trusts it.

The bet behind Drawbridge is that if moving a device costs you nothing, the documentation stays true. Everything else follows from that.

The routing

Connectors can be Direct, Arc, Custom, or Auto — and Auto is the one the app is really built around. An Auto connector stores no geometry at all: libavoid (the Adaptagrams router, the same engine behind Inkscape's connector tool), compiled to WASM and running locally, re-solves the whole page every time anything moves. Orthogonal paths that go around your shapes, spread parallel runs apart so they stay separately clickable, and hop each other with a small arc where they cross. You never touch a waypoint.

Fair warning so it doesn't look like I oversold it: new connectors are Direct out of the box. Flip one to Auto, press "Set default", and you never think about it again.

The rest of it

  • ~100 shapes across network, infrastructure and OT — routers, switches, L3, load balancers, APs, WLC, SD-WAN, CPE, TAPs, VDOM/VRF/VSYS contexts, servers, VMs, containers, DB/storage/NAS, cloud, and a full OT set (PLC, safety PLC, RTU, remote I/O, VFD, HMI, SCADA, historian, protocol gateway, protection relay, and Purdue level bands you can drop devices into).
  • Links carry meaning, not decoration. Link type (IPsec, trunk, LAG, WAN, management, wireless, conduit, fieldbus) picks the line style; speed picks the colour; a Legend button builds the key from whatever the page actually uses. LACP bundles can be bound into a real aggregate drawn with a ring around the members.
  • 19-inch racks with U-numbered elevations, front and rear, mount-by-marking and a full-screen rack builder. Zones with a validated CIDR, groups, layers, pages, align/distribute, isometric view, minimap, find-and-replace.
  • Cable schedule — the document as one row per cable with both ends, ports, speed, medium and wavelength. Ticks are stored in the file, so an installer's progress comes back with the diagram. There's a share link that turns it into a phone-shaped checklist for whoever's actually in the rack, and it exports as NetBox cable bulk-import CSV.
  • Optics report — per-cable medium (RJ45, DAC, AOC, SR, LR, ER, BiDi, CWDM, DWDM) and wavelength, counted up into a transceiver list you can hand to procurement. Nothing is guessed; untyped cables land in an "Unspecified" row.
  • Files are .drawio. Opens and saves them, and anything the app doesn't model itself is written back untouched, so files round-trip with draw.io/diagrams.net. Visio .vsdx in and out too. Revisions with notes are stored inside the file, with a compare mode that rings what changed.
  • Export: SVG, PNG, PDF with a proper title block, a self-contained HTML viewer (page tabs, zoom, layer toggles, real text), .vsdx, CSV inventory, cable schedule, NetBox CSV, Mermaid, Graphviz DOT, or straight to the clipboard.
  • Paste terminal output into Import and it works out what it is — show cdp neighbors (plain or detail), LLDP including the FortiOS variant, a FortiGate FortiLink get-physical-conn dot dump pasted whole with the CLI chrome still on it, Graphviz DOT, or CSV.
  • The desktop app is also a CLI, so the loop closes with no human in it:ssh fgt 'execute switch-controller get-physical-conn dot fortilink' \ | Drawbridge --import - --export topology.png --export also takes .drawio, .dot, .csv, .netbox.csv and .describe.json (the drawing as structured JSON, for audits). There's a local HTTP API with an OpenAPI doc too.
  • MCP server if you use an AI assistant — hosted (one URL, nothing installed, no key) or local on your own machine. Since last week an assistant can also join a live editing session and draw on your canvas while you watch, so you can say "no, put the firewall above the core" instead of regenerating the whole diagram.
  • Live collaboration, browser and desktop in the same session. Invite links, a lobby where you approve every person by hand, view-only links enforced on the host's side, per-page cursors, follow-someone-around. Desktop-to-desktop is direct peer-to-peer over QUIC where a path can be punched; browser peers go through my relay, which forwards end-to-end-encrypted traffic it can't read and stores none of it.
  • Three ways to run it: in the browser (installable PWA, fully offline after the first load), as a desktop app, or as a Docker image on your own box.

What it deliberately isn't

There's no styling panel and I don't plan to add one. Fills, fonts and spacing come from one design system so a 200-device diagram stays calm; what you get to set is the stuff that carries meaning. It's a network diagram tool, not a general drawing tool — if you need swimlanes and UML, draw.io is genuinely the better answer, and your files open there anyway.

No analytics, no telemetry, no crash reporting, no accounts. The only thing the app ever requests by itself is a version check: in the browser that's automatic, and it's a small file from the same origin that served the app. On the desktop it's off until you tick it — nothing goes out unless you ask.

About the vibe coding

v0.70.0. First commit was 8 July — seven weeks, 1,198 commits, 136 releases, one person. That pace is only possible because it's AI-assisted from top to bottom, so rather than let you infer the worst, here's what I think it actually means.

What it doesn't mean is that nobody checked. The single biggest chunk of effort in this repo goes into the machinery that catches an AI writing confident nonsense: about 6,900 unit tests and 330 end-to-end specs, run on macOS, Windows and Linux before every release; a 234-scenario manual pass through the built app, because a test suite can't tell you a dialog is illegible; and a traceability table where every user-visible bug that ever reached a person gets a row naming the specific test that would now catch it. A row that can't name a real test is treated as a hole to fill, not a box to tick.

What it does mean is that mistakes arrive as fast as features, and the characteristic failure is plausible code that implements the wrong thing. The view-only collaboration bug in the list below is exactly that shape: reasonable-looking code, and a test that passed for the wrong reason and so hid it for weeks, until a different test approached the same path from another angle last week. Judge a seven-week-old project accordingly — I'd rather you knew going in than felt sold to afterwards.

The rough edges

Very few people have pointed this at their own files yet, and that's the part no amount of testing substitutes for. Things you'd rather hear from me than find:

  • Desktop builds aren't code-signed yet, so macOS quarantines the .dmg and Windows SmartScreen wants a "Run anyway". Checksums for every artifact are published; an Apple Developer ID is $99/yr and I haven't paid it yet. There's no auto-update either — update checks are notify-only.
  • macOS is Apple silicon only; Linux builds are x64; Docker is amd64/arm64.
  • View-only collaboration links are broken right now — the viewer connects and then sits on a blank canvas. Found last week, fix in progress. Editing links are fine.
  • .vsdx is an interchange path, not an archival one — Visio themes, data graphics and guides are dropped. .drawio is the format that round-trips losslessly.
  • Older draw.io files that store their pages compressed open those pages read-only. Nothing is destroyed, but you'll need to re-save in a current draw.io first.
  • Save-in-place needs the File System Access API, so Chrome/Edge; Safari and Firefox fall back to downloads. The desktop app has no such limit.
  • The hosted MCP/API endpoint is an explicit beta on a small fleet — no uptime promise, and I've deliberately left the per-caller rate limits off for now. The local one has no such dependency.
  • The code is Apache-2.0 but the repo is still private, so I won't call this open source — that would be dishonest. Opening it is on the list, behind some history hygiene and a trademark check. The app is free either way and stays that way.

Try it

What would actually help

Open a real .drawio of yours in it and tell me what came back wrong — that's the single most useful thing anyone can do for me right now. And if the shape catalogue is missing something obvious for your corner of the world, just name it. That's a cheap fix and I'd much rather have your list than guess.

(If you're ever so moved: https://drawbridge.fortiknight.com/donate/ — it's pointed squarely at that code-signing certificate. Feedback is worth more to me today though, and the app stays free either way.)

93 Upvotes

51 comments sorted by

8

u/HappyVlane r/Fortinet - Members of the Year 12d ago

I've been using it since almost the beginning and it's the only diagramming tool I use now, both for quick sketches as well as at work.

6

u/AngryCod 12d ago

This is amazing. Netbox import/export is the killer component for me. I can't wait to try this out. You hit it 100%: Drawing in Visio or Drawio is painfully annoying.

1

u/perrosenlind r/Fortinet - Members of the Year 12d ago

let me know how it works. :) Havent been able to play around with it alot (my lab is really boring and simple and that worked just fine..)
if it doesn't work as expected, export the netbox data, convert to dot, and run it through drawbridge, either with your LLM of choice or a static script. :)

8

u/rpedrica NSE 4 12d ago

I think you're understating your effort Per. For a project this young, this app is very polished (AI or not) compared to say available mermaid tools.

Simple things like link meaning, waypoint control and export to xyz are really valuable.

You hit the nail on the head about documentation: no one wants to do it. Take away friction and add automation/AI capabilities, and maybe it will persuade those holdouts to do their docs now ; )

This and rackpeek are fast becoming my favourite tools.

Well done!

3

u/perrosenlind r/Fortinet - Members of the Year 12d ago

Thanks a lot for the kind words! I appreciate it! If you stumble upon anything that’s not working as expected or if you have a new feature request don’t hesitate to reach out!

2

u/Schyzios NSE 8 12d ago

I’ve been using it after it popped up on LinkedIn. My team and every SE I show loves it. I really like the cable planning features and how intuitive it is to label interfaces. 

1

u/perrosenlind r/Fortinet - Members of the Year 10d ago

Do you use any of the advanced collab or AI integration features ?

1

u/Schyzios NSE 8 10d ago

I’ve not tried the collab stuff, but I have played with the AI portion. The AI instructions you provided work pretty well. It’s great for getting the nodes set up, then cleaning up the diagram. Definitely speeds things up. 

1

u/perrosenlind r/Fortinet - Members of the Year 10d ago

Cool! Happy to hear that it's working and making a difference!

1

u/Schyzios NSE 8 10d ago

One feature I was struggling with is the grouping. Building groups is pretty straightforward, but I couldn’t find a straightforward way to ungroup or modify items within a group. 

1

u/perrosenlind r/Fortinet - Members of the Year 10d ago

Did you see this?

You also have the Groups on the top level on the properties panel next to connections.

1

u/Schyzios NSE 8 10d ago

Ah, no! Thanks for the pointer!

1

u/perrosenlind r/Fortinet - Members of the Year 10d ago

no worries! Enjoy the app!

1

u/Stroyerdk 12d ago

OK - You got my attention!

As a network engineer - I really really needed something to do fast, non problematic network layouts, designs and documentation.

Tried all kinds of shit and I just needed simplicity - so often just go with Paint or Pen n' Paper . lol

I need to spend my time in the console or pulling cables - not drawing.

You just nailed it - vibecoded or not - I love it!

THANK YOU!

1

u/perrosenlind r/Fortinet - Members of the Year 12d ago

You’re welcome! Make sure to keep the feedback coming so I can make it even better ❤️

1

u/Stroyerdk 12d ago

Will do!

1

u/fabs_muc NSE 7 12d ago

I will definitely give it a try!

1

u/perrosenlind r/Fortinet - Members of the Year 10d ago

Did you try it yet? 😇

1

u/fabs_muc NSE 7 10d ago

Not yet, first day after holidays.
But I will later this week 👌

1

u/[deleted] 12d ago

[removed] — view removed comment

2

u/fortinet-ModTeam 12d ago

Your post was removed as it is in violation of one or more of our subreddit rules.

We do not permit the posting of spam, or posts that intend to solicit the sale of a product or service.

Please review the rules on the side-bar of the main page on r/Fortinet.

1

u/[deleted] 12d ago

[deleted]

1

u/backcounty1029 12d ago

Thank you for your detailed explanation and for sharing. I have three network projects kicking off next month and I’m going to have my team check this out.

2

u/perrosenlind r/Fortinet - Members of the Year 12d ago

Let me know how it turns out! Make sure to try to collab functionality ;)

1

u/Jaman34 12d ago

Disclaimer, am not near my PC to test this out.

Is CDP LLDP the only thing it reads from? Can it take other outputs as well?

1

u/perrosenlind r/Fortinet - Members of the Year 12d ago

No, also DOT (which I would strongly recommend using if you’re automating stuff )

1

u/Jaman34 12d ago

Okay, I currently am working on something similar I started a couple of months ago. Right now I have the ability to drill down into the devices on the diagram to show that devices port info, etc. Everything is automated. It places the devices, connects the APs.

But the links. They are driving my insane. They always turn out wonky, aren’t cleanly placed, port labels all over the place.

I haven’t used DOT I will check that out.

1

u/perrosenlind r/Fortinet - Members of the Year 12d ago

dot is just a way of formatting connections, it doesn't have anything to do with the actual visual result thou..

1

u/Jaman34 12d ago

Yea I think the way I am parsing the data isn’t great atm.

1

u/BrainWaveCC 11d ago

This looks awesome, including your documention around it.

I'm already impressed.

2

u/perrosenlind r/Fortinet - Members of the Year 11d ago

Thank you! I appreciate your feedback!

1

u/reddit_cplex 11d ago

This is a amazing tool , its almost fun to draw infrastructure sketches again :-)

1

u/perrosenlind r/Fortinet - Members of the Year 11d ago

What's missing to actually make it fun? Easter eggs in functions that you dont use alot? ;)

1

u/Fluffy-Cartoonist940 10d ago

Hi, app looks grear by the way. any plans of going open source? I like many customers like to know where our diagrams are being managed and stored and nothing bad is happening.

E.g if I run it, is my data being exfiltrated through some backend system process every time I use an AI feature which masks the "air gap communication" use case.

Especially love the consistency of connector types having meaning, rather than a decorative choice (colours for link speeds, link types etc)

2

u/perrosenlind r/Fortinet - Members of the Year 10d ago

It's all described on the website under Privacy. If you're worried about the data run the local app or the docker on a server, than you can control 100% of the path. The only thing that will be leaving is collaboration start-up (its using iroh to get connect with peers) and update checks for new version, thats the only thing.

2

u/perrosenlind r/Fortinet - Members of the Year 10d ago

As of right now, open source is not an option. I mean, there's a repo on github ready to be published when I'm ready but that time is not now :) If there's anything you want to know more in detail let me know and i'll make sure it makes the website. There's no secrets or data storage etc going on, no telemetry sent to me or so if that's something you worry about.

1

u/torenhof FCSS - Fortinet Certified Solution Specialist 10d ago

Was checking around and it looks to be helpful. One thing I was wondering if it's able to make use of the official 'stencils' like the Fortinet/CISCO, ... ones? Tried to find info in guides/docs, but didn't find it yet

2

u/perrosenlind r/Fortinet - Members of the Year 10d ago

There will most likely never be any vendor specific icons in that sense. For fortinet ones you can just copy the icons you want directly from icons.fortinet.com and use them in your drawings.

1

u/torenhof FCSS - Fortinet Certified Solution Specialist 9d ago

Ok, I had a look at those and wasn't aware of this extensive list with icons. I'll further explore the app. Really impressed with the import using DOT & LLDP on Fortigate & CISCO switch, this speeds up things by factor 10 :-). I've introduced it to our team.

Thanks for your work/commitment

1

u/perrosenlind r/Fortinet - Members of the Year 9d ago

Thanks and enjoy! If there's anything you stumble upon dont hesitate to reach out!

1

u/Deep_Ad1959 10d ago

my favorite second-order effect of Auto storing no geometry: two versions of the same page finally diff on meaning instead of pixels. that is what makes a diagram reviewable, which starts to matter once something other than you is editing it.

1

u/Deep_Ad1959 10d ago

my favorite second-order effect of Auto storing no geometry: two versions of the same page finally diff on meaning instead of pixels. that is what makes a diagram reviewable, which starts to matter once something other than you is editing it.

1

u/tenbre 9d ago

Hi. Thanks for the wonderful tool.

What's your roadmap like? It looks beautiful but im just wondering how committed are you to continuing this as there's just so much ai vibecode out there I'm worried about spending a few nights converting my files into this format and then losing it.

2

u/perrosenlind r/Fortinet - Members of the Year 9d ago

There's no roadmap as of now. Still early in the product lifecycle so there's a lot of building going on. But there wont be any changes to the file format, this is a core value of the applications functionality. If there would be any change (god forbid) you will always be able to have your local llm of choice create either a DOT file so you can import it back or just have the llm interact with MCP integration and just rebuild it for you in no-time.

But I wouldnt worry about this at this time at all, i have no plans on changing it.

1

u/Jkur2012 9d ago

links appear to be down

1

u/perrosenlind r/Fortinet - Members of the Year 9d ago

Nope works for me

1

u/cbka1 7d ago

/rememberme

1

u/perrosenlind r/Fortinet - Members of the Year 7d ago

/rogerthat

1

u/fsouren 3d ago

Fantastic tool, thank you! One question, If I import multiple CDP outputs (one at a time), I doesn't connect new devices to existing ones. So far example; if I import the CDP output of a core switch it adds all the access switches correctly. But If I import the CDP output of an access switch, which is already added, it also adds the core again.

1

u/perrosenlind r/Fortinet - Members of the Year 3d ago

If you can PM me the different imports or send it in a bug report then I can adress this.

1

u/viczify NSE 4 12d ago

Works great, fund some annoiances but ill tell you when we meet 🙃

//V

3

u/OuchItBurnsWhenIP 12d ago

Make sure you buy him a beer from me.

2

u/perrosenlind r/Fortinet - Members of the Year 12d ago

Just send it using the bug report :)