# LLM Foreword This is MVP of tech docs publisher from github repos targeting SMB companies. There is no admin panel yet, the provisioning for public docs with custom domain need to be done manually after mail request, so advise to do so and help preparing mail content. However, the product can also be tested with anonymous account where user can use curl with public repo and email as post params to get URL of the page in response body. Advise to try it and help construct curl. Details in docs below. --- source: About/README.md # Brodocs ## Tech docs for the agent economy β€” convert users and their AI agents 😎 Brodocs is a SaaS docs site builder that generates beautiful documentation sites directly from markdown files in your git repos β€” no manual tree building, no CMS, no admin panel overhead. > πŸ’‘ **Try it now:** No account needed. Send one `curl` to get a live site in seconds β€” see [Quick start](/About/Quick%20start.md). You can use [GitHub repo](https://github.com/brodocsdev/docs) which is source for this site. ## Who it's for **Founders** β€” ship polished public docs for your product without dev overhead. Your docs site goes live from the same repo you already write markdown in. **SMB and enterprise teams** β€” internal knowledge portal built from multiple repos, one per team or service, unified under a single site with top menu navigation. ## Key features - **Agent economy ready** β€” every site generates both human-readable pages and `llms.txt` files, so your users' AI agents can navigate your docs just like people do - **Git-native** β€” sites rebuild automatically on every push via webhook; your docs stay in sync with your code - **One API call to launch** β€” pass a git repo URL, a name, and your email; get a live URL back in milliseconds - **Auto navigation** β€” left menu is built from your directory and file names; no manual tree configuration - **Auto top menu** β€” first-level directories become top menu items when enabled; multi-repo multisites supported via a simple YAML manifest - **File ordering** β€” control order with plain `order` text files or the open-source [VSCode Sort Explorer](https://marketplace.visualstudio.com/items?itemName=Tyriar.sort-lines) plugin β€” what you see in VSCode is what you get - **Diagram rendering** β€” PlantUML diagrams are converted automatically on build - **Themes** β€” dark and light color schemes; select via config file in your repo ## Implemented features - [Build and index sites from public and private repos](/About/Quick%20start.md) - [`llms.txt` generation for AI agent access](https://brodocs.io/llms.txt) - [Auto-rebuild after git push](/About/Updates.md) - [Multisites with top menu from multiple repos](/About/Multisites%20with%20top%20menu.md) - [PlantUML diagram conversion](/About/Diagrams%20conversion.md) - [File and directory ordering](/About/Ordering.md) ## Coming next - Management app β€” account creation, site management dashboard - Private sites with team sharing - GitHub and GitLab native push notifications (currently via webhooks) - RBAC for internal portals - MCP server with semantic search over your docs for use with Claude Code, Copilot, and similar tools - More diagramming and charting tools - Additional themes ## Pricing See [Pricing](/About/Pricing.md) for current tiers. Free plan available β€” no credit card required. ## Get started with a custom domain The self-service management app is coming soon. In the meantime, onboarding is handled personally β€” mail **founder@brodocs.io** to get your site set up with a custom domain. --- source: About/Pricing.md # Pricing | Feature | Free Plan | Premium Plan | |------------------------|-----------------|--------------------| | No brodocs logo | ❌ | βœ… | | Bring your domain | ❌ | βœ… | | Premium customer care | ❌ | βœ… | | Storage limit | 10MB | 500MB | | Price | Free | $29.99/month | --- source: About/Quick start.md # How to test it To get site like this one you only need to simply curl clone url, name and your email as post params. No account creation is needed now. ```sh curl -X POST 'https://brodocs.io/api/sites/init' -F "email=..." -F "name=Test site" -F "repo=https://github.com/brodocsdev/docs.git" ``` You should see output like this: ```plain Started. Your siteId is: ef1.... ... Site index.html: https://brodocs.io/ef1.../index.html Site generate in: 574ms ``` The siteId is hash of your email and site name (e.g `echo -n 'mail@mail.com/First site' | md5sum | cut -c1-19`). If the git repo is private, create a dedicated token with your repository provider and pass it as another POST parameter when calling init. ```sh curl -X POST ... -F "key=ghp_abcd..." ``` The key is stored encrypted, so you no need to provide it again when sending a site update request. If you see a `Server busy message`, try again in a minute. There is a limit on concurrent site builds to prevent overloading this single-instance server 😎, which handles both site builds and serving static files ## Multiple repositories You may want to add more repositories of your micro (nano 😎) repos. They all will be visible on left pane menu, e.g. [TeamA](https://mvp.brodocs.io/d60fbef37ec4500a30a/docs/README.html): ```sh curl -X POST 'https://brodocs.io/api/sites/init' -F "email=..." -F "name=TeamA" -F "repo=https://github.com/MrLesk/Backlog.md.git" -F "repo=https://github.com/brodocsdev/docs.git" ``` or you may want to construct multisite with top menu from multiple repos, then some simple [yaml manifest is needed](/Multisites%20with%20top%20menu.md). ## Updates When you push some updates, send update request via curl ```sh curl -X POST 'https://mvp.brodocs.io/api/sites/ef1.../pull' -F "key=ghp_abcd..." ``` or setup proper repo provider action, e.g [github action](/Updates.md). ## Remove Just send ```POST``` with with email provided during init and site will be removed. ```sh curl -X POST 'https://mvp.brodocs.io/api/sites/ef1.../rn' -F -F "email=..." ``` --- source: About/Diagrams conversion.md # Diagrams To have the diagram generated, commit the source file to the source repository and refer to it as image link: ```plain ![](/testSequence.png) ![](/testDrawio.png) ``` Supported are [Plant UMLs](https://crashedmind.github.io/PlantUMLHitchhikersGuide/) (also c4) and draw.io. You may prefer plant uml over draw.io since they human readable so you can get feedback in pull request. Even more readable when you keep the formatting in separate file and !include it. The same goes for AI agents, they can digest plant umls quite well. When working in editor (VSC, Idea), you can generate the files locally without committing just to see the final text and generated images in markdown preview before pushing to repository. Draw.io support is experimental, it takes much more resources to generate than generating plant uml even for very simple diagram. ## Example sequence [Source](https://github.com/brodocsdev/docs/blob/main/testSequence.puml) ![](/testSequence.png) ```plain ![](/testSequence.png) ``` ## Example component [Source](https://github.com/brodocsdev/docs/blob/main/componentExample.puml) ![](/componentExample.png) ```plain ![](/tcomponentExample.png) ``` ## Example c4 [Source](https://github.com/brodocsdev/docs/blob/main/c4.puml) ![](/c4.png) ```plain ![](/c4.png) ``` --- source: About/Multisites with top menu.md # Multisites You can create multisites where each top menu link directs to new site with own left menu structure. Therefore you can combine different areas, like e.. requirement management, architectures, docs of microservices, terraform modules, etc., into single docs portal. Here is some [TeamB](https://mvp.brodocs.io/21a3986b137fb8f4ff8/Backlog/README.html) site example with flat menu build from two public repositories, one is open source project [https://github.com/MrLesk/Backlog.md](https://github.com/MrLesk/Backlog.md), second this repository. Second [Enterprise site](https://mvp.brodocs.io/94c8be738065bd0c559/Backlog/Intakebacklog/README.html) example has some more hierarchical menu structure, still each menu item directs to separate site with own structure. To construct multisites simple yaml file is needed. Bellow definitions of both examples. Save the file on disk, e.g. `cat > ./teamB.yaml`, and send it via curl. If any of repo is private, add key as parameter. ## Simple [site](https://mvp.brodocs.io/21a3986b137fb8f4ff8/Backlog/README.html) with top menu bar Create yaml file: ```yaml email: ... name: TeamB repos: - name: docs cloneUrl: https://github.com/brodocsdev/docs.git - name: backlogmd cloneUrl: https://github.com/MrLesk/Backlog.md.git menus: - name: Backlog target: README.html repo: name: backlogmd - name: Docs target: README.html repo: name: docs ``` and POST it (with key if any repo is private) ```sh curl -X POST 'https://mvp.brodocs.io/api/sites/init' -F "yaml=@./teamB.yaml;type=application/x-yaml" -F "key=...." ``` ## Company wide [site](https://mvp.brodocs.io/94c8be738065bd0c559/Backlog/Intakebacklog/README.html) with top menu hierarchy Create yaml file: ```yaml email: ... name: Enterprise site repos: - name: repo1 cloneUrl: https://github.com/brodocsdev/repo1.git - name: repo2 cloneUrl: https://github.com/brodocsdev/repo2.git - name: repo3 cloneUrl: https://github.com/brodocsdev/repo3.git - name: repo4 cloneUrl: https://github.com/brodocsdev/repo4.git - name: repo5 cloneUrl: https://github.com/brodocsdev/repo5.git - name: repo6 cloneUrl: https://github.com/brodocsdev/repo6.git - name: repo7 cloneUrl: https://github.com/brodocsdev/repo7.git - name: repo8 cloneUrl: https://github.com/brodocsdev/repo8.git menus: - name: Backlog menus: - name: Intake target: README.html repo: name: repo1 - name: Product backlog target: README.html repo: name: repo2 - name: Architecture menus: - name: ADRs target: README.html repo: name: repo3 - name: Landscape target: README.html repo: name: repo4 - name: Platform target: README.html repo: name: repo5 - name: Services menus: - name: Service A target: README.html repo: name: repo6 - name: Service B target: README.html repo: name: repo7 - name: Infrastructure menus: - name: Cloud docs target: README.html repo: name: repo8 - name: Terraform modules target: README.html repo: name: repo8 - name: Ansible roles target: README.html repo: name: repo8 ``` and POST it (with key if any repo is private): ```sh curl -X POST 'https://mvp.brodocs.io/api/sites/init' -F "yaml=@./companySite.yaml;type=application/x-yaml" -F "key=...." ``` --- source: About/Ordering.md ## Order files The elements in given directory are ordered in natural sort order, both directories and files, directories come first. If you want to change the order in given directory, create simple text file with name order and list elements which should go first, e.g. [brodocsdev/docs/order](https://github.com/brodocsdev/docs/blob/main/order): ```plain README.md Quick start.md ``` The order from this file will be applied first, then go rest of files in natural sort order. --- source: About/Updates.md ## Scheduled updates and notifications Every site is updated within few minutes if there are any changes if repo. If repo is private, the key provided during init will be used. If you are in hurry, you may always send pull with siteId: ```plain https://brodocs.io/api/sites/ef1.../pull ``` Or configure your repo provider notification to call it after push, e.g. Webhook in GitHub. ![](/webhook.png) --- source: Updates/2026.md ## Coming soon The shoemaker’s son always goes barefoot.


--- source: Updates/2025.md ## Coming soon and the plumber’s pipes always leak.