Inspiration
While building frontend projects, we repeatedly faced the same problem.
Designs looked perfect in tools, but implementation always involved manual guessing.
Developers measured pixels, picked colors, and copied font names, yet still ended up with UI mismatches.
Even when designers used Adobe Express for quick creation, the handoff remained visual, not technical.
We realized the real gap wasn’t design quality but the lack of structured, developer-ready output.
We wanted to change the handoff from “here’s how it looks”
to “here’s exactly how to build it.”
This led to the idea of creating a native Adobe Express add-on that could understand design structure
and convert it into usable code, specs, and assets automatically.
What It Does
DevSnap is an Adobe Express add-on that automates design handoff for developers.
Instead of sending screenshots or static files, teams can share structured outputs that directly map to frontend implementation.
The goal is to remove interpretation and rework from the design-to-development process.
Key Capabilities
- Extract all unique colors with HEX, RGB, and HSL values
- Detect typography styles with full font and spacing details
- Export assets in multiple formats and scales
- Get exact dimensions and layout positions
- Generate CSS variables and Tailwind-ready configs
- Download spec sheets for developer reference
How We Built It
DevSnap uses Adobe Express’s two-process model, separating UI rendering and secure document access.
UI Layer
- Built with React
- Uses Adobe Spectrum Web Components
- Matches Adobe’s design system
- Runs inside the Express add-on panel for smooth interaction
Sandbox Layer
- Uses the Adobe Express Document API
- Traverses the design node tree to extract:
- Colors
- Text styles
- Dimensions
- Asset data
- All processing happens securely inside the sandbox
Asset Generation and Export
We used:
- Canvas API for rendering
- Pica for high-quality resizing
- JSZip for batch downloads
We also built generators that convert extracted data into:
- CSS variables
- Tailwind configuration blocks
So developers can directly plug outputs into their projects.
Challenges We Ran Into
The biggest challenge was mapping visual design data into reusable, developer-friendly structures.
Design documents are optimized for layout, not for coding, so grouping styles and detecting reusable patterns required custom logic.
Working inside the sandbox environment also meant dealing with strict execution limits and message passing between processes, which made performance optimization important during batch extraction and exports.
Another challenge was ensuring that asset quality stayed high while keeping the UI responsive during multi-scale exports.
Accomplishments We’re Proud Of
DevSnap goes beyond exporting visuals and actually produces implementation-ready outputs.
It’s not just a helper tool, but an improvement for real development teams.
Building a fully functional Adobe Express add-on with sandbox extraction, image processing, and code generation within hackathon timelines was challenging, and getting all these parts to work together felt like a major milestone.
What We Learned
We learned that real productivity tools need to understand structure, not just content.
Automation becomes powerful only when it reflects how developers actually work.
We also gained deep insight into Adobe Express’s add-on architecture and how design data can be safely and efficiently processed within platform constraints.
Most importantly, we learned how much time is lost in handoff steps that people have accepted as normal in product development.
What’s Next for DevSnap
Next, we plan to:
- Add structured design token exports in JSON format
- Detect reusable components instead of only raw elements
- Support animation property extraction
- Explore integrations with other design tools
Long term, we want to build collaboration features so teams can:
- Maintain consistent design systems
- Track implementation accuracy across projects
Built With
- canvasapi
- image-node-api
- indexeddb
- jszip
- react
- sandbox-api
- sdk
- spectrum
- typescript
- webpack
Log in or sign up for Devpost to join the conversation.