Turn links, screenshots, and image URLs into cleaner presentation assets.
Fremit is a static app for turning screenshots, image URLs, and best-effort website previews into cleaner presentation assets. It runs entirely on GitHub Pages and is now structured as a product site plus a dedicated editor.
https://mafhper.github.io/fremit/
- Upload screenshots or paste images from the clipboard
- Import direct image URLs
- Try website URLs through Microlink screenshot or Open Graph fallback
- Keep the last valid composition when a new website preview fails
- Switch between desktop browser frames and simple phone/tablet frames
- Use portrait or landscape orientation for phone/tablet frames
- Tune viewport preset, shadow, radius, fit mode, background, and export scale
Fremit does not run a real browser in the backend. Website URLs are resolved in this order:
- Microlink screenshot
- Open Graph image
- Manual fallback message asking for a screenshot
If no reliable preview is available, the current composition stays in place.
- React 19
- TypeScript 5.9
- Vite 7
- React Router
- Zustand
- Tailwind CSS
- Radix UI primitives
html-to-imagecolorthiefimages.weserv.nl- Microlink
- Vitest
- Playwright
bun install
bun run devThe dev server runs on Vite's default port unless you pass a custom one.
bun run dev
bun run build
bun run lint
bun run test
bun run test:smokeThis project is configured for GitHub Pages deployment through .github/workflows/deploy.yml.
- GitHub Actions installs with
bun install --frozen-lockfile - GitHub Actions builds with
bun run build vite.config.tsusesbase: '/fremit/'public/404.htmlhandles SPA deep-link fallbacksrc/main.tsxrestores redirected routes after a Pages refresh
- The app is intentionally static and zero-cost.
- Mobile and tablet frames are generic by design, not hardware simulations.
- Long-lived project history and saved presets are still out of scope for this phase.
The current repo passes:
bun run buildbun run lintbun run testbun run test:smoke
MIT

