Brillity Digital · Internal tooling
Settings
Which clients the reports cover, and where this app keeps every piece of data it holds.
- Reporting on
- ManageWP captures
- Client definitions
Reporting on
Projects
11 of 11 configured clients are in the reports. Archiving takes one out of the overview, the capture roll call and the portfolio totals, and stops its report URL resolving.
- Raynor Door AuthorityRaynor Garage Door
- Front Range RaynorRaynor Garage Door
- Stewart DoorRaynor Garage Door
- Quality Overhead DoorRaynor Garage Door
- Anchor DoorsRaynor Garage Door
Storage
Where the data lives
This app has no database. Everything it holds is either fetched live from an API on each request or is one of these files.
Resolved paths on this machine
These point outside the repository, so they survive a rebuild — which is what they need to do anywhere this app runs as a container.
data/managewp/<slug>.jsonManageWP captures — what you paste into the capture page- One file per client, written the moment a paste validates, and the only copy that exists. ManageWP has no API and its history view only reaches back 30 days, so a capture of an older month cannot be recreated once the file is gone. These files are not ignored by git: commit them and the captures are backed up with the code.
data/managewp/site-map.jsonManageWP site id → client- Written by the site-map harvester, so a capture can never be filed under the wrong client. Safe to delete: re-run the harvester and it is rebuilt.
data/projects/archived.jsonArchived projects- The list of clients turned off above. Deleting this file restores every archived client.
data/automation/runs.jsonWhich scheduled runs have happened- The automations’ memory, and the reason the 1st does not send twice. Every run is recorded under the month it is for, so a restart, a retry or a second trigger all recognise a month that is already done. Delete this and the scheduler forgets: the Monday task is protected by a duplicate check on the board itself, but a send would post every approved report again.
data/automation/approvals.jsonReports cleared for sending- One entry per client per month, written by the Approve button. Nothing is sent without one. Deleting this file un-approves everything, which holds the next send rather than breaking it.
data/automation/slack-channels.jsonClient → Slack channel- Which channels each report is posted to, stored by channel id so a rename in Slack does not break it, plus the internal channel the run summary goes to.
.cache/API response cache- Ahrefs, Search Console, Monday and PageSpeed answers, kept so a reviewer flipping between months does not spend the unit budget twice. A closed month is held for 30 days, the month in progress for hours. Git-ignored, and safe to delete — the next page view re-fetches, at the cost of the units.
config/clients.tsClient definitions- Slug, domain, Ahrefs project and Monday boards. This one is code: adding a client, or changing which boards it reads, is a commit.
Credentials
Integrations
Whether each credential is present in the environment. Values are never read into this page — a missing token shows up in the report as a section that could not be built, which is why it is worth seeing here first.
- Ahrefs
- Monday
- PageSpeed Insights
- Cloudways account
- Cloudways key
- Slack bot
- Automation endpoint secret