Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@

`geoptimize` is a deterministic content-readiness lint for static websites and documentation. It checks reproducible properties such as document structure, sourced quantitative claims, structured-data hygiene, indexing controls, metadata quality, and repetitive wording — locally, in CI, or pre-commit.

https://github.com/user-attachments/assets/5dafd888-92c9-428b-b372-62864c58059a

30-second introduction · [Download the MP4](https://github.com/cucuwang/geoptimize/raw/refs/heads/main/marketing/geoptimize-preview-20260916/output/geoptimize-preview-v2.mp4) · [Video source and credits](https://github.com/cucuwang/geoptimize/tree/main/marketing/geoptimize-preview-20260916)

[![geoptimize visual report with five readiness scores and site health charts](docs/assets/report-demo.png)](docs/assets/report-demo.html)

[Open the offline example](docs/assets/report-demo.html) · [After improvements](docs/assets/report-demo-after.html)
Expand Down
7 changes: 7 additions & 0 deletions marketing/geoptimize-preview-20260916/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
work/
assets/soundtrack.wav
output/*.wav
output/silent.mp4
output/stills/
output/contact-sheet.jpg
output/transitions-v2.jpg
29 changes: 29 additions & 0 deletions marketing/geoptimize-preview-20260916/ATTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Attribution and third-party licenses

This geoptimize preview uses the motion-design workflow in
[motion-web](https://github.com/feitangyuan/motion-web), by **feitangyuan**,
at commit `5f4e40f1253e11e28850d08dce28b9b7e4320115`.

The reference skill is licensed under
[CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/).
Its [repository license](https://github.com/feitangyuan/motion-web/blob/5f4e40f1253e11e28850d08dce28b9b7e4320115/LICENSE)
applies to its prompts, cases, scripts and assets. This preview adapts the workflow
to a fixed 30-second Canvas timeline with analytical springs, explicit seek controls,
headless frame rendering and an MP4 export. It does not copy a demonstration case,
its artwork, or its soundtrack. No endorsement is implied.

This preview is shared as a demonstration of the free, open-source geoptimize
project. The referenced motion-web license permits public open-source demonstration
projects that do not generate commercial revenue. Commercial reuse must follow
the applicable motion-web license conditions. The parent project's MIT license
does not relicense motion-web material.

Space Grotesk and Space Mono are supplied from the Google Fonts repository.
The original SIL Open Font Licenses are included beside the font files.

The soundtrack is original procedural synthesis. It uses no third-party samples,
recordings or commercial songs. Its complete reproducible source is `soundtrack.py`.

The product facts and demonstration counts come from geoptimize itself. The pinned
source URLs and commit are in `source-data.json`. Onscreen scan results describe a
synthetic three-page fixture, not a measured customer outcome.
79 changes: 79 additions & 0 deletions marketing/geoptimize-preview-20260916/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# geoptimize video preview

30-second English product film, 1920 × 1080, 30 fps. Playful typography, restrained
spring motion, a moving document scan and an original instrumental soundtrack.
The design retains geoptimize's dark ground and mint-green accent.

https://github.com/user-attachments/assets/5dafd888-92c9-428b-b372-62864c58059a

[Watch or download the current MP4](output/geoptimize-preview-v2.mp4) ·
[First preview](output/geoptimize-preview-v1.mp4) ·
[Attribution and licenses](ATTRIBUTION.md)

The intended viewer is a developer maintaining a static website or documentation.
The film introduces a first local scan and ends with the npm installation command.
It uses verified public demonstration data and makes no search-outcome claims.

## Files

- `output/geoptimize-preview-v2.mp4`: current review copy with sound and varied transitions.
- `output/geoptimize-preview-v1.mp4`: preserved first preview.
- `index.html`, `scene.js`: editable Canvas source and accessible local player.
- `source-data.json`, `source-notes.md`: pinned public product evidence.
- `soundtrack.py`: original deterministic 128 BPM music.
- `ATTRIBUTION.md`: motion-web credit, font licenses and preview usage scope.
- `output/verification.json`: dimensions, duration, stream properties and hashes.
- `output/verification-v2.json`, `output/layout-audit-v2.json`: current media and text-layout readback.

## Reproduce

Requires Node, Puppeteer Core, Chrome, FFmpeg and Python with NumPy. The parent
checkout already has Puppeteer Core. `GEO_CHROME` can select a Chrome executable.
No global dependency installation is needed in the producing workspace.

```sh
python3 soundtrack.py
node render.mjs
ffmpeg -y -i output/silent.mp4 -i assets/soundtrack.wav -map 0:v -map 1:a -c:v copy -c:a aac -b:a 192k -t 30 -movflags +faststart output/geoptimize-preview-v2.mp4
```

`node render.mjs --stills` writes representative frames only. Rendering runs through
an ephemeral loopback HTTP server which is closed on completion. Every frame is
evaluated at its exact timestamp; no mouse operation or live webpage is recorded.

The optional HTML player starts paused, including under reduced motion. Serve this
folder over a local HTTP server to use its play, seek and sound controls. The MP4 is
the primary review artifact and requires no server.

## Editorial structure

| Seconds | Content |
| --- | --- |
| 0–4.7 | A page looks ready; a closer scan reveals a reason to check. |
| 4.7–9.4 | geoptimize introduction and its local scan command. |
| 9.4–15 | The actual synthetic fixture's five readiness dimensions. |
| 15–21 | Editing the fixture and comparing two concrete finding counts. |
| 21–25.3 | Local scans, offline reports and the existing CI capability. |
| 25.3–30 | Brand, installation command and repository URL. |

The overall score is not shown increasing, since the fixture's later score reflects
several content changes beyond the two findings highlighted in the video.

Each boundary now has its own motion: circular reveal, terminal opening,
horizontal push, diagonal sweep and a small zoom into a beat cut. Incoming scene
clocks continue through the boundary rather than restarting. Heading travel is
bounded to its own area so it cannot cross a fixed caption.

## Validation scope

The video is a stylized product explanation, not a literal screen recording.
Validation checks the rendered frames, playback duration, codec, sound levels,
source-data consistency and deterministic frame output. It does not claim new
runtime validation of geoptimize's CLI or a released marketing campaign.

The v2 layout pass checks transformed font-glyph boxes in all 900 frames, along
with settled text against the safe area and its own clipping region. Text pairs
are checked within each scene; the opaque transition masks intentionally replace
one scene with the next. The tiny HTML labels in overlapping paper illustrations
are decorative and excluded from the glyph-pair audit. Representative mid-transition
frames are also reviewed visually.
93 changes: 93 additions & 0 deletions marketing/geoptimize-preview-20260916/assets/SpaceGrotesk-OFL.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
Copyright 2020 The Space Grotesk Project Authors (https://github.com/floriankarsten/space-grotesk)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
93 changes: 93 additions & 0 deletions marketing/geoptimize-preview-20260916/assets/SpaceMono-OFL.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
Copyright 2016 The Space Mono Project Authors (https://github.com/googlefonts/spacemono)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
39 changes: 39 additions & 0 deletions marketing/geoptimize-preview-20260916/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="A playful geoptimize product film with a reproducible demonstration scan.">
<title>geoptimize · Let's check.</title>
<style>
@font-face{font-family:Space;src:url('./assets/SpaceGrotesk.ttf');font-weight:300 700;font-display:block}
@font-face{font-family:Code;src:url('./assets/SpaceMono.ttf');font-weight:400;font-display:block}
:root{color-scheme:dark;--ground:#101318;--mint:#79edb3;--ink:#f7f5ee}
*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font-family:Space,sans-serif}
main{min-height:100svh;display:grid;place-content:center;padding:16px}
canvas{display:block;width:min(100%,1600px);height:auto;aspect-ratio:16/9}
.controls{display:flex;align-items:center;gap:18px;padding:18px 0;width:100%}
button{font:600 16px Space,sans-serif;border:0;border-radius:12px;background:var(--mint);color:var(--ground);padding:12px 24px;min-width:96px;cursor:pointer}
button:focus-visible,input:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
input{accent-color:var(--mint);flex:1;min-width:80px}output{font-variant-numeric:tabular-nums;min-width:48px}
.transcript{max-width:72ch;margin:24px auto 64px;padding:0 24px;color:#b8c0c9;font-size:17px;line-height:1.6}
.transcript h1{color:var(--ink);font-size:28px}.transcript a{color:var(--mint)}
body.render main{display:block;padding:0;min-height:0}body.render canvas{width:1920px;height:1080px;max-width:none}
body.render .controls,body.render .transcript{display:none}
</style>
</head>
<body>
<main>
<canvas id="film" width="1920" height="1080" role="img" aria-label="geoptimize product film. A synthetic website scan shows content readiness and concrete findings. The transcript follows the player."></canvas>
<div class="controls"><button id="play">Play</button><input id="seek" type="range" min="0" max="30" step="0.01" value="0" aria-label="Video position"><output id="time">0:00</output><button id="sound" aria-pressed="false">Sound off</button></div>
</main>
<section class="transcript">
<h1>geoptimize. Let's check.</h1>
<p>Looks ready. Let's check. Scan a built website with <code>npx geoptimize scan ./dist --dir</code>. See five content-readiness dimensions, inspect findings and compare the same demonstration site after editing. Scan locally and save offline reports.</p>
<p>The scan shown uses a synthetic three-page site. Content-readiness scores are heuristic checks; search visibility and AI citations require separate measurement.</p>
<p><a href="https://github.com/cucuwang/geoptimize">Get geoptimize on GitHub</a></p>
</section>
<audio id="music" src="assets/soundtrack.wav" preload="none"></audio>
<script src="scene.js"></script>
</body>
</html>
Binary file not shown.
Binary file not shown.
14 changes: 14 additions & 0 deletions marketing/geoptimize-preview-20260916/output/layout-audit-v2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"frames": 900,
"textBoxes": 10354,
"transitionNames": [
"circle-reveal",
"terminal-open",
"horizontal-push",
"diagonal-sweep",
"beat-cut"
],
"collisions": [],
"unsafe": [],
"scope": "Actual font glyph bounds transformed into canvas coordinates, with authored entrance clips. Text pairs are checked within their own scene; transition masks intentionally replace scenes. Decorative labels on overlapping paper illustrations excluded."
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading