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.

Probeer WebConverter.app, gratis, direct en zonder upload afbeeldingen converteren.

Klaar om je afbeeldingen te converteren?

Probeer WebConverter gratis