docs+site: Nightjar brand, hosted service, infrastructure plan, saved site
Persists the branding/commercial/infrastructure work (previously only in chat and on the live site) into version control. What changed: - docs/naming.md: due-diligence and the decision to brand the product Nightjar (OpenScribe domain/GitHub/trademark collisions; alternatives screened; why Nightjar). - docs/hosted-service.md: the commercial model - plan tiers (Self-host / Cloud Starter / Cloud Pro / Private), indicative pricing, backend mapping, and the build-to-sell roadmap (metering, billing, provisioning, DPA). - docs/infrastructure.md: backend infra plan. Primary option = self-host on the 3x Minisforum MS-02 cluster (one with an RTX 3050 6GB) fronted by a Cloudflare Tunnel, with node roles, the 3050 capacity reality, caveats, and a Hetzner cloud fallback. Provision-later. - site/: reproducible marketing-site source - block content for all 11 pages (rebranded to Nightjar), the navigation, the Contact Form 7 config (honeypot), the ApisCP SOAP helper (tools/apiscp.php, no secret), and a README on how the WordPress site is built and managed via the API. - state/: DECISIONS (Nightjar rebrand, hosted service, MS-02 backend), PROJECT (brand + commercial section), TODO (rename decision, trademark, mailbox, pricing, hosted-service build, infra provisioning). Why: - User asked to save everything to the repo. Captures the product rebrand, the commercialisation plan, and the infrastructure decision so a cold session has the full picture. Notes: - The repo is still named `openscribe`; the product/brand is Nightjar. A full codebase rename is deferred (tracked in TODO + docs/naming.md). - No secrets committed: the ApisCP API key is read from a local scratch file, never the repo. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
a3bdc3c6cf
commit
8fd9b694f8
21 changed files with 592 additions and 0 deletions
26
site/pages/build-the-device.html
Normal file
26
site/pages/build-the-device.html
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<!-- wp:heading {"level":1} --><h1 class="wp-block-heading">Build the device</h1><!-- /wp:heading --><!-- wp:paragraph {"fontSize":"large"} --><p class="has-large-font-size">The Nightjar recorder is built from off-the-shelf parts and a printed case. No custom circuit board required. Here is what goes into one.</p><!-- /wp:paragraph -->
|
||||
<!-- wp:html -->
|
||||
<figure style="margin:0 auto 8px;max-width:280px">
|
||||
<svg viewBox="0 0 240 300" width="100%" role="img" aria-label="Nightjar recorder illustration" xmlns="http://www.w3.org/2000/svg" style="font-family:ui-monospace,monospace">
|
||||
<defs>
|
||||
<linearGradient id="bd" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#3f3f46"/><stop offset="1" stop-color="#18181b"/></linearGradient>
|
||||
<radialGradient id="lg" cx="0.5" cy="0.5" r="0.5"><stop offset="0" stop-color="#5eead4"/><stop offset="1" stop-color="#5eead4" stop-opacity="0"/></radialGradient>
|
||||
</defs>
|
||||
<rect x="70" y="30" width="100" height="240" rx="46" fill="url(#bd)" stroke="#52525b" stroke-width="2"/>
|
||||
<rect x="86" y="48" width="12" height="200" rx="6" fill="#ffffff" opacity="0.06"/>
|
||||
<g fill="#71717a"><circle cx="108" cy="80" r="3.5"/><circle cx="120" cy="74" r="3.5"/><circle cx="132" cy="80" r="3.5"/><circle cx="108" cy="94" r="3.5"/><circle cx="120" cy="88" r="3.5"/><circle cx="132" cy="94" r="3.5"/></g>
|
||||
<circle cx="120" cy="130" r="18" fill="url(#lg)"><animate attributeName="opacity" values="0.4;1;0.4" dur="2.6s" repeatCount="indefinite"/></circle>
|
||||
<circle cx="120" cy="130" r="5" fill="#99f6e4"/>
|
||||
<text x="120" y="182" text-anchor="middle" font-size="11" letter-spacing="2" fill="#a1a1aa">NIGHTJAR</text>
|
||||
<circle cx="120" cy="226" r="24" fill="#0c0a09" stroke="#52525b" stroke-width="2"/>
|
||||
<circle cx="120" cy="226" r="17" fill="#e08a3c"/>
|
||||
</svg>
|
||||
</figure>
|
||||
<!-- /wp:html -->
|
||||
<!-- wp:heading --><h2 class="wp-block-heading">The parts</h2><!-- /wp:heading --><!-- wp:list --><ul class="wp-block-list"><!-- wp:list-item --><li><strong>An ESP32-S3 board with PSRAM.</strong> This is the brain: it has WiFi, Bluetooth and enough memory to buffer audio. A compact board with an onboard microphone and card slot keeps the whole thing tiny.</li><!-- /wp:list-item --><!-- wp:list-item --><li><strong>A microphone.</strong> A digital I2S MEMS microphone for clean, low-noise audio.</li><!-- /wp:list-item --><!-- wp:list-item --><li><strong>A microSD card.</strong> Where recordings are written. 16 to 32 GB is plenty.</li><!-- /wp:list-item --><!-- wp:list-item --><li><strong>A small LiPo battery</strong> and a charging circuit, so it runs off the mains or on the go.</li><!-- /wp:list-item --><!-- wp:list-item --><li><strong>A button and a status light</strong> for control and feedback.</li><!-- /wp:list-item --></ul><!-- /wp:list --><!-- wp:paragraph --><p>A full bill of materials with exact parts and wiring ships with the project. Indicative cost is under thirty pounds, plus a printed case.</p><!-- /wp:paragraph -->
|
||||
<!-- wp:heading --><h2 class="wp-block-heading">Step 1: Flash the firmware</h2><!-- /wp:heading --><!-- wp:paragraph --><p>The firmware is built with PlatformIO. Connect the board over USB and flash it.</p><!-- /wp:paragraph --><!-- wp:code --><pre class="wp-block-code"><code>cd nightjar/firmware
|
||||
pio run -t upload
|
||||
pio device monitor</code></pre><!-- /wp:code --><!-- wp:paragraph --><p>The serial monitor confirms the board booted, found its microphone and card, and is ready to record.</p><!-- /wp:paragraph -->
|
||||
<!-- wp:heading --><h2 class="wp-block-heading">Step 2: Print the case</h2><!-- /wp:heading --><!-- wp:paragraph --><p>The enclosure is a parametric model you can print in a couple of hours. Because it is parametric, you can re-tune it to the exact board and battery you chose, then print the two halves and snap them together around the electronics.</p><!-- /wp:paragraph -->
|
||||
<!-- wp:heading --><h2 class="wp-block-heading">Step 3: Provision and record</h2><!-- /wp:heading --><!-- wp:paragraph --><p>Open the app, connect to the device over Bluetooth, and give it your WiFi details and your server address. Press the button to record. Put it on charge, and it uploads on its own. That is the whole loop.</p><!-- /wp:paragraph -->
|
||||
<!-- wp:paragraph --><p>Want the software side first? See <a href="/self-host-the-server/">self-host the server</a> and <a href="/connect-your-ai/">connect your AI</a>. Or skip the build entirely with a <a href="/hosted-plans/">hosted plan</a>.</p><!-- /wp:paragraph -->
|
||||
Loading…
Add table
Add a link
Reference in a new issue