// brand kitv.04apr 2026maintained by matt

iterating like
a scientist,
shipping like a degen.

> this is the brand identity for mattdgn / gmgm.fr — a working
  solana dev based in paris.
> this doc is the source of truth for colors, type, logo, voice.
> if it conflicts, this doc wins.

HELLO, I'M
degen
02 / color

five colors. that's it.

lila is the surface. ink is the structure. red is the punctuation. yellow and orange are accents.

primary surface
Lila
brand surface · 60%
hex#e8dffa
rgb232 223 250
rolepage bg
structural
Ink
structure · 30%
hex#0a0a0a
rgb10 10 10
roletext, borders
punctuation
Red
punctuation · 10%
hex#e63329
rgb230 51 41
rolelinks, accents
component bg
Paper
component fill
hex#ffffff
rgb255 255 255
rolecards
accent · highlight
Yellow
accent · highlight
hex#fff48a
usetext marker only
accent · wip stamp
Orange
accent · wip / energy
hex#ff7a3d
usepfp bg, wip stamp
status only
Green
status · shipped
hex#1a8a4a
usefunctional only
neutral
Ink Faint
supporting text
hex#7a7468
usekickers, captions

distribution rule · 60 / 30 / 10

the eye should land on lila first, ink second, red third.

60%
Lila · surface

page backgrounds, big empty space.

30%
Ink · structure

text, borders, headlines. the skeleton.

10%
Red · punctuation

links, the suffix in the wordmark, the sticker.

03 / type

three faces. three jobs.

space grotesk does the talking. jetbrains mono does the working. caveat does the swearing.

Aa
Space Grotesk
display · headlines
weights 300 · 400 · 500 · 700 · 800
tracking -0.04em on display
leading 0.92 on H1, 1.4 on body
AaBbCc 0123456789 & @ % →
{ }
JetBrains Mono
mono · body, ui, code
weights 400 · 500 · 700
tracking 0 default, 0.15em uppercase
leading 1.6 on body, 1.7 on lede
// > matt — solana dev · v0.4
a
Caveat
hand · accent only
weights 500
color always red
rotation -2° to -3°, never +
a degen · no theater · gm

type scale

H1 / heroclamp 44 · 92 pxiteratinghero only. once per page.
H2 / sectionclamp 32 · 56 pxsectionone per section.
H3 / card28–32 pxproject namearticle titles inside cards.
body14–15 px> solana dev based in paris.all paragraphs. leading 1.6.
kicker11–12 px// sectionalways uppercase, red or ink-faint.
04 / sticker

the "hello, i'm" sticker.

the sticker is the only piece of personality the brand allows itself. use it on hero sections, contact cards, business cards, and merch. never on UI elements like buttons.

HELLO, I'M
matt
HELLO, I'M
degen
HELLO, I'M
dev

animated · "hello, degen"

for the home hero only. the name is drawn live, stroke by stroke, the way the apple "hello" film does it. loops every ~6s. rotates through matt → degen → dev → ship.

HELLO, I'M
degen
// motion · timing
· stroke draw — 1.6s ease-out
· hold full word — 2.0s
· erase — 0.8s
· crossfade — 0.4s
· total loop — ~6s per word
// rules · animation
· only on hero / landing
· never on cards, buttons, og images
· static fallback on prefers-reduced-motion
· max 4 names in rotation

sizes

HELLO, I'M
matt
SM · cards, signatures
HELLO, I'M
matt
MD · default
HELLO, I'M
matt
LG · hero, merch
// rules · stickerv.04
  • · background always red (or yellow / orange / ink)
  • · no outer border · radius 16px outer, 8px inner
  • · rotation between -8° and +8°, never aligned
  • · name handwritten, always rotate -3°
  • · max 1 sticker per viewport
  • · never animate the rotation on hover
  • · never replace "HELLO, I'M" with other text
  • · not on UI elements (buttons, badges, nav)
04.5 / pfp

three avatars. three moods.

the brand uses three rotating profile pictures depending on context. each one signals a tone — builder, degen, gm.

SMB
SMB · 1502
primary · solana native

the default. SMB collection. use on solana-related contexts: dev posts, builder threads, conf badges.

nomu
Nomu · fish
product · nomu_stores

use on nomu_stores work — product launches, customer support, anything tied to the brand.

monke
Monke
degen · personal

off-duty. use on shitposts, degen threads, weekend hacks, things you wouldn't put on a CV.

