An introductory essay on a 1.9-mile civic stack — two organizations that started in the same year, on different continents, looking at the same kind of gap and deciding it wasn't too high a hill to climb — and an invitation to the New Yorkers who want to build with it.
Matt Keough2026-05-23~4,500 words / 18 min read
The line. Looking east from the apartment in New Jersey. The Nano Wave dish is bolted to the brick at the left edge of the frame; the red arrow on the right points at the NYC Mesh supernode 1.9 miles away on 97th Street, near the western edge of Central Park. The park itself is hidden behind the towers.
IA line across the Hudson
One red dot in New Jersey. The NYC Mesh live map at map.nycmesh.net as of 2026-05-20: 2,820 total nodes, of which 82 are public access points, 2,656 are household / non-hub nodes, 74 are hubs, and 5 are supernodes. The lone red node on the New Jersey side of the Hudson is the apartment at the other end of the link in the hero photo — running the CodeNOW cluster on behalf of, and with the support of, CodeNOW. (Keep scrolling — the next section walks the link end-to-end.)
From the right window in my New Jersey apartment, on the right kind of clear day, the entire Upper West Side skyline lays out across the Hudson — a long, low row of pre-war residential towers and a few newer glass infills, the river in the foreground, a working pier or two below. You wouldn't know Central Park was there. The park is hidden behind that wall of buildings. But on the NYC Mesh map, the dot I am connected to sits right against the western edge of the park, on a NYC Mesh supernode near 97th Street. From here, that building is one of the barely-visible silhouettes on the right side of the skyline — small enough that you wouldn't pick it out unless you already knew exactly which one to look for.
I do, now. There is a small red arrow on the photo above pointing at it. There ↑
Mounted just outside the window is a Ubiquiti UISP Nano Wave wireless bridge. It is small, white, and unremarkable — about the size of a paperback book — pointed across 1.9 miles of open Hudson at that building, where one of NYC Mesh's supernodes lives. The two radios can see each other. That is the entire requirement. No trench, no franchise application, no truck roll, no install window — just a line of sight and an antenna at each end of it.
The link runs at roughly a gigabit, symmetric, up and down. That is not theoretical throughput from a data sheet. That is the working capacity of the thing my laptop is using right now. It was installed by volunteers, costs nothing per byte, and connects me to a network owned in common by the people who built it.
If you zoom into the New York metro on that map, you will see one red dot in New Jersey. That dot is my apartment. Behind it is a stack of equipment most New Yorkers will never see and few would believe — a stack that I think tells a useful story about what civic infrastructure can look like in 2026.
This is that story.
The transform. From the apartment window across the Hudson, to the 1.9-mile 60 GHz link drawn on the satellite, to the NYC Mesh network the link belongs to. One frame, three scales.
IIVolunteers, on time, with paperwork
The office. Every NYC Mesh install starts with a rooftop like this — gravel, a parapet, a bulkhead, a sightline to a neighbor.
NYC Mesh is not "mesh wifi." It is a community-owned wireless ISP operating in New York City since 2014, almost entirely volunteer-run, connected to the rest of the internet by direct peering at internet exchange points rather than by buying transit from a commercial carrier. The shape of the network, in numbers:
2,820
Total nodes on the network
82
Public access points
74
Active hubs
5
Supernodes (IXP-peered)
What the gear looks like up close. A directional sector antenna (vertical), a Ubiquiti dish, and a weatherproof routing enclosure on one mast. Multiply by several thousand and you have the network.
Three tiers: supernodes at internet exchanges, hubs on neighborhood rooftops, household dishes pointed at whichever hub or supernode has line of sight. Hardware is mostly Ubiquiti and MikroTik. Routing is BGP on the backbone, OSPF/WDS in the hub mesh. The 501(c)(3) operates on donations; executive compensation has been $0 every year, board included.
What surprised me most isn't on the wiki. It's how a 100% volunteer organization runs with the consistency and fluidity of a small but unusually well-managed company.
Every Tuesday at 7 p.m., Open Mesh Night happens at 53 Bridge Street, Unit 509, in Brooklyn. The fourth Tuesday of the month is the formal Org meetup — presentations, breakouts, decisions. The other Tuesdays are informal: tinkering, lab work, hands-on troubleshooting, whoever shows up. Installs happen when they happen, not on a schedule.
The Slack — slack.nycmesh.net — is the source of truth. #installs for planning, #install-team for the private logistics that involve members' addresses, #monitoring wired to Icinga and Nagios, #neighborhoods for outreach, #docs for the wiki, #mesh-services for everything that runs on top of the network (which is the channel I asked to be added to when I started talking about CodeNOW). New volunteers come in through #new-volunteer-onboarding and shadow an install or two before they're trusted to lead one.
There is exactly one named operational role — install leader — defined functionally as "someone who can complete a rooftop install on their own." Everything else is non-hierarchical, lazy-consensus, decided in Slack and at the Tuesday meetup. The 501(c)(3) board exists for fiduciary decisions only. Brian Hall, who has been doing this since the project's first antenna in 2014, is still on the board. So are Zachary Giles, Marg Suarez, Matthew Boyd, and Robert Johnson — all volunteers, all uncompensated, all there week after week.
But the cadence isn't really the thing. What carries it is the character of the people doing the work.
A wave from the ladder. An install volunteer on the bulkhead cage of a NYC Mesh hub site. The dish above his head is one end of somebody's gigabit link.
They are, almost universally, genuinely curious. New Jersey isn't really NYC Mesh's geography, and a 1.9-mile cross-Hudson link isn't a standard install pattern. Nobody pushed back. The default response was a working-through of whether it could be done — what hardware, what line of sight, what landlord. That ordering — curiosity before logistics — is rare even in paid organizations, and it is the single biggest reason the network keeps growing into corners it wasn't designed to reach.
Mid-install, somewhere above 8th Avenue. Drill on the hip, ladder against a rusting service shaft, working on the radio mount. This is what the BGP-and-OSPF talk in Slack turns into on the ground.
They are also, almost universally, technically deep. The Slack reads like a small ISP's NOC channel — BGP communities, OSPF area sizing, antenna alignment math, RF survey screenshots, MikroTik routerOS quirks, peering policy at DE-CIX, monitoring stack tuning. There are people in those channels who could be running networks at a hyperscaler and in some cases already do, in their day jobs. They show up anyway. You cannot fake the level of capability that's casually on display when somebody walks a new volunteer through a sector-antenna alignment over text in real time, on a weeknight, for free.
Install complete. Two volunteers on the roof after a working node goes live. The bulkhead behind them, with the small antennas on its corners, is the visible artifact. The seat at the digital table is the actual product.
And underneath both — the curiosity and the capability — is the thing that took me the longest to name. They care. Not in the way an HR poster cares. In the specific, operational way of people who have decided, individually and collectively, that a working internet connection is the kind of thing every New Yorker should be able to get, and that if a household can't get there through the commercial path, they should be able to get there through the community one. The donate page literally says: if you can't afford a donation, email [email protected] and we'll connect you anyway. That is not a marketing line. It is the actual policy. Asylum-seeker shelters got Wi-Fi in 2023 because volunteers showed up with radios. NYCHA buildings in the city's contract program got installs because volunteers climbed the roofs. The 303 Vernon Avenue project happened because somebody on this network thought that public-housing tenants deserved the same broadband quality as everybody else, and then they went and built it.
If you needed a single sentence for what NYC Mesh is, it would be this: a few hundred unusually curious and unusually capable people in New York have decided to pour their talent and energy into making sure that anyone in the city who wants a seat at the digital table gets one. The network is the visible artifact. The seat is the actual product.
The bulkhead. Most NYC Mesh hubs live on a structure like this one.The install. Tools on the ground, ladder against the steel, hands on the cabling.Another mast, another neighborhood. Multiply this by 74 hubs.
IIIBorn the same year, around the same instinct
Here is the part of the story I did not see until I sat down to write this essay.
The first NYC Mesh antenna went up in 2014. That same year, on a different continent, a different group of engineers was looking at a structurally similar gap and arriving at a structurally similar answer. NYC Mesh's founders saw that for some New Yorkers — households the commercial ISPs underserved or didn't reach at all, neighborhoods where the upgrade cycle never quite arrived, organizations that wanted a connectivity layer they could operate themselves — there was room for a community-owned network running in parallel to the commercial one. Not as a replacement: the commercial ISPs do real work and serve millions of customers who need exactly the SLAs and the geographic reach they provide. As a complement: a second path, owned and operated by the people on it, for the cases the first path can't or won't take.
CodeNOW's founder, Petr Svoboda, saw a structurally similar gap on the compute side. The public-cloud hyperscalers — AWS, Azure, Google Cloud — were (and are) the right answer for an enormous range of tenants: organizations that need 99.99% availability with a phone number to call when it breaks, organizations that cannot or should not make a capital investment in their own hardware, organizations that need to spin a workload up in Singapore on Tuesday and tear it down on Thursday, organizations whose engineering staff is small enough that "we run our own substrate" is not a sentence that ends well. For those tenants, the hyperscalers are doing exactly what they were built to do, and CodeNOW has good working relationships with all three. They are partners, not adversaries.
What Svoboda saw in 2014 was a different cohort: regulated organizations whose software-delivery posture was about to come under formal audit pressure, where the procurement model didn't fit the cloud-native consumption pattern, where the governance defaults of the public clouds were designed for the cloud's operational model rather than the tenant's compliance model, and where the team would benefit from a way of working that produced audit-clean artifacts as a side effect of normal development. He built CodeNOW in 2014 on the bet that this cohort deserved a purpose-built layer of opinion on top of whatever substrate they were already using — hyperscaler, private cloud, on-prem, or any mix of those — that made the regulated end of software delivery a first-class experience rather than a bolt-on.
Two organizations born the same year, on different continents, looking at the same kind of gap and deciding it wasn't too high a hill to climb. Both saw that the tools to fill it — open-source primitives, off-the-shelf radios, a clear governance posture — were already on the workbench. They picked them up.
The response was the same on both sides. Pool open-source primitives. Build the layer of opinion on top of them. Hand the result to the people who need it. NYC Mesh did it with Ubiquiti and MikroTik radios, BGP at the supernodes, OSPF in the hub mesh, and a 501(c)(3) board running on lazy consensus. CodeNOW did it with about fifty open-source projects — Kubernetes, Tekton, ArgoCD, Istio, HashiCorp Vault, GitLab, SonarQube, Nexus, Prometheus, Grafana, Loki, Jaeger, Kiali — opinionatedly assembled into a single, audit-first developer experience that EU banks and Deutsche Post DHL now ship production on. Crucially, CodeNOW does not require a tenant to abandon what they already use: the platform integrates with any existing SDLC toolchain — commercial, open-source, or custom-built — and treats the tenant's existing investments as inputs rather than obstacles.
Twelve years on from those parallel 2014 decisions, NYC Mesh has 2,820 nodes across the five boroughs, peering at the city's internet exchanges, and zero salaries. CodeNOW has an ISO/IEC 27001:2022 certification, alignment with the EU's CRA and DORA frameworks, multinational regulated tenants, and a platform that runs on AWS, Azure, Google Cloud, DigitalOcean, a private cloud, or a closet in New Jersey without the user experience changing. One organization built a second connectivity path for the cases the first path doesn't cover. The other built a governance-and-developer-experience layer that works on top of whatever compute the tenant chooses. Both used open-source primitives, off-the-shelf parts, and a clear opinion about how those parts should fit together.
I did not engineer this collision. I work for one of those organizations and live behind the other one's antenna. The point of this essay is that the collision is not accidental — it is what happens when two parallel projects, started in the same year against the same kind of structural problem, eventually point at the same city.
IVThe view from the rack
Lot #7484-39101. Fourteen Dell PowerEdge R730 servers, no hard drives, University of Iowa Surplus, 43 bids, final hammer $1,518.75 — about $108 a server. The previous owner had wiped them and put them on a pallet.
About 14 feet from where I am writing this, four Dell PowerEdge R730 servers are humming inside a half-rack — four of the fourteen from that auction lot above. Spec-wise, half the lot is genuinely heavy iron: four units carry dual Xeons totaling 64 threads apiece, another four are 58-thread machines, the rest lighter but still enterprise-class. They had been wiped and decommissioned for a workload I will never know about, and they were 100% functional. Servers depreciate fast; usefulness does not. Four now run the production cluster; the other ten are hot spares, lab boxes, and parts donors.
Those four R730s now form a Kubernetes cluster that runs the CodeNOW platform. CodeNOW is the product my employer makes. It is also, for what I am about to describe, the application layer of a civic stack whose connectivity layer is NYC Mesh.
If you have not heard of CodeNOW, here is the short version. It is a governed execution platform for software delivery — a system that lets engineering teams ship applications inside the regulatory envelopes that banks, postal services, and other heavily-audited organizations need to operate within. Every action is auditable. Every action is stoppable. Every action is structurally controlled. In the last couple of years, CodeNOW has brought on large EU banks and DHL.
CodeNOW, running on a closet in New Jersey. Two components — redis and website — with their build histories, package versions, related environments (public-dev, public-prod), and deployment status. The same UI that EU banks see, on four reclaimed Dell servers.
What is more interesting than the customer list is the posture of the platform. Most enterprise tooling forces a choice — fast and pleasant for developers, or locked down for the auditors, rarely both. CodeNOW's working thesis is that the trade-off is artificial: the same primitives that make regulators comfortable — versioned packages, declaratively reproducible environments, a complete build / release / deploy history per component — are also the primitives that make developers fast.
On the screen as I write this, that same UI is running on my own cluster. Creating a new component takes minutes. Promoting a package between environments takes a click. The work the auditor would care about happens automatically, in the background, because it is the same work the developer is doing on the way to shipping. The compliance is a side effect of the workflow, not a tax on it.
That last sentence is the entire pitch. It is also why CodeNOW on four reclaimed R730s in New Jersey, connected to the public internet over a wireless link to a volunteer-owned NYC Mesh supernode at 97th Street, is a genuinely useful idea.
VThe bridge
The link, measured. The Wave radio's own diagnostic: 60 GHz primary, 5 GHz backup, transmit at −48 dBm (Strong), receive at −46 dBm (Strong). Across 1.9 miles of open Hudson, both ends agree the signal is clean.
Here is what the stack actually looks like, end to end, today:
A web request leaves a browser in Brooklyn, hits public internet routing, arrives at the NYC Mesh edge at the Sabey data center on 375 Pearl Street.
NYC Mesh routes it through its BGP fabric to the supernode at 97th Street in Manhattan.
That supernode fires the request across the Hudson at 60 GHz into the Nano Wave dish bolted to my window frame in New Jersey — both ends "Strong" (the diagnostic above), with a 5 GHz backup channel that quietly takes over if rain or fog ever defeats the 60 GHz primary.
The Nano Wave hands the packet to a UniFi switch inside the apartment, which hands it to a top-of-rack switch in the closet.
The top-of-rack switch hands it to the Kubernetes ingress on the R730 cluster.
CodeNOW routes it to the right environment, the right package, the right component, the right replica of a containerized application that some developer in NYC pushed to a git branch and promoted with a click.
A response comes back along the same path.
The point of describing the path step by step is to make clear how unusual this particular configuration is. Every link in this chain happens to be either community-owned (NYC Mesh), surplus-recovered (the R730s), or built by a company whose entire premise is taking the rails that banks need and exposing them to whoever can SSH into a cluster. No hyperscaler in this loop; no commercial ISP in this loop; no procurement officer in this loop — not because any of those would have been wrong choices for a different tenant, but because the experiment is specifically about how far you can get without them when you don't need what they're best at. The developer experience on this stack is the same one CodeNOW ships to its enterprise tenants — same audit trail, same deployment flow, same UI — and if the workload outgrows the closet, the same package lifts cleanly onto AWS, Azure, GCP, or anywhere else.
That is what it means to "bring an enterprise experience to anyone who wants to build." The phrase tends to die on contact with hosting bills. With this stack, the hosting bill is a monthly donation to NYC Mesh and the electricity to run four servers in a closet.
VICodeNOW NYC — what the rack is hosting
CodeNOW NYC, the first civic application on the stack. Live at codenow.nyc. Four transparent phases — Ideation, Planning, Governance, Handoff — applied to every nonprofit or agency project that comes in the door.
Stacks are interesting; what they host is more interesting. The first application running on the CodeNOW × NYC Mesh instance is a civic software program called CodeNOW NYC, live at codenow.nyc.
The premise is simple. A lot of New York organizations — nonprofits, agencies, mutual-aid groups, neighborhood coalitions — have ideas for software that would make their work materially easier. Intake systems. Donor portals. Case-tracking tools. Volunteer schedulers. Most of them cannot afford to hire an engineering team to build it. Most of them also cannot afford the recurring SaaS bills for the off-the-shelf alternatives, assuming an off-the-shelf alternative exists for what they actually need.
CodeNOW NYC connects those organizations with volunteer developers, runs every project through the same four transparent phases — Ideation, Planning, Governance, Handoff, the product spine of The Starting Line — and ships the result as production-ready software that the organization owns at the end. Code, repository, training materials, support plan. Not a demo. Not a pilot. A piece of software the organization keeps.
Same platform, different audience. The CodeNOW NYC about page is explicit about the link to the enterprise product. The audit rails that a bank's compliance team requires are the same audit rails that protect a five-person nonprofit from shipping a regrettable change.
The platform behind it is the same CodeNOW that EU banks use — same audit rails, same stoppability, same controls. A five-person nonprofit shipping a case-management app gets the safety net a multinational bank's engineering team gets, because both run on the same platform.
If you are a New York City nonprofit or agency with a problem you wish you had software for, you can describe it at codenow.nyc and it costs nothing. If you are a developer in New York and you want a piece of work that materially helps somebody and goes on your portfolio, the same page has a path. If you are a "vibe coder" who wants to ship a fast civic prototype with real rails underneath, also that page. The four phases work for all three.
VIIWhy both organizations get the credit
Two organizations deserve credit, for different things. The connectivity layer is the visible miracle; the compute layer is the load-bearing one. I want to be careful that the dish on the window does not eat all of the attention here, because without the rails on the other side of it, the line is just a pretty radio link.
NYC Mesh deserves credit for proving that a complex, technically-demanding piece of urban infrastructure can be run by volunteers, on their own time, on donations, for twelve years and counting. They built the connectivity layer that the rest of this stack rides on. Without the supernode at 97th Street, the Nano Wave on my window has nothing to point at. Without the volunteers who maintain its peering and its rooftop sectors, that supernode doesn't exist. Without the volunteers showing up every week to do installs and answer Slack pings and crimp Cat6 in the rain, none of it works for more than a season. They have given New York City a working second option for getting on the internet, and they have done it without taking a salary.
CodeNOW deserves credit for almost everything else.
Start with the bet itself. In 2014, before Kubernetes was production-stable anywhere, before "platform engineering" was a job title, before DORA and the CRA forced European banks to take software provenance seriously — Petr Svoboda and a small founding team decided to build a governed execution platform for the regulated end of software delivery. That is not a bet that pays off on the timescale of a venture cycle. It is a bet that pays off on the timescale of a generation of compliance regimes catching up with the way modern software is actually built. Twelve years later, that bet is paying — EU banks ship production on CodeNOW, Deutsche Post DHL ships production on CodeNOW, regulated tenants across the continent run their SDLC on CodeNOW — and the platform is doing what its founders thought it should do back when the entire premise was unfashionable.
Then look at the technical posture. CodeNOW is one of a very small number of platforms in the regulated-enterprise tier where the developer experience and the compliance experience point in the same direction — where, as the rack section described, the audit posture falls out of the developer's normal workflow rather than living in a separate workstream. That isn't aspirational: it is what comes out of running the same platform against an EU retail bank and four reclaimed servers in a New Jersey closet, and finding both tenants well-served — same UX, same audit defaults, same component model.
Then look at the structural choice. CodeNOW does not try to be a cloud. It tries to be the layer of opinion on top of any cloud. The platform bundles those ~fifty open-source projects into a coherent UX that abstracts the assembly without hiding the substrate. Every part is OSS. Every part can be inspected. Nothing in the stack is a black box you cannot exit. That is a deliberate design decision, and it is the same decision NYC Mesh made about the radios on the rooftops: use parts that anybody can buy, opinionate the way they are connected, give away the opinionation as the product.
Then look at what this specific experiment costs. The CodeNOW platform on the rack in my closet is not a hobbyist edition. It is the same platform DHL ships on. Standing it up, supporting it, indulging the experiment of pointing a regulated-enterprise platform at a community-ISP problem — none of that is free for CodeNOW to underwrite, and CodeNOW is underwriting it anyway. This civic experiment exists because CodeNOW is sponsoring it. The licenses, the support, the willingness to treat a single administrator on four refurbished R730s as a real tenant rather than a curiosity, and the institutional patience to let CodeNOW NYC find its shape on the platform's actual production rails — all of that is CodeNOW's contribution. Without it there is no rack, no civic program, no demonstration that any of this is possible.
NYC Mesh is the ISP — a volunteer-owned, IXP-peered, 2,820-node community network that has been delivering production internet in New York since 2014. CodeNOW is the governed compute layer on top, equally at home on AWS, Azure, GCP, on-prem, or in this case a closet in New Jersey. Stacked, they give a New Yorker a complete, audit-clean path from radio link to running application — and they do it alongside the commercial options, not against them.
Stacked, the two together produce something neither delivers alone. NYC Mesh gives a New Yorker a second, community-owned path onto the internet — one that complements the commercial ISPs rather than competing with what they do well. CodeNOW gives an organization a governed, audit-clean, production-grade software-delivery experience that can run on a hyperscaler, an on-prem cluster, or anything in between, and that integrates with whatever SDLC tooling — commercial, OSS, or custom — the tenant already has in place. Put the two layers next to each other in this configuration and you have a fully community-and-tenant-owned vertical slice of the same stack the platform serves at multinational scale. The civic part is that the slice works equally well for a five-person mutual-aid group as it does for a regulated bank — and CodeNOW agreed to underwrite the New Jersey end of it when they said yes to this experiment.
VIIIThe civic case, plainly
The infrastructure people in this city need — connectivity, compute, software — is, for most users, well served by a handful of very large companies. Those companies do real work; they staff data centers around the world, deliver four-nines SLAs, take the capital risk of buying the hardware so their tenants don't have to, and absorb the operational burden of running it so small engineering teams can stay small. For an enormous number of organizations that is exactly the right shape of relationship. Where the shape fits the need, those organizations should keep using it. What's missing is a complement — a second path for the cases that don't fit: the five-person mutual-aid group whose budget can't carry a minimum committed spend, the neighborhood library branch whose procurement cycle is slower than the renewal clock, the volunteer-built tool that needs to ship now and grow into a paid plan later. That complement is the civic case.
NYC Mesh has shown, over eleven years, that the connectivity layer of that problem is solvable by New Yorkers, on rooftops, with radios and weekends. The thesis behind CodeNOW NYC is that the application layer is solvable the same way — by New Yorkers, on commodity hardware, with the same kind of governance discipline that banks require, exposed to the same kind of volunteer energy that puts a LiteBeam on a Park Slope rooftop.
That thesis is, for now, one apartment in New Jersey and four servers and a Nano Wave and one civic web app at codenow.nyc. It is a small proof. It is a working proof.
IXHow to join
If you are reading this and you fit one of the four categories on the CodeNOW NYC site — a NYC nonprofit, a city agency, a volunteer developer, or a builder who just wants to ship — start there: codenow.nyc.
If you are reading this and you want to understand how the connectivity layer works, start with NYC Mesh's join form, or show up at Open Mesh Night on a Tuesday at 7 p.m. on Bridge Street. Either path will put you in front of the people who built the network you are about to be on.
If you are reading this and you are an engineer who wants to use this stack for something — your own civic project, your nonprofit's intake system, a prototype for an idea you have not been able to find a place to host — request builder access through the form at codenow.nyc/platform — you can schedule a 30-minute meeting with me there, and I will get you onto the cluster personally. The whole reason for the experiment is to find out how far this goes.
The stars aligned for me, geographically, in a very small and very specific way. Of all the windows in this apartment, exactly one can see the supernode at 97th Street. If the building next door were ten feet further east, the parapet would clip the sightline and the link would not be physically possible. That is the entire margin this experiment runs on — one window, ten feet, a brick frame, and a clear shot across the Hudson. Most of you won't have that exact accident. You don't need it. You need a network somebody in New York has already built, and a platform somebody else has already built, and an idea you care about enough to spend your time on.
That is the offer. NYC Mesh gives you the line. CodeNOW gives you the rails. We give you the keys to a cluster. The rest is the work — and the work is the point.
· · ·
Written from a New Jersey apartment over a NYC Mesh link, on a CodeNOW cluster,
on Dell hardware nobody else wanted, for an organization neither of us has met yet.