n-seo 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -5
- package/docs/RELEASING.md +21 -0
- package/ingest/__pycache__/analyze_metadata.cpython-312.pyc +0 -0
- package/ingest/__pycache__/google_auth.cpython-312.pyc +0 -0
- package/ingest/__pycache__/http_util.cpython-312.pyc +0 -0
- package/ingest/__pycache__/seo_config.cpython-312.pyc +0 -0
- package/ops/__pycache__/daily.cpython-312.pyc +0 -0
- package/ops/__pycache__/daily_diff.cpython-312.pyc +0 -0
- package/ops/__pycache__/demo_data.cpython-312.pyc +0 -0
- package/ops/__pycache__/export_static.cpython-312.pyc +0 -0
- package/ops/__pycache__/llm.cpython-312.pyc +0 -0
- package/ops/__pycache__/publish.cpython-312.pyc +0 -0
- package/package.json +2 -2
- package/probes/__pycache__/site_probe.cpython-312.pyc +0 -0
- package/ingest/__pycache__/analyze_ga4.cpython-313.pyc +0 -0
- package/ingest/__pycache__/analyze_gsc.cpython-313.pyc +0 -0
- package/ingest/__pycache__/analyze_metadata.cpython-313.pyc +0 -0
- package/ingest/__pycache__/analyze_trends.cpython-313.pyc +0 -0
- package/ingest/__pycache__/google_auth.cpython-313.pyc +0 -0
- package/ingest/__pycache__/http_util.cpython-313.pyc +0 -0
- package/ingest/__pycache__/pull_ga4.cpython-313.pyc +0 -0
- package/ingest/__pycache__/pull_gsc.cpython-313.pyc +0 -0
- package/ingest/__pycache__/pull_index_status.cpython-313.pyc +0 -0
- package/ingest/__pycache__/pull_timeseries.cpython-313.pyc +0 -0
- package/ingest/__pycache__/seo_config.cpython-313.pyc +0 -0
- package/ops/__pycache__/daily.cpython-313.pyc +0 -0
- package/ops/__pycache__/daily_diff.cpython-313.pyc +0 -0
- package/ops/__pycache__/demo_data.cpython-313.pyc +0 -0
- package/ops/__pycache__/doctor.cpython-313.pyc +0 -0
- package/ops/__pycache__/export_static.cpython-313.pyc +0 -0
- package/ops/__pycache__/hn_digest.cpython-313.pyc +0 -0
- package/ops/__pycache__/indexnow.cpython-313.pyc +0 -0
- package/ops/__pycache__/llm.cpython-313.pyc +0 -0
- package/ops/__pycache__/opportunity_scan.cpython-313.pyc +0 -0
- package/ops/__pycache__/publish.cpython-313.pyc +0 -0
- package/ops/__pycache__/reddit_digest.cpython-313.pyc +0 -0
- package/probes/__pycache__/site_probe.cpython-313.pyc +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# n-seo
|
|
2
2
|
|
|
3
|
-
**An SEO, self-hosted.** Website: https://
|
|
3
|
+
**An SEO, self-hosted.** Website: https://n-seo.dev/ · From the makers of [n-dx](https://n-dx.dev).
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/n-seo)
|
|
6
|
+
[](https://github.com/en-dash-consulting/n-seo/actions/workflows/ci.yml)
|
|
7
|
+
[](LICENSE)
|
|
4
8
|
|
|
5
9
|
A local-first control plane for growing organic traffic to your own sites —
|
|
6
10
|
classic search (SEO), answer engines (AEO) and AI assistants that cite sources
|
|
@@ -24,16 +28,35 @@ It runs on hardware you control, on a schedule, and shows you the result on a da
|
|
|
24
28
|
|
|
25
29
|
## Quickstart (5 minutes, no Google setup)
|
|
26
30
|
|
|
31
|
+
```sh
|
|
32
|
+
npm install -g n-seo
|
|
33
|
+
n-seo init my-sites && cd my-sites
|
|
34
|
+
n-seo demo # a synthetic dataset for example.com
|
|
35
|
+
n-seo start # dashboard → http://localhost:4600
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Open http://localhost:4600. Every page is populated from the demo data, so you
|
|
39
|
+
can see what the tool does before you connect anything. `n-seo demo --clean`
|
|
40
|
+
removes it.
|
|
41
|
+
|
|
42
|
+
Prefer not to install globally? `npx n-seo init my-sites` works the same way.
|
|
43
|
+
|
|
44
|
+
<details>
|
|
45
|
+
<summary>Or run it from a clone, if you want to change the engine itself</summary>
|
|
46
|
+
|
|
27
47
|
```sh
|
|
28
48
|
git clone https://github.com/en-dash-consulting/n-seo.git
|
|
29
49
|
cd n-seo
|
|
30
50
|
npm install
|
|
31
|
-
npm run demo
|
|
32
|
-
npm start
|
|
51
|
+
npm run demo
|
|
52
|
+
npm start
|
|
33
53
|
```
|
|
34
54
|
|
|
35
|
-
|
|
36
|
-
|
|
55
|
+
In this mode the config, queue and data live inside the checkout. That is the
|
|
56
|
+
right shape for hacking on n-seo; for running it, the instance layout above
|
|
57
|
+
keeps your files separate from the engine so upgrades are a reinstall rather
|
|
58
|
+
than a merge. See [docs/INSTANCE.md](docs/INSTANCE.md).
|
|
59
|
+
</details>
|
|
37
60
|
|
|
38
61
|
## Connect your real sites
|
|
39
62
|
|
package/docs/RELEASING.md
CHANGED
|
@@ -139,6 +139,27 @@ workflow also deliberately omits `registry-url` from `setup-node`, because it
|
|
|
139
139
|
writes an `.npmrc` auth line interpolating `NODE_AUTH_TOKEN`, and an empty
|
|
140
140
|
value there produces the same misleading 404.
|
|
141
141
|
|
|
142
|
+
## Approving a staged release
|
|
143
|
+
|
|
144
|
+
The trusted publisher is configured to allow `npm stage publish` only, so the
|
|
145
|
+
workflow submits a version and stops. It is not on the registry until a human
|
|
146
|
+
approves it with 2FA. That is deliberate: a compromised runner or a stray tag
|
|
147
|
+
cannot put code on npm that other people's machines will then execute.
|
|
148
|
+
|
|
149
|
+
After the release run goes green:
|
|
150
|
+
|
|
151
|
+
```sh
|
|
152
|
+
npm stage list n-seo # the stage id
|
|
153
|
+
npm stage view <stage-id> # inspect exactly what CI built
|
|
154
|
+
npm stage approve <stage-id> # 2FA; now it is live
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
`npm stage reject <stage-id>` throws it away. The package's Staged Packages
|
|
158
|
+
tab on npmjs.com does the same thing in a browser, which is easier if your
|
|
159
|
+
second factor is a passkey rather than an authenticator app.
|
|
160
|
+
|
|
161
|
+
The workflow's run summary prints these commands with the version filled in.
|
|
162
|
+
|
|
142
163
|
## Verify what was published
|
|
143
164
|
|
|
144
165
|
Do not trust the workflow's own output. Install from the registry, into an
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n-seo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Local-first SEO / AEO / GEO control plane: pulls Search Console + GA4, probes your sites, and turns the data into a ranked action queue you can act on without an agency.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "En Dash Consulting (https://endash.us)",
|
|
7
|
-
"homepage": "https://
|
|
7
|
+
"homepage": "https://n-seo.dev/",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
10
|
"url": "git+https://github.com/en-dash-consulting/n-seo.git"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|