// rules · pfpv.04
  • · always square crop, never rounded inside the file
  • · round mask is applied by the surface, not the PNG
  • · never AI-upscale or stylize
  • · monogram (M) is the only fallback
  • · don't mix two PFPs in the same surface
  • · don't pair PFP + sticker on the same axis
  • · don't recolor the PFP backgrounds
05 / components

building blocks. small kit.

the brand is intentionally light on components. buttons, stamps, tag-pills, highlight, terminal. if you need a new pattern, write it once here before using it on a surface.

// btn · primary / ghost / red
14×22 padding · 2px ink border · uppercase mono 13px
hover: ink → red, ghost → ink-fill, +translateY(-2px).
// stamp · status mark
in progressshippedwiparchive
uppercase mono 10px · 2px border · rotate 4°
always rotated. always border + colored text (no fill).
// tag-pill · tech / topic
solanarustswiftUIanchorsolana-pay
mono 11px · 1.5px ink border · 4×10 padding
always lowercase. always ink border (no color fills).
// hl · in-text highlight
four years of consumer crypto.
yellow underline at 65% from top · padding 0 6px
one per heading max. never combine with the handwritten accent.
// terminal · for code, logs, lede
$ whoami
matt — solana dev based in paris.
$ currently building
@nomu_stores — native iOS storefronts on solana.
$ cat manifesto.txt
iterating like a scientist, shipping like a degen.
06 / og · social

three cards, one system.

three OG templates depending on what you're sharing. all 1200×630, ink border, same wordmark anchor top-left.

template A · sticker hero
use for: home, intros, hello world
iterating like a scientist,
shipping like a degen.
gmgm.fr · solana dev · paris
HELLO, I'M
degen
template B · article
use for: blog posts, ship logs, writeups
mattdgn
/ ship-log · 014
▌ engineering
a checkout that doesn't
ask for your email.
gmgm.fr/posts/headless-checkout
apr 12 · 8 min read
template C · quote / shitpost
use for: tweets, opinions, one-liners
if it doesn't ship by friday it's not a feature, it's a vibe.
nomu
@mattdgn · gmgm.fr
// rules · ogv.04
  • · always 1200×630 (works everywhere)
  • · wordmark always present, never alone
  • · max 1 handwritten word per card
  • · headline ≤ 2 lines, weight 800
  • · no logos of clients, no badges
  • · no gradients, no drop shadows
  • · export PNG, ≤ 250kb
  • · file name: og-{template}-{slug}.png
07 / email signature

the daily handshake.

drop this at the bottom of every email from matt@gmgm.fr. don't add quotes, motivational lines, or socials beyond the three core.

live preview
nomu
mattdgn
solana dev · paris · founding @ @nomu_stores
// copy-paste — works in gmail, apple mail, outlook
<table cellpadding="0" cellspacing="0"> ... pfp + wordmark + role + 3 links ...</table>
07.5 / downloads

banners + signature. copy / paste / ship.

on-brand assets ready to drop into linkedin, x, and email. images generated dynamically — open the link or right-click to save.

LinkedIn banner

1584 × 396
LinkedIn banner
↓ download .png

X header

1500 × 500
X header
↓ download .png

GitHub README banner

1500 × 600
GitHub README banner
↓ download .png

email signature

copy-paste ready. works in gmail, apple mail, outlook. uses absolute urls so the pfp loads anywhere.

// preview · live render
matt
mattdgn
solana dev · founding @ @nomu_stores
gmgm.fr  ·  @mattdgn  ·  github
<table cellpadding="0" cellspacing="0" border="0" style="font-family: -apple-system, 'Segoe UI', Arial, sans-serif;">
  <tr>
    <td style="padding-right: 18px; vertical-align: top;">
      <img src="https://gmgm.fr/brand/pfp-nomu.png" width="64" height="64" alt="matt" style="border-radius: 50%; border: 2px solid #0a0a0a; display: block;" />
    </td>
    <td style="vertical-align: top; border-left: 2px solid #0a0a0a; padding-left: 18px;">
      <div style="font-family: 'Space Grotesk', -apple-system, sans-serif; font-weight: 800; font-size: 18px; color: #0a0a0a; letter-spacing: -0.02em; line-height: 1.1;">matt<span style="color:#e63329;">dgn</span></div>
      <div style="font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12px; color: #3a3530; margin-top: 4px; line-height: 1.5;">solana dev · founding @ <span style="color:#e63329;font-weight:700;">@nomu_stores</span></div>
      <div style="font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12px; color: #7a7468; margin-top: 12px;">
        <a href="https://gmgm.fr" style="color:#0a0a0a;text-decoration:none;border-bottom:1.5px solid #0a0a0a;">gmgm.fr</a>
        &nbsp;·&nbsp;
        <a href="https://x.com/mattdgn" style="color:#0a0a0a;text-decoration:none;border-bottom:1.5px solid #0a0a0a;">@mattdgn</a>
        &nbsp;·&nbsp;
        <a href="https://github.com/Mattdgn" style="color:#0a0a0a;text-decoration:none;border-bottom:1.5px solid #0a0a0a;">github</a>
      </div>
    </td>
  </tr>
</table>
08 / card

recto / verso. 85 × 55.

standard euro card size (85×55mm). front is identity. back is contact + NFC tag link. print on uncoated 350gsm.

front · 85 × 55 mm
mattdgn
solana dev · paris
back · 85 × 55 mm
HELLO, I'M
____
matt@gmgm.fr
gmgm.fr
x · @mattdgn
tap to scan ↗

NFC chip on the back links to gmgm.fr/card — a vCard download + 3 buttons (email, telegram, calendar).

09 / icons

phosphor. light weight.

the brand uses phosphor icons at regular weight — no fills, no duotone. 1.5px stroke matches our 2px borders without competing.

// rules · icons
set phosphor regular · stroke 1.5px · color always currentColor (ink)
sizes 16, 20, 24, 32, 48 — never in between
never emoji as icons, fill weight, duotone, or colored variants.
10 / imagery

screenshots wear a frame.

every product screenshot shown on the brand sits inside one of three frames: macOS window, iPhone bezel, or a plain ink border. no drop-shadows on the image itself.

app screenshot here
macOS · web apps
iPhone · mobile apps
flat shot
flat · diagrams
11 / code

syntax that matches.

code blocks on the blog use this theme. ink background. yellow keywords. red strings. orange numbers. comments at 50% white.

// solana program — minimal store anchor instruction
use anchor_lang::prelude::*;
 
#[program]
pub mod nomu_store {
  pub fn checkout(ctx: Context<Checkout>, qty: u64) -> Result<()> {
    // 11.2% conv lift since v2 · apr 2026
    msg!("shipped: {}", qty);
    Ok(())
  }
}
keyword
string
number / fn name
comment · 50%
identifier · plain
12 / states

loading. empty. error.

three UI states the brand ships everywhere. loading is a 3-dot mono pulse. empty is a single line of type with one action. error is red, blunt, and tells you what to do next.

// loading
loading
3 dots, 1.4s loop. no spinner.
// empty
nothing here yet.
one line + one action. that's it.
// error
that didn't ship.
wallet rejected the tx. check funds, try again. logs: err 0x4f.
13 / voice

write like you talk in DMs.

lowercase. direct. no corp-speak, no marketing slop. numbers when they exist. honesty when they don't.

/ how we sound

direct, lowercase, technical, dry-funny.

formalcasual
vaguespecific
polishedraw
seriousplayful
hypedunderstated
/ writing rules

seven habits, no exceptions.

  • · lowercase by default, except brand names + acronyms.
  • · numbers over adjectives. "11.2% lift" > "huge lift".
  • · show the work, not the wrapping.
  • · "ship" / "build" / "wrote" — verbs, not nouns.
  • · no buzzwords: synergy, leverage, ecosystem, journey.
  • · admit when something failed.
  • · one handwritten phrase per section. that's the budget.

examples

✓ on-brand

shipped checkout v2. 11.2% conversion lift, p95 -340ms.

✗ off-brand

We are thrilled to announce our revolutionary checkout experience.

✓ on-brand

matt — solana dev based in paris. currently building @nomu_stores. 4 yrs in consumer crypto.

✗ off-brand

Hi! I'm Matt, a passionate full-stack engineer on a mission to empower creators.

14 / rules

the short list. read it.

if you're about to do something that's not in here, ask. the brand stays consistent by being boring about its constants and creative about its content.

do · use lila as the dominant page color

the dot pattern is part of the surface. don't disable it on long pages.

don't · gradient anything

no background gradients. no text gradients. the brand is flat. two solid colors, hard edge.

do · keep the hand to one phrase per section

caveat is a punctuation mark, not a body face. one phrase per surface, max.

don't · stack three giant H1s on top of each other

one hero. one headline. reduce stacked weight before adding more lines.

do · stamp projects with status

always rotate the stamp 4°. always border-only, no fill. color matches state.

don't · invent new colors

if a state needs a new color, you're missing a state. reuse green, orange, or red.

do · borders are 2px solid ink

cards, buttons, stamps. 2px. ink. always. no 1px hairlines, no rounded shadows.

don't · add emoji as decoration

the sticker handles personality. emoji in headlines or labels are off-brand.