\9 \9 \9 \9 \9 \9 \9 ");width:10px;height:10px;margin:auto;position:absolute;top:0;bottom:0;left:0}body>.page main>section details summary+*{margin-top:20px}body>.page main>section details[open] summary:before{transform:rotate(90deg)}body>.page footer{color:var(--color-walnut);flex-direction:column;align-items:center;padding:0 40px 40px;display:flex}@media screen and (width<=1400px){body>.page footer hr{width:100%}body>.page footer hr:before,body>.page footer hr:after{width:calc(var(--page-edge-padding) + 40px);height:var(--border-thickness);background:currentColor;border:none}}body>.page footer nav{flex-wrap:wrap;justify-content:center;gap:8px 40px;margin-top:40px;display:flex}body>.page footer nav a{color:var(--color-walnut)}@media screen and (width<=900px){body>.page footer nav{max-width:500px}}@media screen and (width<=780px){body>.page footer nav{max-width:440px}}@media screen and (width<=400px){body>.page footer nav{gap:6px 20px}}body>.page footer span{text-align:center;margin-top:40px}:is(h1,h2,h3,h4,article>:first-child,details>summary)~:is(p,ul,ol,ol li p,img,a:has(>img:only-child)),:is(h1,h2,h3,h4,article>:first-child)~:is(ul,ol) li p+img,:is(h1,h2,h3,h4,p)~.feature-icons,p~:is(h1,h2,h3,h4,details summary,blockquote,.image-comparison,.video-background,.youtube-embed),.youtube-embed+:is(p,.link,.button),p+p>.button,p+:is(.link,section,details),table td p~p,img+.link,article{margin-top:20px}*{min-width:0;min-height:0}h1{font-feature-settings:"lnum";margin:0;font-family:Bona Nova,Palatino,serif;font-size:2.66667rem;font-weight:700;line-height:1.25;display:inline-block}h1~h2{margin-top:40px}h1~hr{margin-top:40px;margin-bottom:20px}h2,h3,h4,h5,h6{margin:0;font-family:Inter Variable,sans-serif;font-weight:800;line-height:1.5;display:inline-block}h2{font-size:1.77778rem;font-weight:700}h3{font-size:1.33333rem}h4,h5,h6{font-size:1rem}p{text-align:justify;text-justify:inter-character;-webkit-hyphens:auto;hyphens:auto;margin:0}p code{text-justify:auto}h1~img,h1~iframe,h1~a>img:only-child,h2~img,h2~iframe,h2~a>img:only-child,h3~img,h3~iframe,h3~a>img:only-child,h4~img,h4~iframe,h4~a>img:only-child,h5~img,h5~iframe,h5~a>img:only-child,h6~img,h6~iframe,h6~a>img:only-child,p~img,p~iframe,p~a>img:only-child{width:100%;height:auto}a{color:var(--color-crimson)}img{vertical-align:top}table{width:calc(100% + 40px);margin:20px -20px}table th,table td{vertical-align:top;border:20px solid #0000;margin:0;padding:0}table th:not(:first-child) img,table td:not(:first-child) img{max-width:100%}table th:empty{border:none}:is(h1,h2,h3,h4,h5,h6)+table{margin-top:0}ul,ol{margin:0}ul+p,ol+p{margin-top:0}ul li,ol li{margin-top:.5em}hr{color:unset}code{color:#000;background:var(--color-fog);overflow-wrap:anywhere;-webkit-hyphens:none;hyphens:none;padding:0 4px}a code{color:var(--color-crimson)}kbd{outline:calc(var(--border-thickness)/2)solid var(--color-navy);color:inherit;margin:0 4px;padding:0 8px;font-family:inherit}summary{cursor:pointer}hr{overflow:visible}hr,.ripple{width:calc(100% - 64px);height:var(--border-thickness);background:currentColor;border:none;margin:0 32px;position:relative}hr:before,.ripple:before{border-width:0 0 var(--border-thickness)40px;left:-40px}hr:after,.ripple:after{border-width:0 40px var(--border-thickness)0;right:-40px}hr:before,hr:after,.ripple:before,.ripple:after{content:"";border-style:solid;border-color:#0000 #0000 currentColor;width:0;height:0;display:block;position:absolute}.block{flex-direction:column;align-items:flex-start;width:100%;display:flex}.block.centered{align-items:center}:not(.diptych,.triptych)>.block+.block{margin-top:calc(120*var(--variable-px))}.link{font-size:var(--font-size-link);color:var(--color-crimson);white-space:nowrap;font-weight:800;text-decoration:none;display:inline-block}.link:not(.not-uppercase){text-transform:uppercase}.button{border:var(--border-thickness)solid currentColor;min-height:calc(var(--font-size-link)*2);font-size:var(--font-size-link);padding:0 var(--font-size-link);box-sizing:border-box;text-align:left;color:var(--color-crimson);font-weight:800;text-decoration:none;display:inline-block}.button:before{content:"";line-height:calc(var(--font-size-link)*2 - 2*var(--border-thickness))}.button img{height:calc(var(--font-size-link)*1.5);margin-right:calc(var(--font-size-link)/2)}.button img,.button span{vertical-align:middle}.arrow:after{content:" »";font-family:Inter Variable,sans-serif}.video-background{font-size:0;position:relative}.video-background video{max-width:min(100%,1280px)}.video-background:after{content:"";pointer-events:none;border:2px solid #fff;position:absolute;inset:0}.heart:after{content:"";vertical-align:baseline;background-image:url("data:image/svg+xml;utf8,\9 \9 \9 \9 ");width:.75em;height:.75em;margin-bottom:-.1em;margin-left:.25em;display:inline-block}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-cyrillic-ext-opsz-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-cyrillic-opsz-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-greek-ext-opsz-normal.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-greek-opsz-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-vietnamese-opsz-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-latin-ext-opsz-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-latin-opsz-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-cyrillic-ext-opsz-italic.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-cyrillic-opsz-italic.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-greek-ext-opsz-italic.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-greek-opsz-italic.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-vietnamese-opsz-italic.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-latin-ext-opsz-italic.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/fonts/files/inter-latin-opsz-italic.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bona Nova;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/files/bona-nova-cyrillic-ext-700-normal.woff2)format("woff2"),url(/fonts/files/bona-nova-cyrillic-ext-700-normal.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Bona Nova;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/files/bona-nova-cyrillic-700-normal.woff2)format("woff2"),url(/fonts/files/bona-nova-cyrillic-700-normal.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Bona Nova;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/files/bona-nova-greek-700-normal.woff2)format("woff2"),url(/fonts/files/bona-nova-greek-700-normal.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Bona Nova;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/files/bona-nova-hebrew-700-normal.woff2)format("woff2"),url(/fonts/files/bona-nova-hebrew-700-normal.woff)format("woff");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Bona Nova;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/files/bona-nova-vietnamese-700-normal.woff2)format("woff2"),url(/fonts/files/bona-nova-vietnamese-700-normal.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bona Nova;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/files/bona-nova-latin-ext-700-normal.woff2)format("woff2"),url(/fonts/files/bona-nova-latin-ext-700-normal.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bona Nova;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/files/bona-nova-latin-700-normal.woff2)format("woff2"),url(/fonts/files/bona-nova-latin-700-normal.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
Graphite community meetup in Germany By Keavon Chambers. September 19, 2025. To our European community: mark your calendars for the first official Graphite community meetup on Friday, October 10th, 2025 in Karlsruhe, Germany . Meet core members of the project team and make acquaintance with your fellow Graphite enthusiasts plus Rust developers, open source contributors, and FOSS digital content creation software users.
To ensure we are prepared with enough space and food, please RSVP as soon as possible and remember to return to update the registration if your plans change.
We are posting this early so you can plan your trip while we finalize the schedule and agenda. Check back here for updates in the coming weeks. We are planning to host a mix of short workshops, talks, open-ended design discussions, socializing, and show-and-tell demos (including a hands-on sneak peek of the upcoming desktop app). Get in touch if you would like to present a talk or demo of how you've been using Graphite. Likely ranging from ~16:00 until 22:00, the schedule will be broken into both afternoon and evening sessions to accommodate options for earlier availability and later arrivals, with more "unconference" style plans in the afternoon and structured "meetup" style events in the evening. You are invited to attend all sessions or drop in for the later parts as your schedule and travel plans allow.
In attendance will be:
Keavon Chambers, Graphite founder, designer, and project lead Dennis Kobert, technical lead and core maintainer Timon Schelling, developer of the Graphite desktop app Sebastian Sydow, contributor to Graphite's GPU infrastructure and Rust GPU maintainer We look forward to seeing you there.