| 1 | /** |
| 2 | * Public posts about Alchemy, curated from X (see the sentiment thread at |
| 3 | * https://x.com/samgoodwin89/status/2102459555573793216) and the public |
| 4 | * channels of the Alchemy Discord. Text is verbatim except for trimming, |
| 5 | * marked with "…". Only first-party team posts are excluded. |
| 6 | */ |
| 7 | export interface Post { |
| 8 | name: string; |
| 9 | handle: string; |
| 10 | url: string; |
| 11 | text: string; |
| 12 | /** Where the post lives. @default "x" */ |
| 13 | source?: "x" | "discord"; |
| 14 | } |
| 15 | |
| 16 | const DISCORD = "https://discord.com/channels/1359694195782320389"; |
| 17 | |
| 18 | export const POSTS: Post[] = [ |
| 19 | { |
| 20 | name: "Rhys", |
| 21 | handle: "RhysSullivan", |
| 22 | url: "https://x.com/RhysSullivan/status/2102515675931799843", |
| 23 | text: "Alchemy enables me to be more ambitious in shipping large projects to multiple targets. It gives my agents the capability to debug issues against real deployments of my systems, enabling the best feedback loop I've ever had resulting in several large perf wins.", |
| 24 | }, |
| 25 | { |
| 26 | name: "Maxwell Brown", |
| 27 | handle: "maxwellbrown", |
| 28 | url: "https://x.com/maxwellbrown/status/2081323853171556739", |
| 29 | text: "Alchemy is literally the only reason I gave Cloudflare's dev platform a shot. The fact that I can just write Effect code to describe / deploy my infra and then use those same resources in my program is unparalleled DX IMO.", |
| 30 | }, |
| 31 | { |
| 32 | name: "Maximilian", |
| 33 | handle: "maxedapps", |
| 34 | url: "https://x.com/maxedapps/status/2099771815786582351", |
| 35 | text: "Cloudflare + Alchemy + Effect is such a winning stack with AI agents, it's not even real. … And all the infra lives in code - which is how it should be with AI agents.", |
| 36 | }, |
| 37 | { |
| 38 | name: "Dillon Mulroy", |
| 39 | handle: "dillon_mulroy", |
| 40 | url: "https://x.com/dillon_mulroy/status/2081108173935522081", |
| 41 | text: "alchemy is so good for IAC, esp. cloudflare IAC", |
| 42 | }, |
| 43 | { |
| 44 | name: "Michael Arnaldi", |
| 45 | handle: "MichaelArnaldi", |
| 46 | url: "https://x.com/MichaelArnaldi/status/2102384731912388802", |
| 47 | text: "Thanks to Alchemy the CF primitives finally shine in DX, I couldn't get over the DX issues before, now it's amazing", |
| 48 | }, |
| 49 | { |
| 50 | name: "arth", |
| 51 | handle: "arthty", |
| 52 | url: "https://x.com/arthty/status/2090156386353299742", |
| 53 | text: "choosing alchemy as a core foundation on @op0ai is probably a top 3 decision long-term. so far, the dx and velocity has gone thru the roof.", |
| 54 | }, |
| 55 | { |
| 56 | name: "Nick Blow", |
| 57 | handle: "NickBlow", |
| 58 | url: "https://x.com/NickBlow/status/2102814433315578050", |
| 59 | text: "The fact it's truly \u201cjust typescript\u201d and not the abomination of codegen … Allows it to be far more easily extended than other iac platforms.", |
| 60 | }, |
| 61 | { |
| 62 | name: "Superlinear", |
| 63 | handle: "superlinear_fm", |
| 64 | url: "https://x.com/superlinear_fm/status/2101946564260294900", |
| 65 | text: "We use @alchemy_run bc it's truly declarative, written in TypeScript with Effect, and gives agents a clean, code-native way to understand and modify infrastructure.", |
| 66 | }, |
| 67 | { |
| 68 | name: "Michael Arnaldi", |
| 69 | handle: "MichaelArnaldi", |
| 70 | url: "https://x.com/MichaelArnaldi/status/2100076857638957346", |
| 71 | text: "Effect + Alchemy + DOs (and cf primitives) is an insanely powerful combo", |
| 72 | }, |
| 73 | { |
| 74 | name: "Alireza Najafi", |
| 75 | handle: "alire8za", |
| 76 | url: "https://x.com/alire8za/status/2102777097148068137", |
| 77 | text: "Alchemy made working with Cloudflare joyful", |
| 78 | }, |
| 79 | { |
| 80 | name: "joel", |
| 81 | handle: "joelhooks", |
| 82 | url: "https://x.com/joelhooks/status/2102230916164886939", |
| 83 | text: "nobody talking about the effect+alchemy+cloudflare combo to literally build f'n anything", |
| 84 | }, |
| 85 | { |
| 86 | name: "Harry Solovay", |
| 87 | handle: "harrysolovay", |
| 88 | url: "https://x.com/harrysolovay/status/2081854670960488857", |
| 89 | text: "It just hit me: @alchemy_run is going to Effect-pill literally everyone who wants to ditch Wrangler. ... that's pretty magical.", |
| 90 | }, |
| 91 | { |
| 92 | name: "Andrew Jefferson", |
| 93 | handle: "EastlondonDev", |
| 94 | url: "https://x.com/EastlondonDev/status/1944020116955361658", |
| 95 | text: "Alchemy is next gen infrastructure as code & it's helping us make the most of Cloudflare's global scale", |
| 96 | }, |
| 97 | { |
| 98 | name: "Nipsuli", |
| 99 | handle: "Nipsuli", |
| 100 | url: "https://x.com/Nipsuli/status/2090153816289079318", |
| 101 | text: "Alchemy is freaking amazing! I've run with cloudflare workers for few years now in different projects and alchemy made the experience so freaking much better.", |
| 102 | }, |
| 103 | { |
| 104 | name: "Michael Arnaldi", |
| 105 | handle: "MichaelArnaldi", |
| 106 | url: "https://x.com/MichaelArnaldi/status/2094818796204634535", |
| 107 | text: "v4 + alchemy solved most of the issues, we are now focusing on higher level design of things like Cluster on CF", |
| 108 | }, |
| 109 | { |
| 110 | name: "skuse", |
| 111 | handle: "skuse_", |
| 112 | url: `${DISCORD}/1359694196830765059/1494113753766039703`, |
| 113 | text: "Man I've been here 2 days and this is such an underrated project, having my whole stack defined as code even things like stripe is a complete game changer. Define the code, dump the necessary outputs into my servers env, just works. Testing / isolating environments has become trivial whereas before I'd have to click around dashboards.", |
| 114 | source: "discord", |
| 115 | }, |
| 116 | { |
| 117 | name: "carlo", |
| 118 | handle: "seitandelivery", |
| 119 | url: `${DISCORD}/1430044817211260938/1496933941410529300`, |
| 120 | text: "… I just read the v2 docs and I never thought iac could be this good 😍 seriously, this is a game changer for me. Thank you all for the hard work 🫶 alchemy will be my new obsession this year haha", |
| 121 | source: "discord", |
| 122 | }, |
| 123 | { |
| 124 | name: "dan myles", |
| 125 | handle: "danmyles_", |
| 126 | url: `${DISCORD}/1502003721771679826/1550582476324216943`, |
| 127 | text: "IaC is a no brainer for anything bigger than a vibecoded saas\njust too much custom tooling required for dev stages etc on TF/pulumi\nwhy i love alchemy!", |
| 128 | source: "discord", |
| 129 | }, |
| 130 | { |
| 131 | name: "artem", |
| 132 | handle: "flowisgreat", |
| 133 | url: `${DISCORD}/1424860521772875827/1424861389398479019`, |
| 134 | text: "using alchemy for conare.ai and it's awesome - thanks for the hard work!\n\nhaving all of the backend directly as code is a game changer for AI", |
| 135 | source: "discord", |
| 136 | }, |
| 137 | { |
| 138 | name: "Ray", |
| 139 | handle: "xesrevinu", |
| 140 | url: `${DISCORD}/1373936446032842803/1544618939202412597`, |
| 141 | text: "Alchemy architecture is really amazing. It's really amazing work. I feel that you have made such an excellent project.", |
| 142 | source: "discord", |
| 143 | }, |
| 144 | { |
| 145 | name: "Dill", |
| 146 | handle: "dillionv", |
| 147 | url: `${DISCORD}/1373936446032842803/1552394945497669753`, |
| 148 | text: "… rn use some janky pulumi / terraform deploy process and would rather just migrate it all to effect + alchemy", |
| 149 | source: "discord", |
| 150 | }, |
| 151 | { |
| 152 | name: "david", |
| 153 | handle: "davidlbowman", |
| 154 | url: `${DISCORD}/1430044817211260938/1499872994082689204`, |
| 155 | text: "… what i love about alchemy-effect, is i already write 100% effect code, but quite a few of my clients are smaller, and only need a static site, some webhook handlers, maybe a workflow, and it's nice to be able to quickly create those layers. … so far, it's been great.", |
| 156 | source: "discord", |
| 157 | }, |
| 158 | { |
| 159 | name: "Alessandro", |
| 160 | handle: "alessandroc00c", |
| 161 | url: `${DISCORD}/1430044817211260938/1527797668695244800`, |
| 162 | text: "… i am loving alchemy and im spinning up s***t like crazy", |
| 163 | source: "discord", |
| 164 | }, |
| 165 | ]; |
| 166 | |
| 167 | /** Profile photo, saved from X into public/testimonials (96px WebP). */ |
| 168 | const DISCORD_AVATARS: Record<string, string> = { |
| 169 | skuse_: "skuse", |
| 170 | seitandelivery: "carlo", |
| 171 | danmyles_: "danmyles", |
| 172 | flowisgreat: "artem", |
| 173 | xesrevinu: "ray", |
| 174 | dillionv: "dill", |
| 175 | davidlbowman: "david", |
| 176 | alessandroc00c: "alessandro", |
| 177 | }; |
| 178 | export const avatar = (p: Post) => |
| 179 | p.source === "discord" |
| 180 | ? `/testimonials/discord-${DISCORD_AVATARS[p.handle]}.webp` |
| 181 | : `/testimonials/${p.handle.toLowerCase()}.webp`; |
| 182 | |
| 183 | const by = (url: string) => POSTS.find((p) => p.url.endsWith(url))!; |
| 184 | |
| 185 | /** |
| 186 | * The wall's three columns, top to bottom. The first row is the most |
| 187 | * important voices (Rhys, Michael Arnaldi, Maxwell Brown, then Dillon |
| 188 | * Mulroy); the rest follow in rank order (strongest sentiment, most detail |
| 189 | * about Alchemy first), spread across the columns so the wall reads |
| 190 | * roughly by rank and the columns end at about the same height. |
| 191 | */ |
| 192 | export const WALL_COLUMNS: Post[][] = [ |
| 193 | [ |
| 194 | by("2102515675931799843"), // Rhys |
| 195 | by("2099771815786582351"), // Maximilian |
| 196 | by("2101946564260294900"), // Superlinear |
| 197 | by("1496933941410529300"), // carlo (Discord) |
| 198 | by("1944020116955361658"), // Andrew Jefferson |
| 199 | by("1552394945497669753"), // Dill (Discord) |
| 200 | by("1527797668695244800"), // Alessandro (Discord) |
| 201 | by("2102777097148068137"), // Alireza Najafi |
| 202 | ], |
| 203 | [ |
| 204 | by("2102384731912388802"), // Michael Arnaldi, CF primitives |
| 205 | by("2081108173935522081"), // Dillon Mulroy |
| 206 | by("2102814433315578050"), // Nick Blow |
| 207 | by("2090156386353299742"), // arth |
| 208 | by("1424861389398479019"), // artem (Discord) |
| 209 | by("2090153816289079318"), // Nipsuli |
| 210 | by("2100076857638957346"), // Michael Arnaldi, DOs combo |
| 211 | by("2102230916164886939"), // joel |
| 212 | ], |
| 213 | [ |
| 214 | by("2081323853171556739"), // Maxwell Brown |
| 215 | by("1494113753766039703"), // skuse (Discord) |
| 216 | by("1499872994082689204"), // david (Discord) |
| 217 | by("2081854670960488857"), // Harry Solovay |
| 218 | by("1550582476324216943"), // dan myles (Discord) |
| 219 | by("2094818796204634535"), // Michael Arnaldi, Cluster on CF |
| 220 | by("1544618939202412597"), // Ray (Discord) |
| 221 | ], |
| 222 | ]; |