Turn any image into something beautiful.
Quick start · Scripts · Tech stack · Contributing · Changesets · License · CI workflow
You need Node.js 22+ and npm 10+.
git clone git@github.com:ayaxsoft/lumshot.git
cd lumshot
npm install
npm run devnpm run dev— app with HMRnpm run preview— preview the production build
npm run build— typecheck, Vite build, andelectron-builder
npm run lint— ESLintnpm run format— Prettier (write)npm run format:check— Prettier (check only)npm run typecheck—tsc --noEmitnpm run test— Vitestnpm run test:ui— Vitest with UI
npm run changeset— add a changesetnpm run changeset:version— bump versions from changesetsnpm run changeset:publish— publish from changesets
Electron desktop app built with electron-vite and Vite. UI in React and TypeScript, styled with Tailwind CSS v4 and Radix UI. State with Zustand and Immer. Image work in the main process via Sharp. Tests with Vitest, Testing Library, and happy-dom.
- Branch from
main. - Implement your changes and add a changeset when the PR should drive a release (see Changesets).
- Push and open a PR targeting
main. On pull requests, CI runsnpx changeset status --since=origin/mainso the changeset is not forgotten.
Feature and fix PRs should include a changeset that describes what users get. That is the contract that keeps version bumps and CHANGELOG.md honest.
- Work on your branch.
- Run
npx changeset. It asks for the bump type:- patch — bug fix (
0.0.X) - minor — new feature (
0.X.0) - major — breaking change (
X.0.0)
- patch — bug fix (
- Edit the generated markdown file under
.changeset/so the summary matches the change. - Commit that file together with your code.
- CI checks that a changeset exists for the PR (see the changeset job in the workflow).
Release maintainers run:
npx changeset version— applies pending changesets: updatespackage.json(and related manifests) and writes CHANGELOG.md.npx changeset publish— publishes to npm (or your registry). This repo does not ship to npm, so you may skip publish; the important part for history here ischangeset version, which records versions and changelog entries.
When nothing should appear in the changelog, add an empty changeset so CI still passes:
npx changeset add --emptyLumshot is released under the MIT License. Copyright © 2025 Ayaxsoft.

