Fabric.js is a free, MIT-licensed canvas library. It gives you objects, selection controls, text editing, filters, and JSON and SVG in and out, in the browser and on Node, and you write the editor on top. Polotno SDK is a commercial design editor you embed, with panels, templates, and rendering already built. One question decides it: do you want to own the editor, or ship one inside a product that sells something else?
Pick the one that matches what you want to own
Pick Fabric.js if…
- You want to own a custom editor. The UI, the document model, and the interaction rules all live in your code, and you decide how each one behaves.
- You are building something other than a design tool. Drawing tools and visualizations need Fabric's objects and events, and Polotno's page-based format would get in your way.
- You want brushes, filters, and SVG in one library. Freehand brushes, image filters, and SVG import and export all ship with Fabric.
- You want MIT with no license key. You get no vendor, no quote, and no key to manage, in the browser or on Node.
Pick Polotno SDK if…
- The editor supports what you sell. You want users designing inside your product, and you would rather spend engineering time on the product itself.
- You want the editor UI finished. Side panels, a toolbar, layers, multiple pages, templates, snapping guides, and undo and redo ship ready to configure.
- Your code and your users work on the same design. A design is JSON, so your backend can set values in it and a user can open the result in the editor.
- You need output beyond images. Polotno also exports PDF, PPTX, HTML, GIF, and MP4, and its print PDFs carry CMYK, bleed, crop marks, and PDF/X.
Building on a library vs embedding an editor
1. The editor
Fabric ships the canvas layer: scale, move, rotate, skew, and group interactions, editable text, an interactive crop mode, filters, gradients, patterns, and brushes. You write what surrounds the canvas, including side panels, a layers list, undo and redo, and templates.
Polotno ships that surrounding editor. You configure it, replace panels, and connect your own assets and login. Customizing it needs React, and you work within its design decisions. With Fabric, your team builds and maintains an editor. With Polotno, your team integrates one.
2. Templates and automation
Fabric saves a canvas to JSON and loads it back, which gives you a head start on storing designs. We found no template or variable layer in its docs, so you define what a template is and write the code that fills one. You own that format and the job of keeping it stable.
Polotno designs are documented JSON. Your code sets values in that JSON, with placeholders in text as a common convention, and the same file opens in the editor for a person to adjust. Templates use the same format, so you can mix generated and hand-edited designs.
3. Rendering on a server
Both run on Node. Fabric lists Node as a supported environment and renders there through node-canvas and jsdom, which install from npm. You build the hosting, queues, and batching around it.
Polotno renders through the Cloud Render API, on your own servers, or in the browser, all from the same JSON. The quickest route is Cloud Render: you send the JSON and get the file back in seconds, with no servers to run. On your own servers, vector PDF, PNG, and JPEG export need no browser, and video and GIF output run a headless browser.
4. Output formats
Fabric reads and writes JPEG, PNG, JSON, and SVG. It can display video on a canvas, and its README and docs list no video or PDF export, so you would add those pipelines yourself.
Polotno renders PDF and video itself, and its video timeline covers trim, split, audio tracks, and animation.
5. Cost model
Fabric is free, and your cost is the engineering time to build the editor and keep it running. With Polotno, your cost is the license fee and the time to integrate it.
Feature comparison
| Capability | Polotno SDK | Fabric.js |
|---|---|---|
| What it is | Embeddable design editor with a JSON format | Canvas library |
| Editor UI | Included and customizable | You build it |
| Layers panel, undo, templates | Included | You build them |
| Data model | Polotno's documented JSON | Fabric's JSON, or any model you design |
| Runs on | Cloud Render API, your servers, browser | Browser and Node |
| Export | PNG, JPEG, PDF, SVG, HTML, PPTX, GIF, MP4. Cloud Render: PNG, JPEG, PDF, PPTX, GIF, MP4 | JPEG, PNG, SVG, JSON |
| Print PDF | CMYK, spot colors, bleed, crop marks, PDF/X-1a, PDF/X-4 | None found in its docs |
| SVG import | Separate package | Built in |
| License | Commercial, fixed license fee by custom quote, Cloud Render billed per use | MIT, free, no license key |
| Source code | Separate license option | Public on GitHub |
When Fabric.js is the right call
Fabric.js is the right call when you want to own a custom editor. If the editor is your product, you need the freedom Fabric leaves open: you design the document model, you decide how each control behaves, and no vendor sits between you and your users.
The library backs that choice up. It is active and MIT-licensed, it covers interactions, text, cropping, filters, brushes, and SVG, and its Node support costs nothing extra. Drawing tools, visualizations, and canvases that look nothing like a page of design elements belong here, and Polotno would be the wrong shape for them.
If you already run a Fabric editor that serves your users, keep it. Polotno makes sense when the editor is one feature of your product and building it would pull engineers off the work your customers pay for. You can test it with the 30-day free trial, no credit card needed.
FAQ
Which package runs Fabric.js on a server?
The stable route is fabric/node in the fabric package. Its README points new applications to @fabricjs/node, and that package is still in beta on npm.
Is Polotno built on Fabric.js?
No. Polotno renders through Konva, a separate canvas library, and shares its author, Anton Lavrenov. Konva and Fabric are alternatives to each other, so weigh this comparison with that tie in mind.
Can I move a Fabric.js editor to Polotno?
Not automatically. Fabric's JSON and Polotno's JSON are different formats, so you would write a converter or rebuild your templates. Polotno's editor replaces the UI you built.
