content: Rybbit analytics fork rewritten in Rust and Axum (Aug 2026), 1 GB to 50 MB, one container
1 file changed, +13 -0
+13-0src/pages/index.astro
| @@ -122,6 +122,19 @@ const work: Work[] = [ | ||
| 122 | 122 | places: ['reno'], |
| 123 | 123 | start: [2026, 8], |
| 124 | 124 | }, |
| 125 | + { | |
| 126 | + name: 'Rybbit analytics fork', | |
| 127 | + era: 'hygo', | |
| 128 | + body: [ | |
| 129 | + 'Rewrote the TypeScript backend of my Rybbit analytics fork in Rust with Axum in one day. The Rust server also serves the built Next.js frontend, so two Docker containers became one.', | |
| 130 | + 'Memory dropped from 1 GB to 50 MB, which lets my other projects share the same analytics server. This site’s analytics run on it.', | |
| 131 | + ], | |
| 132 | + membar: { caption: 'Memory in use', before: ['Before', '1 GB'], after: ['After', '50 MB'], ratio: 50 / 1024 }, | |
| 133 | + stack: 'Rust, Axum, Next.js, TypeScript, Docker, Self-hosted', | |
| 134 | + places: ['reno'], | |
| 135 | + start: [2026, 8], | |
| 136 | + end: [2026, 8], | |
| 137 | + }, | |
| 125 | 138 | { |
| 126 | 139 | name: 'Hygo CRM', |
| 127 | 140 | era: 'hygo', |