Everything we're
allowed to use.
The brand room. Every image, video and mark Navon is allowed to use, what each one is for, which band it belongs on, and the exact line that renders it correctly. An asset that is not in here is not approved; an asset in here with status "unused" is shipping weight nobody asked for.
Two pipelines, one of which is a trap
Where a file lives decides whether it gets optimised. This is the rule most easily broken, so every asset below states which side it is on.
Imported, then rendered with <Image> or <Picture> from astro:assets. Responsive WebP variants, a fingerprinted filename, inferred width and height. The default for every raster image.
Referenced by its own URL. Copied into dist/ untouched. A stable, non-fingerprinted URL. No optimisation of any kind. Only where a fixed URL is required or Astro cannot process the file: video, favicons, og-image, email imagery, pre-encoded posters.
The rules
- Before adding any new image or video to a page, look here first. Re-shooting something the room already holds is how a brand starts to look like two brands.
- The pipeline field is the rule that gets broken most. "build" means src/assets + <Image> from astro:assets: responsive WebP, fingerprinted, dimensions inferred. "verbatim" means public/: copied as-is at a stable URL, no optimisation. Putting a photo in public/ and pointing a raw <img> at it ships the full file.
- Every asset carries real alt text in this file. Copy it rather than writing a new one, so the page and the manifest cannot drift. Decorative only: alt="" aria-hidden="true".
- The tone field says which band an asset belongs on. Dark-tone imagery dropped into a .section--light band breaks the tonal rhythm as surely as a hardcoded colour does.
- Partner marks are not ours. Never recolour one, never add the signal accent to one, never place a dark partner logo on ink.
- An asset reaching status "unused" is a decision, not a bug report: delete it, or give it a placement. Leaving it is how public/ grows.
- The contact sheet at /design-system-assets renders every asset, so status is about real surfaces — a page, deck, document or email — not about appearing in the room itself.
The contact sheet
Click any alt text or render line to copy it. Use the copied alt rather than writing a new one — that is what keeps the page and this manifest in step.
Marks
src/assets buildWordmarks and the icon. Theme-aware: two files, toggled by class, never recoloured.
mark The wordmark on any dark band. Nav and footer swap to the black wordmark under body.theme-light or inside .section--light — never recolour this file.
Navon trademark. Internal and partner use only. · Navon
mark The wordmark on paper and on light bands. Pairs with the off-white file — both are present in Nav and Footer and toggled by theme class, not swapped at build time.
Navon trademark. Internal and partner use only. · Navon
mark The glyph alone, for square crops where the wordmark will not fit. Never set it beside the wordmark — one or the other.
Navon trademark. Internal and partner use only. · Navon
Site photography
src/assets/hells-gate buildFirst-party Naivasha SEZ photography. The only photography we may present as our own site.
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
image First-party site photography from the Naivasha SEZ. The only photography Navon may present as its own site. Render through <Image> with widths={[640,1024,1600]}; never crop out the Rift Valley horizon, it is what makes these read as real.
First-party. Shot by Navon on site at Naivasha SEZ, Kenya. · Navon
Partner imagery
src/assets/partners buildResolved by slug from src/data/partners.js. The filename is the contract.
image Looked up by the slug "alliance-for-ai" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · Alliance for AI
image unused Matched by the eager glob on this folder but requested by no partner slug, so it is processed at build time and rendered nowhere. Move it out of the glob path or give it a page.
Supplied by the partner. Confirm publication rights before external use. · Azraq
image Looked up by the slug "azraq" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · Azraq
image Looked up by the slug "canopy-cloud" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · Canopy Cloud
image Looked up by the slug "delta" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · Delta
image Looked up by the slug "exequantum" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · ExeQuantum
image Looked up by the slug "horizon-x" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · HorizonX
image unused Matched by the eager glob on this folder but requested by no partner slug, so it is processed at build time and rendered nowhere. Move it out of the glob path or give it a page.
Supplied by the partner. Confirm publication rights before external use. · hosted.ai
image Looked up by the slug "hosted-ai" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · hosted.ai
image unused Matched by the eager glob on this folder but requested by no partner slug, so it is processed at build time and rendered nowhere. Move it out of the glob path or give it a page.
Supplied by the partner. Confirm publication rights before external use. · QCentroid
image Looked up by the slug "qcentroid" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · QCentroid
image unused Matched by the eager glob on this folder but requested by no partner slug, so it is processed at build time and rendered nowhere. Move it out of the glob path or give it a page.
Supplied by the partner. Confirm publication rights before external use. · Sytronix
image Looked up by the slug "sytronix" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · Sytronix
image Looked up by the slug "tne" from src/data/partners.js. Rename the file and the partner silently falls back to a monogram tile.
Supplied by the partner. Confirm publication rights before external use. · TNE.ai
Partner logos
src/assets/partners/partner_logos buildLight bands only. Not ours to restyle.
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · Alliance for AI
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · Azraq
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · Delta
logo A second mark for the same partner. Two logos for one partner means someone will eventually use the wrong one — confirm which is current and delete the other. Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · Delta
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · EvoS
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · ExeQuantum
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · HorizonX
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · QCentroid
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · TNE.ai
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · Canopy Cloud
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · hosted.ai
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · ID Quantique
logo Partner logo for the ecosystem strip. Sits on a light band so dark logos read — do not place these on ink. Never recolour, never add a Navon accent to a partner mark.
Partner trademark, used with permission for the partner strip. Not ours to restyle. · Sytronix
Team portraits
public/assets/team verbatimResolved by roster slug. Fixed URLs because decks and documents reference them outside the Astro build.
portrait Senior Advisor, Investment & Structuring. Resolved by slug from the roster in src/data/deckNavon.js, so the filename is the contract — renaming it silently falls back to an initials tile.
Supplied by the individual for Navon use. · Navon
portrait Head of Networks. Resolved by slug from the roster in src/data/deckNavon.js, so the filename is the contract — renaming it silently falls back to an initials tile.
Supplied by the individual for Navon use. · Navon
portrait Senior Advisor, ESG & People. Resolved by slug from the roster in src/data/deckNavon.js, so the filename is the contract — renaming it silently falls back to an initials tile.
Supplied by the individual for Navon use. · Navon
portrait unused Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
Supplied by the individual for Navon use. · Navon
portrait unused Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
Supplied by the individual for Navon use. · Navon
portrait CTO & Co-Founder. Resolved by slug from the roster in src/data/deckNavon.js, so the filename is the contract — renaming it silently falls back to an initials tile.
Supplied by the individual for Navon use. · Navon
portrait unused Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
Supplied by the individual for Navon use. · Navon
portrait Head of Higher Education. Resolved by slug from the roster in src/data/deckNavon.js, so the filename is the contract — renaming it silently falls back to an initials tile.
Supplied by the individual for Navon use. · Navon
portrait unused Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
Supplied by the individual for Navon use. · Navon
portrait Senior Advisor, Energy. Resolved by slug from the roster in src/data/deckNavon.js, so the filename is the contract — renaming it silently falls back to an initials tile.
Supplied by the individual for Navon use. · Navon
portrait Head of Business Development, East Africa. Resolved by slug from the roster in src/data/deckNavon.js, so the filename is the contract — renaming it silently falls back to an initials tile.
Supplied by the individual for Navon use. · Navon
portrait unused Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
Supplied by the individual for Navon use. · Navon
portrait CEO & Co-Founder. Resolved by slug from the roster in src/data/deckNavon.js, so the filename is the contract — renaming it silently falls back to an initials tile.
Supplied by the individual for Navon use. · Navon
portrait Chairman. Resolved by slug from the roster in src/data/deckNavon.js, so the filename is the contract — renaming it silently falls back to an initials tile.
Supplied by the individual for Navon use. · Navon
portrait unused Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
Supplied by the individual for Navon use. · Navon
portrait unused Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
Supplied by the individual for Navon use. · Navon
Video
public/assets/video verbatimAstro does not transcode video. H.264, 720x1280 portrait, 600-800 kbps, 25 fps. Every clip ships with a WebP poster.
video A young continent, abundant clean energy, and a billion people coming online, yet almost none of the world’s compute lives here. Encoded 720x1280 at 664 kbps. Astro cannot transcode video, so it lives in public/ and must be rendered through VideoFeature with its poster — a bare <video> ships a black box.
First-party. Phone-shot vertical clip. · Navon
poster The frame the user sees before the video bytes are fetched. VideoFeature uses preload="none", so without this the slot is black until scroll. Target 25-35 KB.
First-party frame extract. · Navon
video Silent media-only clip beside the homepage positioning statement. No title or description — it carries no narration of its own. Encoded 720x1280 at 770 kbps. Astro cannot transcode video, so it lives in public/ and must be rendered through VideoFeature with its poster — a bare <video> ships a black box.
First-party. Phone-shot vertical clip. · Navon
poster The frame the user sees before the video bytes are fetched. VideoFeature uses preload="none", so without this the slot is black until scroll. Target 25-35 KB.
First-party frame extract. · Navon
video The demand for sovereign compute in emerging markets is real, structural and already here, yet most capital still flows to saturated hyperscaler markets. Encoded 720x1280 at 741 kbps. Astro cannot transcode video, so it lives in public/ and must be rendered through VideoFeature with its poster — a bare <video> ships a black box.
First-party. Phone-shot vertical clip. · Navon
poster The frame the user sees before the video bytes are fetched. VideoFeature uses preload="none", so without this the slot is black until scroll. Target 25-35 KB.
First-party frame extract. · Navon
video Africa’s infrastructure problem is solved by machines built for the terrain, not fragile high-performance kit. Encoded 720x1280 at 706 kbps. Astro cannot transcode video, so it lives in public/ and must be rendered through VideoFeature with its poster — a bare <video> ships a black box.
First-party. Phone-shot vertical clip. · Navon
poster The frame the user sees before the video bytes are fetched. VideoFeature uses preload="none", so without this the slot is black until scroll. Target 25-35 KB.
First-party frame extract. · Navon
video Adversaries are harvesting data to decrypt later. Hybrid post-quantum cryptography future-proofs applications now. Encoded 720x1280 at 872 kbps. Astro cannot transcode video, so it lives in public/ and must be rendered through VideoFeature with its poster — a bare <video> ships a black box.
First-party. Phone-shot vertical clip. · Navon
poster The frame the user sees before the video bytes are fetched. VideoFeature uses preload="none", so without this the slot is black until scroll. Target 25-35 KB.
First-party frame extract. · Navon
video unused Encoded and postered but never placed on a page. 3.6 MB of video plus a poster ship to production unreferenced. Encoded 720x1280 at 783 kbps. Astro cannot transcode video, so it lives in public/ and must be rendered through VideoFeature with its poster — a bare <video> ships a black box.
First-party. Phone-shot vertical clip. · Navon
poster unused The frame the user sees before the video bytes are fetched. VideoFeature uses preload="none", so without this the slot is black until scroll. Target 25-35 KB.
First-party frame extract. · Navon
Email imagery
public/assets/email verbatimAbsolute URLs only. No custom properties, no responsive variants.
mark Email needs an absolute URL and a raster file — no CSS custom properties, no responsive variants. Reference it with the full https origin, never a root-relative path.
Navon trademark. Internal and partner use only. · Navon
image Masthead image for the Navon Dispatch email. Email clients ignore custom properties, so brand colour here is baked into the pixels. Reference with the absolute origin; a root-relative path resolves against the mail client, not the site.
Navon brand asset. · Navon
image Stack diagram for the Dispatch email. Regenerate it from the live stack whenever a layer changes, or the email contradicts the site. Reference with the absolute origin; a root-relative path resolves against the mail client, not the site.
Navon brand asset. · Navon
Shipping weight nobody asked for
13 assets, 12.4 MB, that no page, deck or document
references. Each one is a decision waiting to be made: delete it, or give it
a placement. npm run ds -- assets unused lists
them in the terminal, and npm run ds -- --check
counts them on every build.
- public/assets/team/ingvil.jpg — 2 KB. Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
- public/assets/team/jim.jpg — 9 KB. Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
- public/assets/team/karl.jpg — 2 KB. Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
- public/assets/team/maryann.jpg — 2 KB. Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
- public/assets/team/robert.jpg — 2 KB. Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
- public/assets/team/steve.jpg — 2 KB. Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
- public/assets/team/urav.jpg — 73 KB. Not on any roster and not rendered anywhere. Delete it or add the person to src/data/deckNavon.js.
- src/assets/partners/azraq-team.jpg — 4.4 MB. Matched by the eager glob on this folder but requested by no partner slug, so it is processed at build time and rendered nowhere. Move it out of the glob path or give it a page.
- src/assets/partners/hosted-ai-team.jpg — 2.2 MB. Matched by the eager glob on this folder but requested by no partner slug, so it is processed at build time and rendered nowhere. Move it out of the glob path or give it a page.
- src/assets/partners/qcentroid-team.jpeg — 71 KB. Matched by the eager glob on this folder but requested by no partner slug, so it is processed at build time and rendered nowhere. Move it out of the glob path or give it a page.
- src/assets/partners/sytronix-team.png — 1.9 MB. Matched by the eager glob on this folder but requested by no partner slug, so it is processed at build time and rendered nowhere. Move it out of the glob path or give it a page.
- public/assets/video/sovereign-cloud-private.mp4 — 3.8 MB. Encoded and postered but never placed on a page. 3.6 MB of video plus a poster ship to production unreferenced. Encoded 720x1280 at 783 kbps. Astro cannot transcode video, so it lives in public/ and must be rendered through VideoFeature with its poster — a bare <video> ships a black box.
- public/assets/video/sovereign-cloud-private-poster.webp — 30 KB. The frame the user sees before the video bytes are fetched. VideoFeature uses preload="none", so without this the slot is black until scroll. Target 25-35 KB.
LinkedIn backgrounds
Put your name and title in, pick a ground, download the PNG. Each one is drawn here in the browser at 3168×792, which is twice LinkedIn's 1584×396 cover so it stays sharp on a retina screen. Nothing is uploaded and nothing is stored, so these are generated rather than files in the room above.
The wordmark here is the real asset, not a redraw, and it is never recoloured: the off-white file goes on dark grounds and the black file on light ones. If you want a photographic background instead, take one from the site photography above and keep the Rift Valley horizon in frame.
Email signature
Fill this in, press Copy signature, and paste it straight into Gmail's signature box or Outlook. It pastes as formatted content, not as code. Email is the one surface with no custom properties and no responsive variants, so the brand hexes are baked in and the wordmark is an absolute URL.
Gmail: Settings, then See all settings, then Signature, then paste. Outlook: Settings, then Compose and reply, then paste. Do not retype anything after pasting or the fonts fall back to the client default.
Social and icons
public/assets verbatimog-image and favicons. Fixed URLs by necessity — a fingerprint here means a cached 404 at every scraper.
The same glyph at a stable URL, for the places that cannot take a fingerprinted filename: email, schema.org JSON-LD, external embeds.
Navon trademark. Internal and partner use only. · Navon
Browser tab icon. Fixed URL by necessity.
Navon trademark. · Navon
Home-screen icon on iOS. Fixed URL by necessity.
Navon trademark. · Navon
The 1200x630 card every page falls back to for OG and Twitter. Must stay at a fixed, non-fingerprinted URL or scrapers cache a 404. Pass it as an absolute URL in meta tags.
Navon brand asset. · Navon