- The Community Network Builder helps you estimate and understand the cost of building and operating a community network anywhere in the world.
- Users can select the frequencies available in their context or proceed with the default ISM bands of 2.4GHz and 5.8GHz, which are widely available globally.
- You can model mobile or Wi‑Fi networks, fixed wireless, fibre‑to‑the‑home, public access facilities, or any combination of these. The application guides users in describing terrain and vegetation conditions that may impact network deployment, particularly for radio frequency networks.
- After specifying the population and area to be covered, users can design the network step by step, adding locations and technologies incrementally. The application provides helpful hints throughout this process, including suggested costs for network elements and traffic, which can easily be adjusted. For advanced control, the Expert Options menu allows users to fine‑tune details such as labour costs and electricity prices for their specific market.
- The Association for Progressive Communications (APC) commissioned Systems Knowledge Concepts (SKC) and Telco2 to develop a quantitative economic and financial model to enable the evaluation of the financial sustainability of different community‑based communications solutions in under‑serviced communities.
- Systems Knowledge Concepts is an Australian economics consultancy specialising in telecommunications and economic development. Telco2 designs and builds innovative networks for broadband, public safety, utilities, and the Internet of Things.
- Simon Molloy and Barry Burgan of SKC worked with Jonathan Brewer of Telco2 to develop and integrate the model into an Excel sheet. This team collaborated with Carlos Rey‑Moreno and Mike Jensen of APC on the work in 2024.
- Telco2 ported the Excel model to Python and developed a prototype web user interface for it in 2025.
- Matthew Holloway developed a single‑page architecture user interface for the application in 2026.
- An advisory committee accompanied this process: Jane Coffin, Revi Sterling, Laina Green, Steve Song, Ben Matranga and representatives of Connect Humanity (initially Jochai Ben‑Avie, and later Erica Mesker, Brian Vo and Nathalia Foditsch).
- The development of this application is part of the Local Networks initiative, a collective effort led by APC and Rhizomatica in partnership with grassroots communities and support organisations in Africa, Asia and Latin America and the Caribbean. Its production was supported by the "Meaningful community‑centred connectivity" project implemented with financial support from the Swedish International Development Cooperation Agency (Sida) and UK International Development from the UK Government through its Digital Access Programme. The views expressed here do not necessarily reflect the supporters' views.
- FastAPI (Python) for the web API and server‑rendered endpoints
- Pydantic v2 for request/response models and validation
- Pandas for data handling and tabular computations
- numpy‑financial for financial calculations
- Requests for upstream HTTP calls
- python‑dotenv for environment configuration
- Jinja2 templates (via FastAPI) for server‑rendered pages
- React + TypeScript (see
spa/src/...with.tsxfiles) - Vite build pipeline producing static assets in
spa/distserved by FastAPI at/assets
- Menu and lookup data are provided by a remote database accessible via API (see Environment and configuration). The application depends on this API connection to populate its menus.
- Documentation/QSG content is fetched from Confluence at runtime and rendered into
/documentationand/qsgrespectively.
- Single repo with a Python FastAPI backend and a static SPA frontend.
- Backend mounts static directories and serves:
/— SPA entry (prebuilt assets inspa/dist)/docs— OpenAPI documentation (Swagger UI, autogenerated by FastAPI)/qsg— Quick Start Guide (fetched from Confluence)/documentation— User documentation (fetched from Confluence)- Additional JSON API routes under
/api/*for lookups and modelling.
Prerequisites
- Python 3.11+
- Node.js 18+ (only needed if you will modify/build the SPA)
- Docker (optional) if you prefer containerised runs
- The application depends on an API connection to a database holding all of its menus — please contact the maintainer to set up an API key for read access to that data.
- Copy
locnet.env(or.envtemplate) and provide values for required variables. At minimum you will need read access credentials for the menu/lookup API. If using Confluence‑backed docs/QSG, provide the relevant credentials and page IDs.
Install and run (local)
- Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\\Scripts\\activate
- Install dependencies
pip install -r requirements.txt
- Build the SPA (optional if
spa/distis already present)
cd spa
npm install
npm run build
cd ..
- Start the server (uvicorn via FastAPI standard)
uvicorn main:app --reload --port 8000
- Open in your browser
- App: http://localhost:8000/
- OpenAPI (Swagger UI): http://localhost:8000/docs
- Quick Start Guide: http://localhost:8000/qsg
- Documentation: http://localhost:8000/documentation
Run with Docker Build and run using Docker Compose:
docker-compose up --build
Then visit the same URLs as above (port may vary based on compose settings).
Production docs and quick start
- Quick Start Guide: https://locnet.io/qsg
- Documentation: https://locnet.io/documentation
- The application exposes a JSON API used by the SPA and available for direct integration.
- OpenAPI/Swagger UI is available at
/docswhen the server is running, including schema and example requests.
- Issues and pull requests are welcome. Please discuss major changes via an issue before submitting a PR.
- © 2024–2026 APC, SKC, Telco2, ISOC and contributors. See repository's LICENSE file for details.
- For access to the menu/lookup API and general support, please contact the project maintainer.