One useful idea. Four platform-ready image layouts.
Social Post Image Maker is a free, local-first tool for turning a real fact, lesson, comparison, or product insight into an image worth saving. Write once, choose a visual direction, and export a newly composed image for Pinterest, Instagram, Lemon8, or Facebook. It is an image composer, not an auto-posting bot or a promise of reach.
The repository keeps its original aspectory URL so previously shared studio links continue to work; the public product name describes what the tool does.
Try the live studio · Download the current source ZIP · 中文版
Preparing a photo carousel? Fit the whole set into one frame: keep every photo's full image, reorder the slides, and download a numbered PNG ZIP. Download the standalone offline HTML to use this mode without installing anything.
Listed in the Social Media Hacker List · Multi-platform tools.
- Full-image photo carousels: Add up to 20 mixed landscape, square and portrait photos. Choose one common 4:5, square or 3:4 frame, then white, black or blurred padding. Reorder, remove, download a single slide, or export the whole set as an ordered ZIP. English and Chinese controls; no account or image upload.
- Four distinct styles: Field notes, Photo story, Data sheet, and Bright poster. Each is rendered from the same content with its own typography, hierarchy, and color system.
- Four export presets: Pinterest 1000×1500, Instagram 1080×1350, Lemon8 1080×1440, and Facebook 1080×1080. Changing destinations redraws the layout; it does not crop the previous image.
- Real image files: Live Canvas preview, individual PNG/JPEG exports, or one ZIP containing four separately rendered platform PNGs in the chosen style.
- Your own photo, if you want one: Photo story can use a local PNG, JPEG, or WebP. Without a photo, the key figure becomes the lead visual on a clearly graphic background.
- English and Chinese interface: Switch languages without deleting the copy you are writing. The canvas accepts English or Chinese text.
- A Chinese starting point: Chinese browsers open with a Chinese interface and sample; the shareable
zh.htmlpage has a Chinese title and preview for Chinese-language posts. Language switching changes only the untouched sample and preserves your own draft. - Chinese controls for overseas posts: Write English copy in the Chinese interface when that is the language your audience reads. The tool lays out the text you enter; it does not translate it.
- Local-first by design: No account, backend, API key, or automatic publishing. Your draft is saved in this browser's local storage; the optional photo remains in memory for the current session. The hosted GitHub Pages demo offers optional Google Analytics only after consent; local builds do not load it. After consent, it records basic visit/referral metrics and clicks to LydiaTools GitHub pages, not editor fields or images.
- Open Carousel Fit, or download and double-click
carousel-offline.html. - Add your photos, or download three CC0 practice photos and unzip them. Choose 4:5, White and 2% to reproduce the example below. Try a sample set also provides built-in corner-marked test illustrations.
- Move slides with the arrow buttons. Download PNG ZIP numbers the files in that order.
The photograph example uses CC0 images by freestocks.org, Cecelia Alexander and Tyler C. Photo sources and reproduction steps · Full-size landscape-photo export. The built-in corner-marked example remains available for checking containment. Repeat the browser check. See capture provenance.
This mode accepts PNG, JPEG and WebP (15 MB / 48 megapixels per source), up to 20 photos. It reduces the working image's long side to at most 2048 px, then scales the full image into the selected 1080 px-wide output frame. This is a resampled composition, not a lossless copy of the source. Transparent pixels are composited onto the chosen background. Photos stay in memory; closing the tab clears them. Videos, HEIC and animated exports are not supported. Matching frames are a preparation step; still check the publishing platform's own preview.
- Open the live studio or run it locally.
- Replace the CoverCalc Pro example with your own verified headline, context, key figure, and source.
- Choose a visual style and a destination. Add your own photo if you choose Photo story.
- Check the preview. Download one PNG/JPEG, or use All 4 PNGs · ZIP for every destination. Preview the result on each platform before publishing.
Made an image with it? Tell me which platform and style you tried, especially if text clipped or an export did not fit. The feedback form is bilingual and requires a GitHub sign-in; you can describe the problem without sharing private draft content.
git clone https://github.com/LydiaTools/aspectory.git
cd aspectory
npm install
npm run devBuild and test with npm run build and npm test. The production bundle uses relative paths so it also works below a GitHub Pages repository path.
| Destination | Image export | Why this preset |
|---|---|---|
| 1000 × 1500 · 2:3 | Pinterest recommends 2:3 for quality Pins. | |
| Instagram feed | 1080 × 1350 · 4:5 | A vertical feed composition preset. Check the app's current crop before publishing. |
| Lemon8 | 1080 × 1440 · 3:4 | Lemon8's creator guidance recommends 3:4 photos. |
| Facebook Page | 1080 × 1080 · 1:1 | A square feed composition preset; Facebook may reformat images in its own UI. |
These are export choices, not universal platform requirements. They do not predict distribution or click-through rate.
The owner liked a Muse-made CoverCalc Pro daily brief and a related Pinterest infographic. That led to the Field notes direction: restrained color, editorial type, a verifiable number, and a visible source. The rendering code and layouts were built independently for this project. The original Muse-produced Pin is included below as a visual reference, not as an output of this tool, software screenshot, published Pin, or engagement claim.
The sample is a 1000×1500 image delivered in the owner's Muse workspace on 2026-10-07. Its SHA-256 is f4f4a25909f838554c5b801ae8e6a60a29008133b01efeb2d02d4b03809c7bc1. See example provenance. The demonstration's 13-bag calculation has stated inputs: 10×10 ft, 3 in depth, 2 ft³ per bag; 25 ft³ ÷ 2 = 12.5, rounded up to 13 whole bags. This is sample content for layout testing, not evidence of a live campaign.
The Lemon8 Photo story screenshot uses a CoverCalc Pro garden refresh concept image, not a photograph of a completed customer job. See screenshot provenance.
Social Post Image Maker composes graphics from your copy and optional photo. It does not synthesize photorealistic images from a prompt, fact-check your claims, schedule or publish posts, or guarantee that an image will perform well. Text that exceeds a layout may be shortened in the export; the editor warns you so you can trim it. When a caption, metric, or image needs a source, check it before posting. Photos you add should be yours or licensed for the use you intend.
The app is a small Vite site with a Canvas 2D renderer in src/render.js, UI wiring and bilingual copy in src/app.js, and a local ZIP builder for batch exports. There is no server component. Platform dimensions and composition styles are independent, so more destinations or styles can be added without copying an entire page. The code is MIT licensed; the Muse example image and brand assets are provided as references and are not automatically covered by the code license. Bundled fonts retain their SIL Open Font License terms.
The photo workspace uses src/carousel-render.js for containment and ordered packaging, and src/carousel.js for local imports and bilingual UI. npm run build also generates dist/carousel-offline.html, containing the code, styles, fonts and their licenses in one file. The hosted photo page uses the same opt-in analytics policy as the composer; the offline file makes no network requests during image processing.
Ideas and focused pull requests are welcome—especially typography testing on different devices, accessibility improvements, and new layouts grounded in real user content.
Photo-mode verification on 2026-10-24: 13 Node tests and the production build passed. Local Chrome 156 checks covered decoded PNG dimensions and source corners, ZIP reordering, corrupt/oversized inputs, transparent PNG, JPEG orientation, the 20-photo limit, bilingual controls, the existing composer entry points and standalone offline exports. Repeat the key checks.





