Your files never leave your device. All processing happens locally in your browser.
How do I make a correctly sized social media graphic online for free without uploading anything?
Open the Social Media Template Kit, pick an exact platform size (Instagram Post 1080×1080, Portrait 1080×1350 or Story/Reel 1080×1920; Facebook Post 1200×630, Story 1080×1920 or Cover 820×312; X/Twitter Post 1600×900 or Header 1500×500; LinkedIn Post 1200×627 or Cover 1584×396; YouTube Thumbnail 1280×720 or Channel art 2560×1440; Pinterest Pin 1000×1500; TikTok 1080×1920) and start from a template (quote, promo/sale, announcement, product, event or profile-header). Edit real layers on a live canvas — text (system font, size, weight, colour, alignment), rectangles, ellipses, lines and your own uploaded image — then drag to move, drag a corner to resize, rotate, re-order, lock, duplicate or delete. Switch size and the whole design magic-resizes onto the new canvas, then export a pixel-exact PNG or tick several sizes and download them all at once as a ZIP. It is 100% in your browser — nothing is uploaded.
Exact sizes for Instagram, Facebook, X/Twitter, LinkedIn, YouTube, Pinterest and TikTok, each shown at true px
Editable text, shapes and your own uploaded image as draggable / resizable / rotatable layers
Magic-resize re-flows one design across aspect ratios when you switch size
Six starter templates: quote, promo/sale, announcement, product, event, profile-header
Export a pixel-exact PNG or every selected size at once as a ZIP — system fonts only, nothing uploaded
What is
Social media template kit
A social media template kit is a tool that produces graphics at each platform’s recommended pixel dimensions — for example the 1080×1080 Instagram post, the 1080×1920 story/reel, the 1280×720 YouTube thumbnail and the 1500×500 X/Twitter header — by layering editable text, shapes and imagery over a coloured, gradient, patterned or photo background. A “magic-resize” feature re-flows a single design across different aspect ratios so one layout becomes a whole size set. A 100% client-side kit renders every layer on an in-browser HTML5 canvas and exports pixel-exact PNGs on-device, so uploaded images never leave the browser.
Design
Related terms
social media sizesInstagram post sizestory sizeYouTube thumbnailTwitter headerLinkedIn coverPinterest pinTikTokaspect ratiomagic resizesafe areapost makertemplate
Frequently Asked Questions
No. Any image you add is read locally into an object URL and drawn on an in-page canvas; the PNG export is a local canvas.toBlob and the multi-size ZIP is built in memory with JSZip. There is no server or CDN in the editing or export path.
The Social Media Template Kit is 100% client-side. Each layer — a text block, a rectangle, an ellipse, a line or an uploaded image — is a small typed object of numbers and strings held in the page, and a pure engine (socialKitEngine.ts) turns those objects into pixels on an HTML5 <canvas> on your device. When you upload a photo it is read straight into a browser object URL with URL.createObjectURL, decoded into an in-memory image and composited on the canvas locally; it is never uploaded or transmitted anywhere. The same drawSocial() routine paints the live preview and the export, so what you see is what you download: the PNG is produced with a local canvas.toBlob at the exact platform pixels, and the “all sizes” download is a ZIP assembled in memory with JSZip. Fonts are your device’s own system fonts, so nothing is fetched, and there is deliberately no built-in stock or AI imagery because that would require a third-party server. The tool works offline once cached; close the tab and anything you did not export is gone.
Common ones: Instagram Post 1080×1080, Portrait 1080×1350, Story 1080×1920; Facebook Post 1200×630, Cover 820×312; X/Twitter Post 1600×900, Header 1500×500; LinkedIn Post 1200×627, Cover 1584×396; YouTube Thumbnail 1280×720, Channel art 2560×1440; Pinterest 1000×1500; TikTok 1080×1920.
This kit ships each platform’s recommended dimensions as of July 2026. Most feeds are happiest at 1080 px wide: Instagram uses 1080×1080 for square posts, 1080×1350 for 4:5 portrait (which now tends to outperform square) and 1080×1920 for a 9:16 story or reel. Facebook link posts are about 1200×630, its story is 1080×1920 and the page cover is 820×312. X/Twitter in-stream images look best at 1600×900 (16:9) and the profile header is 1500×500 (3:1). LinkedIn link posts are 1200×627 and the page cover is 1584×396. YouTube thumbnails are 1280×720 and channel art is 2560×1440 with a central 1546×423 safe area shown on every device. Pinterest pins are 1000×1500 (2:3) and TikTok is fully vertical at 1080×1920. Platforms change specs occasionally, so verify the current spec before a critical upload — and keep key text near the middle because stories, reels and channel art crop differently on each device.
Magic-resize keeps each layer’s relative position and text size when you switch to a new size, so one layout becomes a fast starting point for every format. It almost always needs a small per-size touch-up because a 9:16 story and a 3:1 header cannot hold an identical layout.
The design is stored on a fixed-width virtual artboard, so switching platform size only changes the canvas height. Magic-resize preserves each layer’s horizontal layout and text size and re-positions layers so they keep the same relative vertical placement on the new canvas, instead of clipping. That turns one design into a whole size set in a click and is a genuine time-saver — the same engine even batch-renders every ticked size into a ZIP. It is a starting point, not magic: extreme aspect changes (a tall 1080×1920 story versus a wide 1500×500 header) leave big gaps or crowding, so you usually nudge a few layers per size. Because the preview and export share one render routine, any tweak you make is exactly what downloads.
It uses your device’s system fonts only (Helvetica, Georgia, Impact, Arial Narrow, Trebuchet, Courier…) with no webfont download, so type can look slightly different on another machine. There is no built-in stock or AI imagery — you bring your own photo; backgrounds are solid, gradient or inline patterns.
Text renders in system font stacks so the tool works fully offline and never fetches a webfont; the trade-off is that a font can render a little differently on a machine that lacks it, and there is no embedded typeface in the exported PNG. There is deliberately no stock-image library and no AI image generation, because both would require a third-party server and would break the promise that files never leave your device. Instead you upload your own photo (read locally and composited on-device) and build backgrounds from solid colours, linear or radial gradients, or procedural inline patterns (dots, grid, diagonal, triangles, checker) that stay crisp at any export size. Exports are flat RGB PNGs held in memory, so export before you close the tab.
Detailed Explanation
📖How It Works
Social Media Template Kit — A Real, Private Social-Graphic Editor
The Social Media Template Kit is a 100% client-side editor for social graphics — a free, private, watermark-free alternative to popular design apps for the design step. You pick an exact platform size (Instagram Post 1080×1080, Portrait 1080×1350, Story/Reel 1080×1920; Facebook Post 1200×630, Story 1080×1920, Cover 820×312; X/Twitter Post 1600×900, Header 1500×500; LinkedIn Post 1200×627, Cover 1584×396; YouTube Thumbnail 1280×720, Channel art 2560×1440; Pinterest Pin 1000×1500; TikTok 1080×1920), start from one of six templates, then compose real layers: editable text, rectangles / ellipses / lines and your own uploaded image, over a solid, gradient, pattern or photo background. Everything is drawn on an in-browser HTML5 canvas and exported on-device as a pixel-exact PNG (or several sizes at once as a ZIP); no image is ever uploaded and there is deliberately no built-in stock or AI imagery.
Exact sizes for Instagram, Facebook, X/Twitter, LinkedIn, YouTube, Pinterest and TikTok at true pixels
Backgrounds: solid, gradient (linear / radial), five inline patterns, or an uploaded photo
Six starter templates (quote, promo, announcement, product, event, profile-header)
Export a pixel-exact PNG or several sizes as a ZIP — nothing uploaded, system fonts only
⚙️Methodology
Method: Fixed-Width Artboard + Magic-Resize
Every layer stores its geometry in DESIGN UNITS on a fixed-width virtual artboard 1000 du wide, with the artboard height set to 1000 × (heightPx ÷ widthPx) for the chosen size. Because the WIDTH is constant across every platform size, a design’s horizontal layout and text size never change when you switch size — only the artboard height changes, so MAGIC-RESIZE is a pure vertical re-flow: each layer keeps its relative vertical position on the new canvas (its centre is re-scaled by the height ratio) and shapes also scale their height so full-width bars and overlays stay proportional. The pure engine (socialKitEngine.ts) exposes one drawSocial() routine that paints the background (solid, a canvas gradient computed from an angle, a procedurally drawn pattern, or a cover / contain / fill-fitted uploaded photo) and then every layer in z-order: text is word-wrapped to its box with system fonts, shapes are rect / ellipse / line, and images are fitted and corner-clipped. The SAME routine draws the live preview and the export, guaranteeing WYSIWYG, and it drives the multi-size batch by refitting the design to each size before rendering.
Geometry in design units on a fixed 1000-du-wide artboard; height = 1000 × (h ÷ w)
Constant width means switching size only changes height — magic-resize is a vertical re-flow
Layers keep their relative vertical position; shapes scale height to stay proportional
One drawSocial() routine powers the live preview, the PNG and the ZIP export
Gradients computed from an angle; five patterns (dots, grid, diagonal, triangles, checker) drawn on-device
🔧Technical Details
Interaction and Export Internals
The preview canvas is sized to previewWidth × devicePixelRatio (capped at 2×) so text stays crisp on retina screens, and a ResizeObserver keeps the fit current as the container resizes. An absolutely-positioned overlay of the same box captures pointer input and renders each layer’s selection outline, four corner resize handles and a rotate handle — none of which is ever part of the exported PNG. Pointer events are mapped from screen pixels into design units via getBoundingClientRect, so dragging moves a layer (its centre clamped inside the artboard), dragging a corner resizes it about the opposite corner even when rotated (text scales its font size with the box), and the top handle rotates it with optional 15° Shift-snapping. Keyboard shortcuts nudge, delete and Ctrl/Cmd-D duplicate the selection. Export reuses drawSocial() on an offscreen canvas sized to the platform’s exact pixels via renderSocialToCanvas() and saves it with canvas.toBlob; the “all sizes” action magic-resizes the current design to each ticked size, renders it and packs the PNGs into a ZIP with JSZip, all in memory. Uploaded images come from same-origin object URLs, so the canvas is never tainted and export works fully offline.
Preview drawn at previewWidth × devicePixelRatio (≤2×); a ResizeObserver tracks the fit
Selection outline, corner handles and rotate handle live in an HTML overlay — never in the PNG
Rotate-aware corner resize keeps the opposite corner fixed; text scales its font size
PNG = offscreen canvas.toBlob at exact pixels; all-sizes = JSZip of magic-resized PNGs in memory
Same-origin object URLs keep the canvas untainted, so export works offline
📋Use Cases
When to Reach for This
Use it to produce correctly sized social graphics fast, privately and without an account, subscription or watermark: an Instagram post or story, a Facebook or LinkedIn cover, a YouTube thumbnail, an X/Twitter header, a Pinterest pin or a TikTok frame. Start from a quote, promo/sale, announcement, product, event or profile-header template, drop in your own logo or photo, set the headline and any supporting text, then export a pixel-exact PNG for the size you need — or tick several sizes and export the whole set as a ZIP and touch up each one. It suits creators, marketers, founders, small businesses and side-projects that want a quick, private graphic that hits each platform’s exact dimensions, or a clean mock-up to share. It is best for STATIC image graphics; it does not schedule, publish or animate.
Great for posts, stories, covers, thumbnails, headers, pins and TikTok frames
Six tuned templates give a fast, fully-editable starting point
No account, subscription or watermark; works offline once cached
Export one pixel-exact PNG or a ZIP of several platform sizes
Best for static graphics — no scheduling, publishing or animation
⚠️Limitations
Honest Limitations
Sizes are the platforms’ recommended pixel dimensions as of July 2026; platforms change specs occasionally, so verify the current spec before a critical upload — and remember many formats have a SAFE AREA (YouTube channel art shows a central 1546×423 region on all devices; stories, reels and TikTok reserve the top and bottom for UI), so keep key text near the middle. MAGIC-RESIZE re-flows ONE design across aspect ratios: it keeps each layer’s relative position and text size, which is a fast starting point but usually needs a small per-size touch-up because a 9:16 story and a ~3:1 header cannot hold an identical layout. Text is drawn with your device’s SYSTEM fonts (no web-font download), so type can look a little different on another machine and there is no embedded webfont. There is deliberately NO built-in stock or AI imagery — you bring your own photo, and backgrounds are solid colours, gradients or inline patterns. Exports are flat RGB PNGs at the exact pixel size (no upscaling and no CMYK), and everything lives in memory only — there is no account, autosave or reopenable project file, so export before you close the tab.
Sizes are 2026 recommendations — verify current specs and mind each format’s safe area
Magic-resize re-flows one design across aspect ratios; expect per-size touch-ups
System fonts only (offline) — type can shift a hair on another machine; no embedded webfont
No stock or AI imagery by design — bring your own photo
In-memory only — no account, autosave or project file; export before closing
🔒Privacy & Security
Private by Design
Everything happens on your device. Each layer is a small object of text, numbers and colours; the engine draws the whole graphic on an in-browser HTML5 canvas, and any photo you add is read locally into an object URL with URL.createObjectURL, decoded and composited on-device — it is never uploaded or transmitted, and it travels with its layer when you duplicate. PNG export is a local canvas.toBlob and the multi-size ZIP is assembled with JSZip from your own rendered canvases, so every file is produced locally. There is no server and no CDN in the editing or export path; the only optional network use is consent-gated ads. Fonts are your device’s system fonts, so nothing is fetched. The tool works offline once cached, keeps no accounts and sets no tracking; close the tab and anything you did not export is gone.
Layers are local objects; the graphic is drawn on an in-page canvas
Uploaded photos are read with URL.createObjectURL and never leave the device
PNG = local canvas.toBlob; all-sizes = JSZip in memory; no upload, server or CDN
System fonts only — nothing fetched; works offline once cached
No accounts, no tracking; unexported work is discarded on tab close
Ways to make a social media graphic
Approach
How it works
Trade-off
Used here
This client-side kit
Composite text / shapes / your photo on an in-browser canvas at exact sizes; export PNG or multi-size ZIP
Private + free + no watermark; static image, you supply the art
Yes
Cloud design app (e.g. popular design apps, online design apps)
Templates and stock assets in the cloud, exported from their servers
Big asset libraries and magic-resize, but uploads your work and often paywalls
No
AI social-post generator
Generates a graphic from a text prompt on a server
Fast concepts, but sends your brief to a server and art is generic
Pixel-perfect, but costs money and has a steep learning curve
For heavy edits
All editing and export here run in the browser; images are never uploaded. Sizes are each platform’s recommended pixel dimensions — verify the current spec. As of July 2026.