remove unecessary files
|
|
@ -147,7 +147,7 @@ Here is the code to optimize:
|
|||
if dependency_code:
|
||||
user_prompt = f"Dependencies (read-only):\n```java\n{dependency_code}\n```\n\n{user_prompt}"
|
||||
|
||||
obs_context: dict[str, object] = {}
|
||||
obs_context: dict = {}
|
||||
if call_sequence is not None:
|
||||
obs_context["call_sequence"] = call_sequence
|
||||
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ Here is the code to optimize:
|
|||
if dependency_code:
|
||||
user_prompt = f"Dependencies (read-only):\n```{code_block_tag}\n{dependency_code}\n```\n\n{user_prompt}"
|
||||
|
||||
obs_context: dict[str, object] = {}
|
||||
obs_context: dict = {}
|
||||
if call_sequence is not None:
|
||||
obs_context["call_sequence"] = call_sequence
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ class BaseOptimizerContext:
|
|||
code = self.extracted_code_and_expl.code
|
||||
return code is not None and code.strip() != ""
|
||||
|
||||
def validate_and_parse_source_code(self, code: str, feature_version: tuple[int, int]) -> None:
|
||||
def validate_and_parse_source_code(self, code: str, feature_version: tuple) -> None:
|
||||
final_code = code or self.source_code
|
||||
parsed = ast.parse(final_code, feature_version=feature_version)
|
||||
if not parsed.body:
|
||||
|
|
@ -175,7 +175,7 @@ class SingleOptimizerContext(BaseOptimizerContext):
|
|||
def is_valid_code(self) -> bool:
|
||||
return super().is_valid_code()
|
||||
|
||||
def validate_and_parse_source_code(self, code: str, feature_version: tuple[int, int]) -> None:
|
||||
def validate_and_parse_source_code(self, code: str, feature_version: tuple) -> None:
|
||||
compile(self.source_code, "source_code", "exec")
|
||||
super().validate_and_parse_source_code(self.source_code, feature_version)
|
||||
|
||||
|
|
@ -240,7 +240,7 @@ class MultiOptimizerContext(BaseOptimizerContext):
|
|||
index_of_end_of_patch = content.rfind(patch_end_marker)
|
||||
explanation = content[index_of_end_of_patch + len(patch_end_marker) :].strip()
|
||||
elif self.diff_method == DiffMethod.SEARCH_AND_REPLACE:
|
||||
diff = SearchAndReplaceDiff(content=content, source_code=self.original_file_to_code)
|
||||
diff: Diff = SearchAndReplaceDiff(content=content, source_code=self.original_file_to_code)
|
||||
new_file_to_code = diff.run()
|
||||
index_of_end_of_patch = content.rfind("</replace_in_file>")
|
||||
explanation = content[index_of_end_of_patch + len("</replace_in_file>") :].strip()
|
||||
|
|
@ -353,7 +353,7 @@ class MultiOptimizerContext(BaseOptimizerContext):
|
|||
|
||||
return super().is_valid_code()
|
||||
|
||||
def validate_and_parse_source_code(self, code: str, feature_version: tuple[int, int]) -> None:
|
||||
def validate_and_parse_source_code(self, code: str, feature_version: tuple) -> None:
|
||||
final_code = code or self.source_code
|
||||
code_blocks = split_markdown_code(final_code).values()
|
||||
for code_block in code_blocks:
|
||||
|
|
|
|||
|
|
@ -1,222 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2880 2880" width="2880" height="2880">
|
||||
<!-- 8' x 8' backdrop at 360 DPI equivalent (30" = 360px per foot) -->
|
||||
<defs>
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
.sans { font-family: 'Inter', -apple-system, sans-serif; }
|
||||
</style>
|
||||
<!-- Subtle grid pattern for background texture -->
|
||||
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
|
||||
<rect width="40" height="40" fill="none"/>
|
||||
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#141414" stroke-width="0.5"/>
|
||||
</pattern>
|
||||
<!-- Glow effect for accent elements -->
|
||||
<filter id="glow">
|
||||
<feGaussianBlur stdDeviation="8" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter id="glow-strong">
|
||||
<feGaussianBlur stdDeviation="20" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<!-- Gradient for bottom fade -->
|
||||
<linearGradient id="bottomFade" x1="0" y1="0.7" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="#0a0a0a" stop-opacity="0"/>
|
||||
<stop offset="100%" stop-color="#0a0a0a" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="2880" height="2880" fill="#0a0a0a"/>
|
||||
<rect width="2880" height="2880" fill="url(#grid)" opacity="0.4"/>
|
||||
|
||||
<!-- Decorative accent line at top -->
|
||||
<rect x="0" y="0" width="2880" height="4" fill="#d4ff00" opacity="0.8"/>
|
||||
|
||||
<!-- ============ TOP ZONE: Logo + Tagline ============ -->
|
||||
|
||||
<!-- Logo -->
|
||||
<text x="1440" y="260" text-anchor="middle" class="mono" fill="#d4ff00" font-size="42" font-weight="700" letter-spacing="2">
|
||||
<tspan fill="#d4ff00">◇</tspan>
|
||||
</text>
|
||||
<text x="1440" y="320" text-anchor="middle" class="mono" fill="#f2f2f2" font-size="52" font-weight="600" letter-spacing="-0.5">
|
||||
codeflash
|
||||
</text>
|
||||
|
||||
<!-- Tagline -->
|
||||
<text x="1440" y="395" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="28" font-weight="400" letter-spacing="6" text-transform="uppercase">
|
||||
THE AUTONOMOUS PERFORMANCE ENGINEER
|
||||
</text>
|
||||
|
||||
<!-- Separator line -->
|
||||
<line x1="1240" y1="440" x2="1640" y2="440" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- ============ MIDDLE ZONE: Hero Headline ============ -->
|
||||
|
||||
<!-- "Cut your infra bill by" -->
|
||||
<text x="1440" y="660" text-anchor="middle" class="sans" fill="#f2f2f2" font-size="108" font-weight="600" letter-spacing="-3">
|
||||
Cut your infra bill by
|
||||
</text>
|
||||
|
||||
<!-- "90%" — THE BIG NUMBER -->
|
||||
<text x="1440" y="920" text-anchor="middle" class="sans" fill="#d4ff00" font-size="340" font-weight="700" letter-spacing="-15" filter="url(#glow)">
|
||||
90%
|
||||
</text>
|
||||
|
||||
<!-- "Then keep it there." -->
|
||||
<text x="1440" y="1050" text-anchor="middle" class="sans" fill="#a8a8a8" font-size="72" font-weight="500" letter-spacing="-1">
|
||||
Then keep it there.
|
||||
</text>
|
||||
|
||||
<!-- ============ TERMINAL MOCK ============ -->
|
||||
|
||||
<!-- Terminal window -->
|
||||
<rect x="540" y="1180" width="1800" height="520" rx="12" fill="#121212" stroke="#242424" stroke-width="2"/>
|
||||
|
||||
<!-- Terminal title bar -->
|
||||
<rect x="540" y="1180" width="1800" height="48" rx="12" fill="#161616"/>
|
||||
<rect x="540" y="1216" width="1800" height="12" fill="#161616"/>
|
||||
<!-- Dots -->
|
||||
<circle cx="575" cy="1204" r="7" fill="#333"/>
|
||||
<circle cx="598" cy="1204" r="7" fill="#333"/>
|
||||
<circle cx="621" cy="1204" r="7" fill="#333"/>
|
||||
<text x="670" y="1211" class="mono" fill="#6a6a6a" font-size="18">codeflash-agent · run #284 · unstructured-io/core</text>
|
||||
|
||||
<!-- Terminal content -->
|
||||
<text x="590" y="1280" class="mono" fill="#6a6a6a" font-size="24">// exploring unstructured-io/core</text>
|
||||
|
||||
<text x="590" y="1320" class="mono" font-size="24">
|
||||
<tspan fill="#d4ff00">▸</tspan>
|
||||
<tspan fill="#a8a8a8"> profiling </tspan>
|
||||
<tspan fill="#f2f2f2">pdf_extract.py</tspan>
|
||||
</text>
|
||||
|
||||
<text x="590" y="1360" class="mono" font-size="24">
|
||||
<tspan fill="#d4ff00">▸</tspan>
|
||||
<tspan fill="#a8a8a8"> found: </tspan>
|
||||
<tspan fill="#f2f2f2">_patch_current_chars</tspan>
|
||||
</text>
|
||||
|
||||
<text x="630" y="1400" class="mono" fill="#6a6a6a" font-size="24">O(N²) scan per operator</text>
|
||||
|
||||
<text x="590" y="1440" class="mono" font-size="24">
|
||||
<tspan fill="#d4ff00">▸</tspan>
|
||||
<tspan fill="#a8a8a8"> hypothesis 1/10: single-pass rewrite</tspan>
|
||||
</text>
|
||||
|
||||
<text x="590" y="1480" class="mono" font-size="24">
|
||||
<tspan fill="#d4ff00">▸</tspan>
|
||||
<tspan fill="#a8a8a8"> generating tests... </tspan>
|
||||
<tspan fill="#6a6a6a">ok (42)</tspan>
|
||||
</text>
|
||||
|
||||
<text x="590" y="1520" class="mono" font-size="24">
|
||||
<tspan fill="#d4ff00">▸</tspan>
|
||||
<tspan fill="#a8a8a8"> benchmark: </tspan>
|
||||
<tspan fill="#d4ff00" font-weight="700" font-size="28">14.08× faster</tspan>
|
||||
</text>
|
||||
|
||||
<text x="590" y="1560" class="mono" font-size="24">
|
||||
<tspan fill="#d4ff00">▸</tspan>
|
||||
<tspan fill="#a8a8a8"> verifying correctness... </tspan>
|
||||
<tspan fill="#6a6a6a">ok</tspan>
|
||||
</text>
|
||||
|
||||
<text x="590" y="1600" class="mono" font-size="24">
|
||||
<tspan fill="#d4ff00">▸</tspan>
|
||||
<tspan fill="#a8a8a8"> opening PR </tspan>
|
||||
<tspan fill="#f2f2f2">#443</tspan>
|
||||
<tspan fill="#a8a8a8"> → review</tspan>
|
||||
</text>
|
||||
|
||||
<text x="590" y="1660" class="mono" fill="#6a6a6a" font-size="24">// next bottleneck detected</text>
|
||||
|
||||
<!-- ============ CUSTOMER PROOF STRIP ============ -->
|
||||
|
||||
<!-- Separator -->
|
||||
<line x1="340" y1="1800" x2="2540" y2="1800" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- Crag Wolfe quote -->
|
||||
<text x="1440" y="1880" text-anchor="middle" class="sans" fill="#f2f2f2" font-size="40" font-weight="500" font-style="italic" letter-spacing="-0.5">
|
||||
"Codeflash is the team of performance engineers
|
||||
</text>
|
||||
<text x="1440" y="1935" text-anchor="middle" class="sans" fill="#f2f2f2" font-size="40" font-weight="500" font-style="italic" letter-spacing="-0.5">
|
||||
that we don't have."
|
||||
</text>
|
||||
<text x="1440" y="1990" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="22" letter-spacing="2">
|
||||
CRAG WOLFE · CHIEF ARCHITECT, UNSTRUCTURED
|
||||
</text>
|
||||
|
||||
<!-- ============ STATS ROW ============ -->
|
||||
|
||||
<!-- Stats grid background -->
|
||||
<rect x="340" y="2060" width="2200" height="160" rx="8" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- Stat dividers -->
|
||||
<line x1="890" y1="2080" x2="890" y2="2200" stroke="#242424" stroke-width="1"/>
|
||||
<line x1="1440" y1="2080" x2="1440" y2="2200" stroke="#242424" stroke-width="1"/>
|
||||
<line x1="1990" y1="2080" x2="1990" y2="2200" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- Stat 1: 90% -->
|
||||
<text x="615" y="2145" text-anchor="middle" class="sans" fill="#d4ff00" font-size="56" font-weight="700">90%</text>
|
||||
<text x="615" y="2185" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="16" letter-spacing="2">COST CUT</text>
|
||||
|
||||
<!-- Stat 2: 13.7x -->
|
||||
<text x="1165" y="2145" text-anchor="middle" class="sans" fill="#d4ff00" font-size="56" font-weight="700">13.7×</text>
|
||||
<text x="1165" y="2185" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="16" letter-spacing="2">FASTER (VLLM)</text>
|
||||
|
||||
<!-- Stat 3: 34% -->
|
||||
<text x="1715" y="2145" text-anchor="middle" class="sans" fill="#d4ff00" font-size="56" font-weight="700">34%</text>
|
||||
<text x="1715" y="2185" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="16" letter-spacing="2">PYDANTIC SPEEDUP</text>
|
||||
|
||||
<!-- Stat 4: 0 -->
|
||||
<text x="2265" y="2145" text-anchor="middle" class="sans" fill="#d4ff00" font-size="56" font-weight="700">0</text>
|
||||
<text x="2265" y="2185" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="16" letter-spacing="2">REGRESSIONS</text>
|
||||
|
||||
<!-- ============ TRUST STRIP ============ -->
|
||||
|
||||
<!-- Gartner badge -->
|
||||
<rect x="920" y="2310" width="420" height="44" rx="6" fill="none" stroke="#8aa800" stroke-width="1.5"/>
|
||||
<text x="1130" y="2340" text-anchor="middle" class="mono" fill="#d4ff00" font-size="18" font-weight="600" letter-spacing="2">
|
||||
★ GARTNER COOL VENDOR 2025
|
||||
</text>
|
||||
|
||||
<!-- SOC 2 badge -->
|
||||
<rect x="1380" y="2310" width="280" height="44" rx="6" fill="none" stroke="#383838" stroke-width="1.5"/>
|
||||
<text x="1520" y="2340" text-anchor="middle" class="mono" fill="#a8a8a8" font-size="18" font-weight="500" letter-spacing="2">
|
||||
SOC 2 TYPE 2
|
||||
</text>
|
||||
|
||||
<!-- Customer logos row -->
|
||||
<text x="1440" y="2430" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="18" letter-spacing="3">
|
||||
TRUSTED BY
|
||||
</text>
|
||||
|
||||
<text x="1440" y="2480" text-anchor="middle" class="mono" fill="#a8a8a8" font-size="26" font-weight="500" letter-spacing="4">
|
||||
UNSTRUCTURED · ROBOFLOW · PYDANTIC · HUGGING FACE · VLLM
|
||||
</text>
|
||||
|
||||
<!-- ============ BOTTOM: URL + CTA ============ -->
|
||||
|
||||
<!-- Separator -->
|
||||
<line x1="340" y1="2560" x2="2540" y2="2560" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- CTA -->
|
||||
<text x="1440" y="2640" text-anchor="middle" class="mono" fill="#d4ff00" font-size="36" font-weight="600" letter-spacing="1">
|
||||
pip install codeflash
|
||||
</text>
|
||||
|
||||
<text x="1440" y="2700" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="22" letter-spacing="4">
|
||||
FREE FOR OPEN SOURCE · CODEFLASH.AI
|
||||
</text>
|
||||
|
||||
<!-- Bottom accent line -->
|
||||
<rect x="0" y="2876" width="2880" height="4" fill="#d4ff00" opacity="0.8"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 9.4 KiB |
|
|
@ -1,167 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1005 2400" width="1005" height="2400">
|
||||
<!-- 33.5" x 80" retractable banner at 300 DPI = 10050 x 24000 px -->
|
||||
<!-- Working at 1/10 scale for manageability, output at 300dpi -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
.sans { font-family: 'Inter', -apple-system, sans-serif; }
|
||||
</style>
|
||||
<linearGradient id="accentFade" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="#d4ff00" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="#d4ff00" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1005" height="2400" fill="#0a0a0a"/>
|
||||
|
||||
<!-- Top accent bar -->
|
||||
<rect x="0" y="0" width="1005" height="3" fill="#d4ff00"/>
|
||||
|
||||
<!-- ============ HEADER ============ -->
|
||||
|
||||
<!-- Section label -->
|
||||
<text x="80" y="100" class="mono" fill="#6a6a6a" font-size="16" letter-spacing="4">/ CASE STUDY</text>
|
||||
|
||||
<!-- Customer name -->
|
||||
<text x="80" y="165" class="sans" fill="#f2f2f2" font-size="48" font-weight="600" letter-spacing="-1">Unstructured</text>
|
||||
|
||||
<!-- Description -->
|
||||
<text x="80" y="210" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="1">DOCUMENT PROCESSING FOR LLM & RAG PIPELINES</text>
|
||||
|
||||
<!-- Separator -->
|
||||
<line x1="80" y1="240" x2="925" y2="240" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- ============ THE BIG HEADLINE ============ -->
|
||||
|
||||
<text x="80" y="340" class="sans" fill="#f2f2f2" font-size="62" font-weight="700" letter-spacing="-2">
|
||||
90% infra
|
||||
</text>
|
||||
<text x="80" y="415" class="sans" fill="#f2f2f2" font-size="62" font-weight="700" letter-spacing="-2">
|
||||
cost cut.
|
||||
</text>
|
||||
<text x="80" y="490" class="sans" fill="#a8a8a8" font-size="42" font-weight="500" letter-spacing="-1">
|
||||
Zero regressions.
|
||||
</text>
|
||||
|
||||
<!-- ============ STATS STACK ============ -->
|
||||
|
||||
<!-- Stat 1 -->
|
||||
<rect x="80" y="560" width="845" height="130" rx="6" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="120" y="620" class="sans" fill="#d4ff00" font-size="64" font-weight="700">$10K</text>
|
||||
<text x="380" y="615" class="sans" fill="#6a6a6a" font-size="40" font-weight="400">→</text>
|
||||
<text x="440" y="620" class="sans" fill="#d4ff00" font-size="64" font-weight="700">$1.1K</text>
|
||||
<text x="730" y="620" class="mono" fill="#6a6a6a" font-size="18">/mo</text>
|
||||
<text x="120" y="665" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="2">MONTHLY INFRASTRUCTURE COST</text>
|
||||
|
||||
<!-- Stat 2 -->
|
||||
<rect x="80" y="710" width="410" height="110" rx="6" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="120" y="775" class="sans" fill="#d4ff00" font-size="56" font-weight="700">9.2×</text>
|
||||
<text x="120" y="800" class="mono" fill="#6a6a6a" font-size="13" letter-spacing="2">POD DENSITY</text>
|
||||
|
||||
<!-- Stat 3 -->
|
||||
<rect x="510" y="710" width="415" height="110" rx="6" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="550" y="775" class="sans" fill="#d4ff00" font-size="56" font-weight="700">24</text>
|
||||
<text x="550" y="800" class="mono" fill="#6a6a6a" font-size="13" letter-spacing="2">PRS MERGED</text>
|
||||
|
||||
<!-- Stat 4 -->
|
||||
<rect x="80" y="840" width="410" height="110" rx="6" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="120" y="905" class="sans" fill="#d4ff00" font-size="56" font-weight="700">354</text>
|
||||
<text x="120" y="930" class="mono" fill="#6a6a6a" font-size="13" letter-spacing="2">TESTS GREEN</text>
|
||||
|
||||
<!-- Stat 5 -->
|
||||
<rect x="510" y="840" width="415" height="110" rx="6" fill="#121212" stroke="#d4ff00" stroke-width="2"/>
|
||||
<text x="550" y="905" class="sans" fill="#d4ff00" font-size="56" font-weight="700">0</text>
|
||||
<text x="550" y="930" class="mono" fill="#d4ff00" font-size="13" letter-spacing="2">REGRESSIONS</text>
|
||||
|
||||
<!-- ============ WHAT THEY FOUND ============ -->
|
||||
|
||||
<text x="80" y="1040" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="4">/ WHAT THE AGENT FOUND</text>
|
||||
|
||||
<!-- Bottleneck 1 -->
|
||||
<text x="80" y="1090" class="mono" fill="#d4ff00" font-size="16">01</text>
|
||||
<text x="120" y="1090" class="sans" fill="#f2f2f2" font-size="18" font-weight="600">os.cpu_count() was lying</text>
|
||||
<text x="120" y="1115" class="mono" fill="#6a6a6a" font-size="13">Returned 48 on a 1-CPU pod. 4× memory waste.</text>
|
||||
|
||||
<!-- Bottleneck 2 -->
|
||||
<text x="80" y="1160" class="mono" fill="#d4ff00" font-size="16">02</text>
|
||||
<text x="120" y="1160" class="sans" fill="#f2f2f2" font-size="18" font-weight="600">24MB memory creep per request</text>
|
||||
<text x="120" y="1185" class="mono" fill="#6a6a6a" font-size="13">Hidden in PIL preprocessing baseline noise.</text>
|
||||
|
||||
<!-- Bottleneck 3 -->
|
||||
<text x="80" y="1230" class="mono" fill="#d4ff00" font-size="16">03</text>
|
||||
<text x="120" y="1230" class="sans" fill="#f2f2f2" font-size="18" font-weight="600">O(N²) hotspot → 14× faster</text>
|
||||
<text x="120" y="1255" class="mono" fill="#6a6a6a" font-size="13">Single-pass rewrite of _patch_current_chars.</text>
|
||||
|
||||
<!-- Bottleneck 4 -->
|
||||
<text x="80" y="1300" class="mono" fill="#d4ff00" font-size="16">04</text>
|
||||
<text x="120" y="1300" class="sans" fill="#f2f2f2" font-size="18" font-weight="600">3 redundant PNG round-trips</text>
|
||||
<text x="120" y="1325" class="mono" fill="#6a6a6a" font-size="13">Switched to BMP. Removed dead CPU work.</text>
|
||||
|
||||
<!-- ============ QUOTE ============ -->
|
||||
|
||||
<line x1="80" y1="1390" x2="925" y2="1390" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- Quote accent bar -->
|
||||
<rect x="80" y="1420" width="3" height="160" fill="#d4ff00"/>
|
||||
|
||||
<text x="108" y="1455" class="sans" fill="#f2f2f2" font-size="22" font-weight="500" font-style="italic">
|
||||
"Codeflash is the team of
|
||||
</text>
|
||||
<text x="108" y="1490" class="sans" fill="#f2f2f2" font-size="22" font-weight="500" font-style="italic">
|
||||
performance engineers that
|
||||
</text>
|
||||
<text x="108" y="1525" class="sans" fill="#f2f2f2" font-size="22" font-weight="500" font-style="italic">
|
||||
we don't have."
|
||||
</text>
|
||||
<text x="108" y="1570" class="mono" fill="#6a6a6a" font-size="12" letter-spacing="2">
|
||||
CRAG WOLFE · CHIEF ARCHITECT
|
||||
</text>
|
||||
|
||||
<!-- ============ MORE RESULTS ============ -->
|
||||
|
||||
<line x1="80" y1="1630" x2="925" y2="1630" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<text x="80" y="1680" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="4">/ MORE RESULTS</text>
|
||||
|
||||
<!-- Mini result cards -->
|
||||
<rect x="80" y="1710" width="845" height="70" rx="4" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="110" y="1745" class="mono" fill="#d4ff00" font-size="14" font-weight="600">VLLM</text>
|
||||
<text x="220" y="1745" class="sans" fill="#f2f2f2" font-size="18" font-weight="600">13.7× faster token decoding</text>
|
||||
<text x="110" y="1768" class="mono" fill="#6a6a6a" font-size="12">Merged upstream · PR #20413</text>
|
||||
|
||||
<rect x="80" y="1795" width="845" height="70" rx="4" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="110" y="1830" class="mono" fill="#d4ff00" font-size="14" font-weight="600">HF DIFFUSERS</text>
|
||||
<text x="310" y="1830" class="sans" fill="#f2f2f2" font-size="18" font-weight="600">9× faster WAN encoding</text>
|
||||
<text x="110" y="1853" class="mono" fill="#6a6a6a" font-size="12">Merged upstream · PR #11665</text>
|
||||
|
||||
<rect x="80" y="1880" width="845" height="70" rx="4" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="110" y="1915" class="mono" fill="#d4ff00" font-size="14" font-weight="600">PYDANTIC</text>
|
||||
<text x="265" y="1915" class="sans" fill="#f2f2f2" font-size="18" font-weight="600">34% speedup · 16 PRs · 0 regressions</text>
|
||||
<text x="110" y="1938" class="mono" fill="#6a6a6a" font-size="12">Merged upstream · Zero regressions</text>
|
||||
|
||||
<rect x="80" y="1965" width="845" height="70" rx="4" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="110" y="2000" class="mono" fill="#d4ff00" font-size="14" font-weight="600">ROBOFLOW</text>
|
||||
<text x="280" y="2000" class="sans" fill="#f2f2f2" font-size="18" font-weight="600">25% faster object detection</text>
|
||||
<text x="110" y="2023" class="mono" fill="#6a6a6a" font-size="12">80fps → 100fps · YOLOv8 on GPU</text>
|
||||
|
||||
<rect x="80" y="2050" width="845" height="70" rx="4" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="110" y="2085" class="mono" fill="#d4ff00" font-size="14" font-weight="600">ALBUMENTATIONS</text>
|
||||
<text x="350" y="2085" class="sans" fill="#f2f2f2" font-size="18" font-weight="600">2–55× faster · 10+ PRs in 1 week</text>
|
||||
<text x="110" y="2108" class="mono" fill="#6a6a6a" font-size="12">Now in GitHub Actions · Image augmentation</text>
|
||||
|
||||
<!-- ============ BOTTOM: QR + CTA ============ -->
|
||||
|
||||
<line x1="80" y1="2180" x2="925" y2="2180" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- QR placeholder -->
|
||||
<rect x="80" y="2220" width="120" height="120" rx="4" fill="#161616" stroke="#383838" stroke-width="1"/>
|
||||
<text x="140" y="2290" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="10">QR</text>
|
||||
|
||||
<!-- CTA text -->
|
||||
<text x="230" y="2268" class="sans" fill="#f2f2f2" font-size="24" font-weight="600">Read the full case study</text>
|
||||
<text x="230" y="2300" class="mono" fill="#d4ff00" font-size="16" letter-spacing="1">codeflash.ai/case-studies/unstructured</text>
|
||||
|
||||
<!-- Bottom accent bar -->
|
||||
<rect x="0" y="2397" width="1005" height="3" fill="#d4ff00"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 9.2 KiB |
|
|
@ -1,162 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1005 2400" width="1005" height="2400">
|
||||
<!-- 33.5" x 80" retractable banner — Right side: "How it works" + Product -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
.sans { font-family: 'Inter', -apple-system, sans-serif; }
|
||||
</style>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1005" height="2400" fill="#0a0a0a"/>
|
||||
|
||||
<!-- Top accent bar -->
|
||||
<rect x="0" y="0" width="1005" height="3" fill="#d4ff00"/>
|
||||
|
||||
<!-- ============ HEADER ============ -->
|
||||
|
||||
<text x="80" y="100" class="mono" fill="#6a6a6a" font-size="16" letter-spacing="4">/ HOW IT WORKS</text>
|
||||
|
||||
<text x="80" y="165" class="sans" fill="#f2f2f2" font-size="44" font-weight="600" letter-spacing="-1">Profile. Rewrite.</text>
|
||||
<text x="80" y="220" class="sans" fill="#f2f2f2" font-size="44" font-weight="600" letter-spacing="-1">Verify. Ship.</text>
|
||||
|
||||
<line x1="80" y1="260" x2="925" y2="260" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- ============ 4-STEP FLOW ============ -->
|
||||
|
||||
<!-- Step 01 -->
|
||||
<text x="80" y="330" class="mono" fill="#d4ff00" font-size="48" font-weight="700">01</text>
|
||||
<text x="80" y="365" class="sans" fill="#f2f2f2" font-size="26" font-weight="600">Profile</text>
|
||||
<text x="80" y="395" class="sans" fill="#a8a8a8" font-size="17">Agent finds hotspots by wall time,</text>
|
||||
<text x="80" y="420" class="sans" fill="#a8a8a8" font-size="17">memory, and allocation count.</text>
|
||||
|
||||
<!-- Connector -->
|
||||
<line x1="100" y1="445" x2="100" y2="475" stroke="#d4ff00" stroke-width="2" stroke-dasharray="4,4"/>
|
||||
|
||||
<!-- Step 02 -->
|
||||
<text x="80" y="520" class="mono" fill="#d4ff00" font-size="48" font-weight="700">02</text>
|
||||
<text x="80" y="555" class="sans" fill="#f2f2f2" font-size="26" font-weight="600">Rewrite</text>
|
||||
<text x="80" y="585" class="sans" fill="#a8a8a8" font-size="17">Generates optimized candidates.</text>
|
||||
<text x="80" y="610" class="sans" fill="#a8a8a8" font-size="17">Not just tweaks — full algorithmic</text>
|
||||
<text x="80" y="635" class="sans" fill="#a8a8a8" font-size="17">restructuring when warranted.</text>
|
||||
|
||||
<!-- Connector -->
|
||||
<line x1="100" y1="660" x2="100" y2="690" stroke="#d4ff00" stroke-width="2" stroke-dasharray="4,4"/>
|
||||
|
||||
<!-- Step 03 -->
|
||||
<text x="80" y="735" class="mono" fill="#d4ff00" font-size="48" font-weight="700">03</text>
|
||||
<text x="80" y="770" class="sans" fill="#f2f2f2" font-size="26" font-weight="600">Verify</text>
|
||||
<text x="80" y="800" class="sans" fill="#a8a8a8" font-size="17">Your tests + auto-generated</text>
|
||||
<text x="80" y="825" class="sans" fill="#a8a8a8" font-size="17">regression tests. Benchmarked</text>
|
||||
<text x="80" y="850" class="sans" fill="#a8a8a8" font-size="17">on isolated hardware.</text>
|
||||
|
||||
<!-- Connector -->
|
||||
<line x1="100" y1="875" x2="100" y2="905" stroke="#d4ff00" stroke-width="2" stroke-dasharray="4,4"/>
|
||||
|
||||
<!-- Step 04 -->
|
||||
<text x="80" y="950" class="mono" fill="#d4ff00" font-size="48" font-weight="700">04</text>
|
||||
<text x="80" y="985" class="sans" fill="#f2f2f2" font-size="26" font-weight="600">Ship</text>
|
||||
<text x="80" y="1015" class="sans" fill="#a8a8a8" font-size="17">Merge-ready PR with before/after</text>
|
||||
<text x="80" y="1040" class="sans" fill="#a8a8a8" font-size="17">benchmarks. Your team reviews.</text>
|
||||
<text x="80" y="1065" class="sans" fill="#a8a8a8" font-size="17">Nothing merges without sign-off.</text>
|
||||
|
||||
<!-- ============ INTEGRATIONS ============ -->
|
||||
|
||||
<line x1="80" y1="1120" x2="925" y2="1120" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<text x="80" y="1170" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="4">/ WORKS WITH</text>
|
||||
|
||||
<!-- Integration badges -->
|
||||
<rect x="80" y="1195" width="180" height="44" rx="6" fill="#121212" stroke="#383838" stroke-width="1"/>
|
||||
<text x="170" y="1224" text-anchor="middle" class="mono" fill="#f2f2f2" font-size="15" font-weight="500">Claude Code</text>
|
||||
|
||||
<rect x="280" y="1195" width="140" height="44" rx="6" fill="#121212" stroke="#383838" stroke-width="1"/>
|
||||
<text x="350" y="1224" text-anchor="middle" class="mono" fill="#f2f2f2" font-size="15" font-weight="500">Cursor</text>
|
||||
|
||||
<rect x="440" y="1195" width="180" height="44" rx="6" fill="#121212" stroke="#383838" stroke-width="1"/>
|
||||
<text x="530" y="1224" text-anchor="middle" class="mono" fill="#f2f2f2" font-size="15" font-weight="500">GitHub PRs</text>
|
||||
|
||||
<rect x="640" y="1195" width="100" height="44" rx="6" fill="#121212" stroke="#383838" stroke-width="1"/>
|
||||
<text x="690" y="1224" text-anchor="middle" class="mono" fill="#f2f2f2" font-size="15" font-weight="500">CI</text>
|
||||
|
||||
<!-- ============ THE HOOK: AI Code Quality ============ -->
|
||||
|
||||
<line x1="80" y1="1290" x2="925" y2="1290" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- Attention-grabbing stat -->
|
||||
<rect x="80" y="1320" width="845" height="220" rx="8" fill="#121212" stroke="#d4ff00" stroke-width="2"/>
|
||||
|
||||
<text x="502" y="1380" text-anchor="middle" class="mono" fill="#d4ff00" font-size="16" letter-spacing="4">DID YOU KNOW?</text>
|
||||
|
||||
<text x="502" y="1440" text-anchor="middle" class="sans" fill="#f2f2f2" font-size="32" font-weight="700" letter-spacing="-1">
|
||||
118 functions.
|
||||
</text>
|
||||
<text x="502" y="1485" text-anchor="middle" class="sans" fill="#f2f2f2" font-size="32" font-weight="700" letter-spacing="-1">
|
||||
Up to 446× slower.
|
||||
</text>
|
||||
<text x="502" y="1520" text-anchor="middle" class="sans" fill="#a8a8a8" font-size="17">
|
||||
Found in just two AI-written PRs.
|
||||
</text>
|
||||
|
||||
<!-- ============ PRICING ============ -->
|
||||
|
||||
<line x1="80" y1="1600" x2="925" y2="1600" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<text x="80" y="1650" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="4">/ PRICING</text>
|
||||
|
||||
<!-- Free tier -->
|
||||
<rect x="80" y="1680" width="400" height="200" rx="6" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="110" y="1720" class="mono" fill="#d4ff00" font-size="14" letter-spacing="3">FREE</text>
|
||||
<text x="110" y="1760" class="sans" fill="#f2f2f2" font-size="36" font-weight="700">$0</text>
|
||||
<text x="110" y="1795" class="sans" fill="#a8a8a8" font-size="15">Public GitHub projects</text>
|
||||
<text x="110" y="1820" class="sans" fill="#a8a8a8" font-size="15">25 optimizations / mo</text>
|
||||
<text x="110" y="1845" class="sans" fill="#a8a8a8" font-size="15">Claude Code + Cursor</text>
|
||||
<text x="110" y="1870" class="mono" fill="#6a6a6a" font-size="12">Perfect for open source</text>
|
||||
|
||||
<!-- Pro tier -->
|
||||
<rect x="505" y="1680" width="420" height="200" rx="6" fill="#121212" stroke="#d4ff00" stroke-width="2"/>
|
||||
<text x="535" y="1720" class="mono" fill="#d4ff00" font-size="14" letter-spacing="3">PRO</text>
|
||||
<text x="535" y="1760" class="sans" fill="#f2f2f2" font-size="36" font-weight="700">$20<tspan font-size="18" fill="#6a6a6a" font-weight="400"> /user/mo</tspan></text>
|
||||
<text x="535" y="1795" class="sans" fill="#a8a8a8" font-size="15">Private repos</text>
|
||||
<text x="535" y="1820" class="sans" fill="#a8a8a8" font-size="15">500 optimizations / mo</text>
|
||||
<text x="535" y="1845" class="sans" fill="#a8a8a8" font-size="15">Dashboard + analytics</text>
|
||||
<text x="535" y="1870" class="mono" fill="#d4ff00" font-size="12" font-weight="600">14-day free trial</text>
|
||||
|
||||
<!-- ============ QUOTE ============ -->
|
||||
|
||||
<line x1="80" y1="1930" x2="925" y2="1930" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<rect x="80" y="1960" width="3" height="120" fill="#d4ff00"/>
|
||||
|
||||
<text x="108" y="1995" class="sans" fill="#f2f2f2" font-size="20" font-weight="500" font-style="italic">
|
||||
"After installing Codeflash in the
|
||||
</text>
|
||||
<text x="108" y="2025" class="sans" fill="#f2f2f2" font-size="20" font-weight="500" font-style="italic">
|
||||
PR code review stage, I can be more
|
||||
</text>
|
||||
<text x="108" y="2055" class="sans" fill="#f2f2f2" font-size="20" font-weight="500" font-style="italic">
|
||||
confident our engineers are shipping
|
||||
</text>
|
||||
<text x="108" y="2085" class="sans" fill="#f2f2f2" font-size="20" font-weight="500" font-style="italic">
|
||||
optimized code every time."
|
||||
</text>
|
||||
<text x="108" y="2125" class="mono" fill="#6a6a6a" font-size="12" letter-spacing="2">
|
||||
BRAD DWYER · FOUNDER & CTO, ROBOFLOW
|
||||
</text>
|
||||
|
||||
<!-- ============ BOTTOM: CTA ============ -->
|
||||
|
||||
<line x1="80" y1="2180" x2="925" y2="2180" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- QR placeholder -->
|
||||
<rect x="80" y="2220" width="120" height="120" rx="4" fill="#161616" stroke="#383838" stroke-width="1"/>
|
||||
<text x="140" y="2290" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="10">QR</text>
|
||||
|
||||
<!-- CTA -->
|
||||
<text x="230" y="2260" class="mono" fill="#d4ff00" font-size="22" font-weight="600">pip install codeflash</text>
|
||||
<text x="230" y="2295" class="sans" fill="#a8a8a8" font-size="17">Free for open source. Try it now.</text>
|
||||
<text x="230" y="2325" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="1">codeflash.ai</text>
|
||||
|
||||
<!-- Bottom accent bar -->
|
||||
<rect x="0" y="2397" width="1005" height="3" fill="#d4ff00"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 8.8 KiB |
|
|
@ -1,209 +0,0 @@
|
|||
# Codeflash PyCon US Booth — Design Specification
|
||||
|
||||
## Booth Configuration
|
||||
|
||||
**Booth Size:** 10' x 10' standard startup booth
|
||||
**Components:**
|
||||
1. **Backdrop wall** — 8' W x 8' H fabric backdrop (the "hero")
|
||||
2. **Retractable banner LEFT** — 33.5" W x 80" H (the "proof")
|
||||
3. **Retractable banner RIGHT** — 33.5" W x 80" H (the "product")
|
||||
4. **Table wrap** — 6' W x 30" H front panel (the "hook")
|
||||
5. **Monitor loop** — 27" display on table showing live agent demo
|
||||
|
||||
## Design System
|
||||
|
||||
**Background:** #0A0A0A (near-black, matches website)
|
||||
**Accent:** #D4FF00 (lime green — the codeflash brand color)
|
||||
**Text primary:** #F2F2F2
|
||||
**Text secondary:** #A8A8A8
|
||||
**Monospace:** JetBrains Mono (for code/terminal elements)
|
||||
**Sans:** Inter (for headlines/body)
|
||||
|
||||
**Principle:** Dark booth with lime green accents. At PyCon, most booths are white/blue corporate. A dark booth with glowing lime green will pull eyes from across the hall. Think: terminal in a dark room.
|
||||
|
||||
## Layout Philosophy
|
||||
|
||||
Read order from 10+ feet → 5 feet → at the booth:
|
||||
|
||||
**10+ feet:** Backdrop headline + lime green 90% number → "what do they do?"
|
||||
**5 feet:** Retractable banners show proof (Unstructured case) + product (terminal mock) → "is it real?"
|
||||
**At booth:** Table wrap has the hook ("Optimize your Python. Right here. Right now.") + QR → "let me try it"
|
||||
**On screen:** Live codeflash-agent running on a PyCon-relevant OSS project → "I want this"
|
||||
|
||||
## Component Details
|
||||
|
||||
### 1. BACKDROP WALL (8' x 8')
|
||||
|
||||
Top zone (upper 30%):
|
||||
- ◇ codeflash logo (mono, lime green diamond)
|
||||
- Tagline: "The autonomous performance engineer."
|
||||
|
||||
Middle zone (40%) — THE HERO:
|
||||
- Giant headline in two lines:
|
||||
Line 1: "Cut your infra bill by"
|
||||
Line 2: "90%" (in lime green, massive — readable from 30 feet)
|
||||
Line 3 (smaller): "Then keep it there."
|
||||
|
||||
Bottom zone (30%):
|
||||
- Terminal mock showing agent output (same as website):
|
||||
```
|
||||
▸ profiling pdf_extract.py
|
||||
▸ found: _patch_current_chars — O(N²) scan
|
||||
▸ benchmark: 14.08x faster
|
||||
▸ opening PR #443 → review
|
||||
```
|
||||
- Trust strip: "Gartner Cool Vendor 2025 · SOC 2 Type 2"
|
||||
- Customer logos: Unstructured · Roboflow · Pydantic · HuggingFace · vLLM
|
||||
|
||||
### 2. LEFT RETRACTABLE BANNER — "The Proof" (33.5" x 80")
|
||||
|
||||
Header: "CASE STUDY"
|
||||
Customer: Unstructured logo
|
||||
|
||||
Stats stack (large numbers, stacked vertically):
|
||||
- 90% — infra cost cut
|
||||
- $10K → $1.1K/mo
|
||||
- 9.2x — pod density
|
||||
- 24 — PRs merged
|
||||
- 0 — regressions
|
||||
|
||||
Quote:
|
||||
"Codeflash is the team of performance engineers that we don't have."
|
||||
— Crag Wolfe, Chief Architect
|
||||
|
||||
Bottom: QR code → case study URL
|
||||
|
||||
### 3. RIGHT RETRACTABLE BANNER — "The Product" (33.5" x 80")
|
||||
|
||||
Header: "HOW IT WORKS"
|
||||
|
||||
4-step vertical flow with lime green step numbers:
|
||||
01 PROFILE — Agent finds hotspots in your codebase
|
||||
02 REWRITE — Generates optimized candidates
|
||||
03 VERIFY — Tests + benchmarks prove correctness
|
||||
04 SHIP — Merge-ready PR with before/after numbers
|
||||
|
||||
Middle section:
|
||||
"Works with:"
|
||||
Claude Code · Cursor · GitHub PRs · CI
|
||||
|
||||
Fun stats callout (in accent box):
|
||||
"We found 118 functions up to 446x slower
|
||||
in just two AI-written PRs."
|
||||
|
||||
Bottom:
|
||||
"Free for open source. $20/mo for private."
|
||||
QR code → optimize/try page
|
||||
|
||||
### 4. TABLE WRAP (6' x 30" front panel)
|
||||
|
||||
Left third: ◇ codeflash logo
|
||||
Center: "Optimize your Python. Right here. Right now."
|
||||
Right third: QR code + "pip install codeflash"
|
||||
|
||||
### 5. MONITOR LOOP (27" display)
|
||||
|
||||
Content: Pre-recorded loop showing codeflash-agent running on a popular
|
||||
PyCon-relevant library (e.g., FastAPI, Pydantic, or httpx):
|
||||
|
||||
Scene 1 (15s): Agent profiling, finding bottleneck
|
||||
Scene 2 (15s): Agent generating candidate, running tests
|
||||
Scene 3 (10s): Benchmark result (e.g., "3.2x faster")
|
||||
Scene 4 (10s): PR opened with before/after
|
||||
Scene 5 (10s): Stats flash — customer logos, numbers
|
||||
|
||||
Total loop: ~60 seconds, no audio needed, terminal aesthetic
|
||||
|
||||
## Interactive Elements — The "Fun" That Earns Respect
|
||||
|
||||
### A. "How Slow Is Your Code?" Live Benchmark Station
|
||||
|
||||
A laptop at the booth where attendees can:
|
||||
1. Paste a Python function (or point at a GitHub file)
|
||||
2. Watch codeflash-agent optimize it live
|
||||
3. See before/after benchmark numbers
|
||||
4. Get a shareable "optimization card" (lime green card with their result)
|
||||
|
||||
This is the killer activation. PyCon attendees are hands-on. Letting them
|
||||
run the tool on THEIR code converts curiosity into conviction.
|
||||
|
||||
### B. Optimization Leaderboard
|
||||
|
||||
A second monitor showing a live leaderboard:
|
||||
"Biggest optimization found at PyCon US"
|
||||
|
||||
| Rank | Attendee | Function | Speedup |
|
||||
|------|----------|----------|---------|
|
||||
| 1 | @handle | sort_items | 47x |
|
||||
| 2 | @handle | parse_csv | 12x |
|
||||
| ...
|
||||
|
||||
Gamification. People will compete. People will tweet. People will
|
||||
come back to check if they're still #1.
|
||||
|
||||
### C. Sticker + Swag Strategy
|
||||
|
||||
Stickers (die-cut, high quality):
|
||||
1. "My code is 14x faster" (lime green on black, terminal font)
|
||||
2. "◇ codeflash" logo (small, clean — laptop sticker)
|
||||
3. "I survived O(N²)" (developer humor, conversation starter)
|
||||
4. "pip install codeflash" (functional sticker — acts as ad)
|
||||
|
||||
Optional premium swag for engaged visitors:
|
||||
- Black t-shirt with lime green text: "Performance is a craft, not a prompt."
|
||||
(Back: small ◇ codeflash logo)
|
||||
|
||||
## Print Production Specs
|
||||
|
||||
All files delivered as:
|
||||
- PDF/X-4 (press-ready)
|
||||
- CMYK color space
|
||||
- 300 DPI at print size
|
||||
- 0.25" bleed on all sides
|
||||
- Fonts outlined/embedded
|
||||
- Source files: SVG + AI
|
||||
|
||||
Vendor recommendation: For PyCon, use a trade show vendor that ships
|
||||
directly to the convention center (common service). Order 3+ weeks before.
|
||||
|
||||
## Booth Flow (How People Move Through)
|
||||
|
||||
```
|
||||
┌─────────────────────────────┐
|
||||
│ BACKDROP WALL │
|
||||
│ "Cut your infra bill by │
|
||||
│ 90%" │
|
||||
│ [terminal mock below] │
|
||||
│ [trust strip + logos] │
|
||||
└─────────────────────────────┘
|
||||
|
||||
┌──────────┐ ┌──────────┐
|
||||
│ LEFT │ │ RIGHT │
|
||||
│ BANNER │ ┌──────────────────┐ │ BANNER │
|
||||
│ │ │ TABLE │ │ │
|
||||
│ Unstruct │ │ ┌────┐ ┌─────┐ │ │ How it │
|
||||
│ Case │ │ │Demo│ │Lead-│ │ │ works │
|
||||
│ Study │ │ │Lap │ │board│ │ │ │
|
||||
│ │ │ └────┘ └─────┘ │ │ │
|
||||
│ │ │ [table wrap] │ │ │
|
||||
└──────────┘ └──────────────────┘ └──────────┘
|
||||
|
||||
↑ AISLE ↑
|
||||
(attendees approach)
|
||||
```
|
||||
|
||||
Attendees see backdrop first (10+ feet), then banners frame the booth
|
||||
as they approach, table wrap gives the action item when they arrive.
|
||||
|
||||
## Key Copy Lines (Final, Print-Ready)
|
||||
|
||||
**Backdrop headline:** Cut your infra bill by 90%. Then keep it there.
|
||||
**Backdrop tagline:** The autonomous performance engineer.
|
||||
**Left banner header:** Named customers. Merged PRs. Measured outcomes.
|
||||
**Right banner header:** Profile. Rewrite. Verify. Ship.
|
||||
**Table wrap:** Optimize your Python. Right here. Right now.
|
||||
**Leaderboard title:** Biggest optimization found at PyCon US 2026
|
||||
**T-shirt:** Performance is a craft, not a prompt.
|
||||
**Sticker 1:** My code is 14x faster
|
||||
**Sticker 2:** I survived O(N²)
|
||||
**Sticker 3:** pip install codeflash
|
||||
|
|
@ -1,142 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">
|
||||
<!-- 27" monitor leaderboard — 1080p landscape -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
.sans { font-family: 'Inter', -apple-system, sans-serif; }
|
||||
</style>
|
||||
<filter id="glow">
|
||||
<feGaussianBlur stdDeviation="6" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<pattern id="gridSmall" width="30" height="30" patternUnits="userSpaceOnUse">
|
||||
<rect width="30" height="30" fill="none"/>
|
||||
<path d="M 30 0 L 0 0 0 30" fill="none" stroke="#111111" stroke-width="0.5"/>
|
||||
</pattern>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="1920" height="1080" fill="#0a0a0a"/>
|
||||
<rect width="1920" height="1080" fill="url(#gridSmall)" opacity="0.25"/>
|
||||
|
||||
<!-- Top accent line -->
|
||||
<rect x="0" y="0" width="1920" height="3" fill="#d4ff00"/>
|
||||
|
||||
<!-- ============ HEADER ============ -->
|
||||
|
||||
<!-- Logo -->
|
||||
<text x="80" y="80" class="mono" fill="#d4ff00" font-size="28">◇</text>
|
||||
<text x="118" y="80" class="mono" fill="#f2f2f2" font-size="28" font-weight="600" letter-spacing="-0.5">codeflash</text>
|
||||
|
||||
<!-- Live indicator -->
|
||||
<circle cx="1780" cy="68" r="6" fill="#d4ff00" opacity="0.8">
|
||||
<animate attributeName="opacity" values="0.8;0.3;0.8" dur="2s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<text x="1796" y="76" class="mono" fill="#d4ff00" font-size="14" letter-spacing="2">LIVE</text>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="960" y="160" text-anchor="middle" class="sans" fill="#f2f2f2" font-size="48" font-weight="700" letter-spacing="-2">
|
||||
Biggest Optimization Found at PyCon US
|
||||
</text>
|
||||
<text x="960" y="200" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="18" letter-spacing="3">
|
||||
OPTIMIZE YOUR CODE AT THIS BOOTH. CLAIM THE TOP SPOT.
|
||||
</text>
|
||||
|
||||
<!-- Separator -->
|
||||
<line x1="80" y1="230" x2="1840" y2="230" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- ============ TABLE HEADER ============ -->
|
||||
|
||||
<text x="120" y="290" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="3">RANK</text>
|
||||
<text x="240" y="290" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="3">DEVELOPER</text>
|
||||
<text x="620" y="290" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="3">FUNCTION</text>
|
||||
<text x="1200" y="290" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="3">LIBRARY</text>
|
||||
<text x="1600" y="290" class="mono" fill="#6a6a6a" font-size="14" letter-spacing="3">SPEEDUP</text>
|
||||
|
||||
<line x1="80" y1="310" x2="1840" y2="310" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- ============ ROW 1 — GOLD ============ -->
|
||||
|
||||
<rect x="80" y="325" width="1760" height="80" rx="6" fill="#121212" stroke="#d4ff00" stroke-width="2"/>
|
||||
|
||||
<text x="140" y="378" class="sans" fill="#d4ff00" font-size="36" font-weight="700" filter="url(#glow)">1</text>
|
||||
<text x="240" y="373" class="sans" fill="#f2f2f2" font-size="24" font-weight="600">Your name here</text>
|
||||
<text x="240" y="395" class="mono" fill="#6a6a6a" font-size="13">Optimize your code at this booth</text>
|
||||
<text x="620" y="378" class="mono" fill="#f2f2f2" font-size="20">_____________</text>
|
||||
<text x="1200" y="378" class="mono" fill="#a8a8a8" font-size="18">___________</text>
|
||||
<text x="1600" y="378" class="sans" fill="#d4ff00" font-size="32" font-weight="700">???×</text>
|
||||
|
||||
<!-- ============ ROW 2 ============ -->
|
||||
|
||||
<rect x="80" y="420" width="1760" height="72" rx="4" fill="#0f0f0f"/>
|
||||
|
||||
<text x="140" y="467" class="sans" fill="#a8a8a8" font-size="28" font-weight="600">2</text>
|
||||
<text x="240" y="464" class="mono" fill="#6a6a6a" font-size="20">waiting...</text>
|
||||
<text x="620" y="464" class="mono" fill="#383838" font-size="18">---</text>
|
||||
<text x="1200" y="464" class="mono" fill="#383838" font-size="18">---</text>
|
||||
<text x="1600" y="464" class="mono" fill="#383838" font-size="24">---</text>
|
||||
|
||||
<!-- ============ ROW 3 ============ -->
|
||||
|
||||
<rect x="80" y="505" width="1760" height="72" rx="4" fill="#0a0a0a"/>
|
||||
|
||||
<text x="140" y="552" class="sans" fill="#a8a8a8" font-size="28" font-weight="600">3</text>
|
||||
<text x="240" y="549" class="mono" fill="#383838" font-size="20">waiting...</text>
|
||||
<text x="620" y="549" class="mono" fill="#383838" font-size="18">---</text>
|
||||
<text x="1200" y="549" class="mono" fill="#383838" font-size="18">---</text>
|
||||
<text x="1600" y="549" class="mono" fill="#383838" font-size="24">---</text>
|
||||
|
||||
<!-- ============ ROW 4 ============ -->
|
||||
|
||||
<rect x="80" y="590" width="1760" height="72" rx="4" fill="#0f0f0f"/>
|
||||
|
||||
<text x="140" y="637" class="sans" fill="#a8a8a8" font-size="28" font-weight="600">4</text>
|
||||
<text x="240" y="634" class="mono" fill="#383838" font-size="20">waiting...</text>
|
||||
<text x="620" y="634" class="mono" fill="#383838" font-size="18">---</text>
|
||||
<text x="1200" y="634" class="mono" fill="#383838" font-size="18">---</text>
|
||||
<text x="1600" y="634" class="mono" fill="#383838" font-size="24">---</text>
|
||||
|
||||
<!-- ============ ROW 5 ============ -->
|
||||
|
||||
<rect x="80" y="675" width="1760" height="72" rx="4" fill="#0a0a0a"/>
|
||||
|
||||
<text x="140" y="722" class="sans" fill="#a8a8a8" font-size="28" font-weight="600">5</text>
|
||||
<text x="240" y="719" class="mono" fill="#383838" font-size="20">waiting...</text>
|
||||
<text x="620" y="719" class="mono" fill="#383838" font-size="18">---</text>
|
||||
<text x="1200" y="719" class="mono" fill="#383838" font-size="18">---</text>
|
||||
<text x="1600" y="719" class="mono" fill="#383838" font-size="24">---</text>
|
||||
|
||||
<!-- ============ BOTTOM STATS BAR ============ -->
|
||||
|
||||
<line x1="80" y1="800" x2="1840" y2="800" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- Running totals -->
|
||||
<rect x="80" y="830" width="380" height="100" rx="6" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="270" y="870" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="12" letter-spacing="3">OPTIMIZATIONS RUN</text>
|
||||
<text x="270" y="915" text-anchor="middle" class="sans" fill="#d4ff00" font-size="42" font-weight="700">0</text>
|
||||
|
||||
<rect x="500" y="830" width="380" height="100" rx="6" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="690" y="870" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="12" letter-spacing="3">TOTAL SPEEDUP</text>
|
||||
<text x="690" y="915" text-anchor="middle" class="sans" fill="#d4ff00" font-size="42" font-weight="700">0×</text>
|
||||
|
||||
<rect x="920" y="830" width="380" height="100" rx="6" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="1110" y="870" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="12" letter-spacing="3">REGRESSIONS</text>
|
||||
<text x="1110" y="915" text-anchor="middle" class="sans" fill="#d4ff00" font-size="42" font-weight="700">0</text>
|
||||
|
||||
<!-- CTA -->
|
||||
<rect x="1340" y="830" width="500" height="100" rx="6" fill="#121212" stroke="#d4ff00" stroke-width="2"/>
|
||||
<text x="1590" y="878" text-anchor="middle" class="sans" fill="#f2f2f2" font-size="22" font-weight="600">Bring your code.</text>
|
||||
<text x="1590" y="912" text-anchor="middle" class="mono" fill="#d4ff00" font-size="18">pip install codeflash</text>
|
||||
|
||||
<!-- ============ FOOTER ============ -->
|
||||
|
||||
<text x="960" y="1010" text-anchor="middle" class="mono" fill="#383838" font-size="14" letter-spacing="2">
|
||||
◇ CODEFLASH.AI · THE AUTONOMOUS PERFORMANCE ENGINEER · GARTNER COOL VENDOR 2025
|
||||
</text>
|
||||
|
||||
<!-- Bottom accent line -->
|
||||
<rect x="0" y="1077" width="1920" height="3" fill="#d4ff00"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 7.4 KiB |
|
|
@ -1,69 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 380" width="600" height="380">
|
||||
<!-- Shareable optimization card — business card size (3.5" x 2") at 170 DPI -->
|
||||
<!-- Attendees get this after running the live benchmark -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
.sans { font-family: 'Inter', -apple-system, sans-serif; }
|
||||
</style>
|
||||
<filter id="glow">
|
||||
<feGaussianBlur stdDeviation="4" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="600" height="380" rx="12" fill="#0a0a0a"/>
|
||||
<rect x="1.5" y="1.5" width="597" height="377" rx="10.5" fill="none" stroke="#d4ff00" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top accent line -->
|
||||
<rect x="12" y="0" width="576" height="2" rx="1" fill="#d4ff00"/>
|
||||
|
||||
<!-- ============ HEADER ============ -->
|
||||
|
||||
<!-- Logo -->
|
||||
<text x="30" y="42" class="mono" fill="#d4ff00" font-size="14">◇</text>
|
||||
<text x="50" y="42" class="mono" fill="#f2f2f2" font-size="14" font-weight="600">codeflash</text>
|
||||
|
||||
<!-- PyCon badge -->
|
||||
<text x="570" y="42" text-anchor="end" class="mono" fill="#6a6a6a" font-size="10" letter-spacing="2">PYCON US 2026</text>
|
||||
|
||||
<!-- Separator -->
|
||||
<line x1="30" y1="58" x2="570" y2="58" stroke="#242424" stroke-width="0.5"/>
|
||||
|
||||
<!-- ============ THE RESULT ============ -->
|
||||
|
||||
<!-- "Your optimization" label -->
|
||||
<text x="30" y="95" class="mono" fill="#6a6a6a" font-size="10" letter-spacing="3">YOUR OPTIMIZATION RESULT</text>
|
||||
|
||||
<!-- Function name placeholder -->
|
||||
<text x="30" y="130" class="mono" fill="#f2f2f2" font-size="18" font-weight="600">function_name()</text>
|
||||
<text x="30" y="155" class="mono" fill="#6a6a6a" font-size="11">from your_module.py</text>
|
||||
|
||||
<!-- THE BIG NUMBER -->
|
||||
<text x="300" y="240" text-anchor="middle" class="sans" fill="#d4ff00" font-size="72" font-weight="800" letter-spacing="-3" filter="url(#glow)">
|
||||
___×
|
||||
</text>
|
||||
<text x="300" y="268" text-anchor="middle" class="mono" fill="#a8a8a8" font-size="14">faster</text>
|
||||
|
||||
<!-- Before/After -->
|
||||
<rect x="30" y="285" width="250" height="36" rx="4" fill="#121212" stroke="#242424" stroke-width="1"/>
|
||||
<text x="45" y="308" class="mono" fill="#6a6a6a" font-size="10">BEFORE</text>
|
||||
<text x="120" y="308" class="mono" fill="#a8a8a8" font-size="12">_____ ms</text>
|
||||
|
||||
<rect x="320" y="285" width="250" height="36" rx="4" fill="#121212" stroke="#d4ff00" stroke-width="1"/>
|
||||
<text x="335" y="308" class="mono" fill="#d4ff00" font-size="10">AFTER</text>
|
||||
<text x="400" y="308" class="mono" fill="#d4ff00" font-size="12" font-weight="600">_____ ms</text>
|
||||
|
||||
<!-- ============ FOOTER ============ -->
|
||||
|
||||
<line x1="30" y1="338" x2="570" y2="338" stroke="#242424" stroke-width="0.5"/>
|
||||
|
||||
<!-- CTA -->
|
||||
<text x="30" y="362" class="mono" fill="#d4ff00" font-size="11" font-weight="600">pip install codeflash</text>
|
||||
<text x="250" y="362" class="mono" fill="#6a6a6a" font-size="10">Free for open source</text>
|
||||
<text x="570" y="362" text-anchor="end" class="mono" fill="#6a6a6a" font-size="10">codeflash.ai</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.1 KiB |
|
|
@ -1,15 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 120" width="300" height="120">
|
||||
<!-- Die-cut sticker: "My code is 14x faster" -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
.sans { font-family: 'Inter', -apple-system, sans-serif; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect width="300" height="120" rx="12" fill="#0a0a0a"/>
|
||||
<rect x="1" y="1" width="298" height="118" rx="11" fill="none" stroke="#d4ff00" stroke-width="2"/>
|
||||
|
||||
<text x="150" y="50" text-anchor="middle" class="mono" fill="#a8a8a8" font-size="16" font-weight="400">my code is</text>
|
||||
<text x="150" y="85" text-anchor="middle" class="sans" fill="#d4ff00" font-size="38" font-weight="800" letter-spacing="-1">14× faster</text>
|
||||
<text x="150" y="108" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="10" letter-spacing="2">◇ CODEFLASH.AI</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 891 B |
|
|
@ -1,19 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 160" width="160" height="160">
|
||||
<!-- Die-cut logo sticker — small, clean, for laptops -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect width="160" height="160" rx="24" fill="#0a0a0a"/>
|
||||
<rect x="1.5" y="1.5" width="157" height="157" rx="22.5" fill="none" stroke="#242424" stroke-width="1.5"/>
|
||||
|
||||
<!-- Diamond -->
|
||||
<text x="80" y="75" text-anchor="middle" class="mono" fill="#d4ff00" font-size="40">◇</text>
|
||||
|
||||
<!-- Name -->
|
||||
<text x="80" y="105" text-anchor="middle" class="mono" fill="#f2f2f2" font-size="16" font-weight="600" letter-spacing="-0.3">codeflash</text>
|
||||
|
||||
<!-- Tagline -->
|
||||
<text x="80" y="125" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="7" letter-spacing="1.5">PERFORMANCE ENGINEER</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 874 B |
|
|
@ -1,15 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 120" width="300" height="120">
|
||||
<!-- Die-cut sticker: "I survived O(N²)" -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
.sans { font-family: 'Inter', -apple-system, sans-serif; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect width="300" height="120" rx="12" fill="#0a0a0a"/>
|
||||
<rect x="1" y="1" width="298" height="118" rx="11" fill="none" stroke="#383838" stroke-width="2"/>
|
||||
|
||||
<text x="150" y="48" text-anchor="middle" class="mono" fill="#a8a8a8" font-size="15">I survived</text>
|
||||
<text x="150" y="87" text-anchor="middle" class="mono" fill="#ff5a5a" font-size="42" font-weight="700">O(N²)</text>
|
||||
<text x="150" y="108" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="10" letter-spacing="2">◇ CODEFLASH.AI</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 844 B |
|
|
@ -1,19 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 80" width="300" height="80">
|
||||
<!-- Die-cut sticker: "pip install codeflash" -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect width="300" height="80" rx="8" fill="#0a0a0a"/>
|
||||
<rect x="1" y="1" width="298" height="78" rx="7" fill="none" stroke="#242424" stroke-width="1.5"/>
|
||||
|
||||
<text x="22" y="35" class="mono" fill="#d4ff00" font-size="14">$</text>
|
||||
<text x="40" y="35" class="mono" fill="#f2f2f2" font-size="14" font-weight="500">pip install</text>
|
||||
<text x="165" y="35" class="mono" fill="#d4ff00" font-size="14" font-weight="700"> codeflash</text>
|
||||
|
||||
<text x="40" y="58" class="mono" fill="#6a6a6a" font-size="11">Free for open source · codeflash.ai</text>
|
||||
|
||||
<!-- Cursor blink -->
|
||||
<rect x="270" y="24" width="10" height="16" fill="#d4ff00" opacity="0.6"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 906 B |
|
|
@ -1,74 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2160 900" width="2160" height="900">
|
||||
<!-- 6' x 30" table wrap front panel at 360px/ft -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
.sans { font-family: 'Inter', -apple-system, sans-serif; }
|
||||
</style>
|
||||
<pattern id="gridSmall" width="30" height="30" patternUnits="userSpaceOnUse">
|
||||
<rect width="30" height="30" fill="none"/>
|
||||
<path d="M 30 0 L 0 0 0 30" fill="none" stroke="#111111" stroke-width="0.5"/>
|
||||
</pattern>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="2160" height="900" fill="#0a0a0a"/>
|
||||
<rect width="2160" height="900" fill="url(#gridSmall)" opacity="0.3"/>
|
||||
|
||||
<!-- Top accent line -->
|
||||
<rect x="0" y="0" width="2160" height="3" fill="#d4ff00"/>
|
||||
|
||||
<!-- ============ LEFT: Logo ============ -->
|
||||
|
||||
<text x="120" y="410" class="mono" fill="#d4ff00" font-size="44">◇</text>
|
||||
<text x="180" y="410" class="mono" fill="#f2f2f2" font-size="44" font-weight="600" letter-spacing="-0.5">codeflash</text>
|
||||
|
||||
<text x="120" y="460" class="mono" fill="#6a6a6a" font-size="16" letter-spacing="4">AUTONOMOUS PERFORMANCE ENGINEER</text>
|
||||
|
||||
<!-- Gartner badge -->
|
||||
<rect x="120" y="500" width="300" height="32" rx="4" fill="none" stroke="#8aa800" stroke-width="1"/>
|
||||
<text x="270" y="522" text-anchor="middle" class="mono" fill="#d4ff00" font-size="12" font-weight="600" letter-spacing="2">★ GARTNER COOL VENDOR 2025</text>
|
||||
|
||||
<!-- Vertical separator -->
|
||||
<line x1="620" y1="200" x2="620" y2="700" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- ============ CENTER: The Hook ============ -->
|
||||
|
||||
<text x="1080" y="340" text-anchor="middle" class="sans" fill="#f2f2f2" font-size="54" font-weight="700" letter-spacing="-2">
|
||||
Optimize your Python.
|
||||
</text>
|
||||
<text x="1080" y="410" text-anchor="middle" class="sans" fill="#a8a8a8" font-size="54" font-weight="500" letter-spacing="-2">
|
||||
Right here. Right now.
|
||||
</text>
|
||||
|
||||
<!-- Subtext -->
|
||||
<text x="1080" y="490" text-anchor="middle" class="mono" fill="#d4ff00" font-size="26" font-weight="600">
|
||||
pip install codeflash
|
||||
</text>
|
||||
|
||||
<!-- Mini stats -->
|
||||
<text x="1080" y="560" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="16" letter-spacing="2">
|
||||
FREE FOR OPEN SOURCE · PYTHON · JAVA · JS · TS · GO
|
||||
</text>
|
||||
|
||||
<!-- ============ RIGHT: QR + URL ============ -->
|
||||
|
||||
<!-- Vertical separator -->
|
||||
<line x1="1540" y1="200" x2="1540" y2="700" stroke="#242424" stroke-width="1"/>
|
||||
|
||||
<!-- QR placeholder -->
|
||||
<rect x="1680" y="290" width="180" height="180" rx="6" fill="#161616" stroke="#383838" stroke-width="1.5"/>
|
||||
<text x="1770" y="390" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="16">QR</text>
|
||||
|
||||
<!-- Scan prompt -->
|
||||
<text x="1770" y="520" text-anchor="middle" class="sans" fill="#f2f2f2" font-size="20" font-weight="600">Scan to try</text>
|
||||
<text x="1770" y="555" text-anchor="middle" class="mono" fill="#d4ff00" font-size="15">codeflash.ai</text>
|
||||
|
||||
<!-- Fun stat at bottom right -->
|
||||
<text x="1770" y="640" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="12" letter-spacing="2">PYCON OPTIMIZATION COUNT</text>
|
||||
<text x="1770" y="680" text-anchor="middle" class="sans" fill="#d4ff00" font-size="40" font-weight="700">___</text>
|
||||
<text x="1770" y="710" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="12" letter-spacing="1">AND COUNTING</text>
|
||||
|
||||
<!-- Bottom accent line -->
|
||||
<rect x="0" y="897" width="2160" height="3" fill="#d4ff00"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.4 KiB |
|
|
@ -1,32 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 800" width="600" height="800">
|
||||
<!-- T-shirt back print area — approximately 12" x 16" at 50 DPI preview -->
|
||||
<!-- Final production: 300 DPI, CMYK, on black garment -->
|
||||
<defs>
|
||||
<style>
|
||||
.mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; }
|
||||
.sans { font-family: 'Inter', -apple-system, sans-serif; }
|
||||
</style>
|
||||
</defs>
|
||||
|
||||
<!-- Preview background (garment color) -->
|
||||
<rect width="600" height="800" fill="#0a0a0a"/>
|
||||
|
||||
<!-- ============ MAIN TEXT ============ -->
|
||||
|
||||
<!-- Line 1 -->
|
||||
<text x="300" y="310" text-anchor="middle" class="sans" fill="#d4ff00" font-size="38" font-weight="700" letter-spacing="-1">
|
||||
Performance is a craft,
|
||||
</text>
|
||||
|
||||
<!-- Line 2 -->
|
||||
<text x="300" y="365" text-anchor="middle" class="sans" fill="#d4ff00" font-size="38" font-weight="700" letter-spacing="-1">
|
||||
not a prompt.
|
||||
</text>
|
||||
|
||||
<!-- ============ LOGO (small, bottom center) ============ -->
|
||||
|
||||
<!-- Diamond -->
|
||||
<text x="280" y="520" text-anchor="middle" class="mono" fill="#6a6a6a" font-size="18">◇</text>
|
||||
<!-- Name -->
|
||||
<text x="320" y="520" class="mono" fill="#6a6a6a" font-size="14" font-weight="500" letter-spacing="-0.3">codeflash</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |