Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol. wisp.place

webp army

+12 -5
+11 -4
Dockerfile
··· 1 1 # Build stage 2 - FROM oven/bun:1.3 AS build 2 + FROM oven/bun:1-alpine AS build 3 3 4 4 WORKDIR /app 5 5 ··· 30 30 --outfile server \ 31 31 apps/main-app/src/index.ts 32 32 33 + # Remove source files from public that don't need to be served 34 + RUN find apps/main-app/public -name "*.tsx" -delete && \ 35 + find apps/main-app/public -name "*.ts" -delete && \ 36 + rm -rf apps/main-app/public/editor/.claude 37 + 33 38 # Final stage - slim image with just the compiled binary 34 - FROM debian:bookworm-slim 39 + FROM alpine:3.22 40 + 41 + RUN apk add --no-cache libstdc++ libgcc ca-certificates 35 42 36 43 WORKDIR /app 37 44 38 45 # Copy compiled server (standalone binary - no node_modules needed) 39 46 COPY --from=build /app/server /app/server 40 47 41 - # Copy public static assets 42 - COPY apps/main-app/public apps/main-app/public 48 + # Copy public static assets (source files already stripped in build stage) 49 + COPY --from=build /app/apps/main-app/public apps/main-app/public 43 50 44 51 # Copy built frontend assets 45 52 COPY --from=build /app/apps/main-app/dist apps/main-app/dist
apps/main-app/public/screenshots/atproto-ui_wisp_place.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/atproto-ui_wisp_place.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/avalanche_moe.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/avalanche_moe.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/brotosolar_wisp_place.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/brotosolar_wisp_place.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/erisa_wisp_place.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/erisa_wisp_place.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/hayden_moe.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/hayden_moe.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/kot_pink.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/kot_pink.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/moover_wisp_place.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/moover_wisp_place.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/nekomimi_pet.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/nekomimi_pet.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/pdsls_wisp_place.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/pdsls_wisp_place.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/plc-bench_wisp_place.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/plc-bench_wisp_place.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/rainygoo_se.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/rainygoo_se.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/rd_jbcrn_dev.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/rd_jbcrn_dev.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/sites_wisp_place_did_plc_3whdb534faiczugsz5fnohh6_rafa.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/sites_wisp_place_did_plc_3whdb534faiczugsz5fnohh6_rafa.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/sites_wisp_place_did_plc_524tuhdhh3m7li5gycdn6boe_plcbundle-watch.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/sites_wisp_place_did_plc_524tuhdhh3m7li5gycdn6boe_plcbundle-watch.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/system_grdnsys_no.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/system_grdnsys_no.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/tealfm_indexx_dev.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/tealfm_indexx_dev.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/tigwyk_wisp_place.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/tigwyk_wisp_place.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/wfr_jbc_lol.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/wfr_jbc_lol.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/wisp_jbc_lol.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/wisp_jbc_lol.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/wisp_soverth_f5_si.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/wisp_soverth_f5_si.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/www_miriscient_org.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/www_miriscient_org.webp

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/www_wlo_moe.png

This is a binary file and will not be displayed.

apps/main-app/public/screenshots/www_wlo_moe.webp

This is a binary file and will not be displayed.

+1 -1
apps/main-app/src/index.ts
··· 412 412 try { 413 413 const screenshotsDir = './apps/main-app/public/screenshots' 414 414 const files = await fs.readdir(screenshotsDir) 415 - const screenshots = files.filter(file => file.endsWith('.png')) 415 + const screenshots = files.filter(file => file.endsWith('.webp')) 416 416 return { screenshots } 417 417 } catch (error) { 418 418 return { screenshots: [] }