Ik wilde een eenvoudige image-converter die mijn bestanden nergens uploadde. Elke tool die ik vond, vroeg om een aanmelding, plakte advertenties over de downloadknop, of stuurde mijn foto's stiekem naar een server die ik niet beheerde. Dus bouwde ik mijn eigen, en AI schreef het meeste van de code.
Het idee
Het kernconcept is simpel: compileer een beproefde C++ image-library naar WebAssembly zodat die rechtstreeks in de browser draait. Geen server, geen upload, geen privacycompromis. De Magnum graphics-library ondersteunt al tientallen image-formaten via een nette plugin-architectuur. De vraag was of ik die in één weekend in een bruikbare webinterface kon verpakken.
Waar AI hielp
Ik gebruikte een AI-codeerassistent voor ruwweg 80% van het front-endwerk. De dingen die het goed afhandelde:
- HTML/CSS-scaffolding, de drag-and-drop-interface, responsieve lay-out en styling werden in minuten gegenereerd
- JavaScript-lijmcode, de Web Worker-setup, bestandsverwerking en het triggeren van downloads waren eenvoudig voor de AI om te produceren
- SEO-metadata, Open Graph-tags, meta-descriptions en sitemap-generatie werden uit één prompt gegenereerd
- Astro-migratie, de overstap van statische HTML naar een Astro-statische site met dynamische routes en gedeelde lay-outs
Waar AI niet hielp
De C++- en Emscripten-kant was lastiger. Het configureren van het CMake-buildsysteem, het kiezen van de juiste Magnum-plugins, het beheren van geheugenallocatie tussen JavaScript en WASM, dat vereiste domeinkennis die de AI kon benaderen maar niet betrouwbaar in één keer goed kreeg. Ik besteedde het grootste deel van mijn tijd aan het debuggen van buildproblemen en geheugenlekken, niet aan het schrijven van HTML.
De les: AI is uitstekend in het genereren van boilerplate en goed gedocumenteerde patronen. Het worstelt met niche-toolchains en low-level debugging. Gebruik het waar het sterk is; neem de moeilijke delen zelf voor je rekening.
De stack
Dit is wat WebConverter.app aandrijft:
- C++ / Magnum, beproefde image-decodering en -codering (PNG, JPEG, BMP, TGA, HDR, EXR, KTX2 en meer)
- Emscripten, compileert C++ naar WebAssembly, met SIMD- en threading-ondersteuning voor moderne browsers
- Web Workers, vier parallelle workers verwerken batch-conversies zonder de UI te blokkeren
- Astro, statische-sitegenerator die schone HTML produceert zonder client-side framework-overhead
- GitLab CI, geautomatiseerde builds voor zowel de Astro-front-end als de Emscripten-runtime
Wat ik anders zou doen
Begin vanaf dag één met Astro. De eerste versie was handgeschreven HTML, gedupliceerd over elke converterpagina. De migratie naar Astro met gedeelde lay-outs en data-gestuurde routes elimineerde honderden regels duplicatie en maakte het toevoegen van nieuwe formaten triviaal.
Ik zou ook eerder end-to-end-tests opzetten. Een kapotte WASM-module is onzichtbaar totdat iemand daadwerkelijk een bestand probeert te converteren. Geautomatiseerde tests die een bestand erop slepen en de uitvoer verifiëren, hadden problemen dagen eerder gevangen.
Probeer het zelf
WebConverter.app is gratis te gebruiken. Je kunt afbeeldingen naar PNG converteren, JPEG, BMP, en diverse andere formaten, allemaal zonder ook maar één byte te uploaden.
Klaar om je afbeeldingen te converteren?
Probeer WebConverter gratis