Launch HN: Toybox (YC S18) – Communicate changes to sites without writing code
For years Jono and I have struggled to communicate changes with one another during the development cycle. As a UX designer and Jono as a full-stack engineer, we spend hours going back-and-forth, trying to make small but important tweaks to sites. This was by far the most frustrating part of our jobs, driving us to try to solve this age-old problem.
While learning about the development to design handoff, we’ve come across some common challenges teams face. First, not all companies have sophisticated or easy to deploy staging environments to quickly share works-in-progress. Second, some designers make tweaks using Chrome Inspector, but these changes don’t persist and are recorded nowhere near the relevant web page. Lastly, the majority of these conversations are happening in unofficial and unformalized spaces, making it easy to dismiss and disregard.
The first problem we attempted to solve was creating a way to share web pages without a staging environment. To do this, we built a chrome extension that collects and sends the rendered DOM of the current page to Toybox. People write HTML and CSS in creative ways, so making sure we accurately re-render the captured page within Toybox has consistently been a fun and difficult challenge (looking at you CSS in JS...).
We built Toybox in a way that doesn’t require prior front-end knowledge to use. We created an inspector that makes any page feel like Squarespace—a universal WYSIWYG of sorts. As you make tweaks, those edits get saved as CSS allowing a developer to contextually review where on the page a change was requested and the relevant code required to resolve that change. To see it in action, we made a demo of Hacker News here: https://app.toyboxsystems.com/share/Zodzjmzhpx3w
We're excited about the possibilities of having a rendered web page within Toybox. We’re currently testing the concept of style and component linting. Instead of the rules being tabs vs. spaces :) we can lint for incorrect uses of color, accessibility, typography, button styles, and so forth by using design files or style guides as inputs. With the rise of component libraries and design systems, we’re excited to further automate these QA efforts and make this communication channel even smarter.
We’d love to hear your feedback and personal experiences when it comes to this phase of the development process. You can try Toybox for free here: https://www.toyboxsystems.com/
Thanks, Brendan & Jono
[+] [-] soared|7 years ago|reply
[+] [-] soared|7 years ago|reply
It would actually be excellent "tool/side-project marketing" (like unsplash.com was for crew.co). If you set up a demo page like that, gave access to certain designers, and let them use your tool for free to showcase their redesigns of major sites.
[+] [-] bmaho|7 years ago|reply
[+] [-] hamslamwich|7 years ago|reply
Curious as to how the legal end would work re: IP. If you have 1,000 people redesigning Reddit and publishing it for all to see, there's bound to be some serious design overlap (whether intentional or not) when said company eventually goes through a redesign.
[+] [-] adora|7 years ago|reply
[+] [-] hfourm|7 years ago|reply
Edit: I see the screenshot view is sorta closer to what I am getting at. Either way, sounds like you guys are solving an interesting problem and should be easy to communicate the value if you clean up the UX. I just was overwhelmed at first.
[+] [-] bmaho|7 years ago|reply
We've been thinking about having an "advanced" toggle which would hide the "developer focused" inspector and just leave a comment field. Wondering if you have thoughts on how we could do this better??
[+] [-] Dennisngulumba|7 years ago|reply
[deleted]
[+] [-] uxamanda|7 years ago|reply
Couple thoughts -
When adding a new comment, I was surprised that mine became "1" which reflowed all the numbers. Seems like it would be helpful to append the comments so that the numbers stayed static.
Also, it would be neat if I could change the styles of all the similar elements at the same time. For example, when editing the .storylink class, it would be neat if I could choose to edit all similar elements or just that specific instance (like I can in the normal inspector). That would make it easier to preview my changes and make what I am trying to change clearer to the developer.
Another feature this brought to mind would be a way to preview all the colors in use on the page, kind of reverse engineering SCSS color variables. That way a designer could preview what changing orange --> green across all uses might look like before committing to it. The designer could also suggest a new color be added to the palette. In a dream world, this would also work for all font styles in use. Basically creating a reverse style sheet so you could see and consolidate minor differences. Maybe this is what you mean by style and component linting?
Finally, it would be cool to have "versions" or "groups" of the edits. We often debate whether we should go one direction or another, and being able to flip between a few options without fully coding a solution would be neat.
Cool project and good work!
[+] [-] bmaho|7 years ago|reply
2. We're currently working on adding the ability to edit just one element or all that are associated with that class. Should be live in a few days!
3. Yes and yes. We're super interested in this idea as well. We've been testing out showing all the style elements in use on any given page ( i.e. on this page you're using these 5 grays, 4 type styles etc.). With that information, we can allow users to "add" those elements to their saved styles and see if something on the page doesn't match. For instance, the red we use is #C8080A but I can now see that in these 8 places we're using a red that doesn't match. Would love to hear your thoughts around this!
4. There is actually a "History" tab located on the side-panel where you can view the changes made to that page over time. Let me know if that's what you meant and how we could improve the visibility/usability of that!
[+] [-] lee101|7 years ago|reply
[+] [-] bmaho|7 years ago|reply
[+] [-] awb|7 years ago|reply
It's Email or a phone call every time because they don't have the time it desire to learn a new tool for what to them is a one off design project.
[+] [-] bmaho|7 years ago|reply
We've seen freelancers and agencies record feedback themselves while on the phone with their clients but appreciate your honesty - super helpful for us.
[+] [-] profalseidol|7 years ago|reply
[+] [-] sgrove|7 years ago|reply
Few questions:
1. Is there a way to set different CSS for different breakpoints? It seems like if I tweak it for desktop size, it also applies to the mobile screen.
2. Is there an output that shows the full CSS diff so I know the extent of what I have to change, as a developer? Ideally you'd even be able to pull in source maps and generate a patch file for me to just apply.
3. Could you even make it so that this just generated a PR on the GitHub repo with the changes in the CSS/LESS/SCSS? Seems like that may require a lot more integration with the tooling, so might not be worth it.
[+] [-] kolnik|7 years ago|reply
1. Breakpoints are definitely something we’ve heard and are actively working on!
2/3. Another great idea - would love to hear more about what you hope to extract from the full css diff, versus change by change? The patch file/PR is an awesome idea and something we definitely want to push on as we integrate more with the chrome dev tool api :)
- Jono
[+] [-] newscracker|7 years ago|reply
* Don't trust users to remember and go back to a site that seemed interesting but wasn't working or loading.
[+] [-] wsul|7 years ago|reply
[+] [-] bmaho|7 years ago|reply
Love the idea of upvoting edits. Will definitely test that out more :)
[+] [-] raving-richard|7 years ago|reply
Wait, you're not Robert Landley!
Naming stuff: one of the hard problems of computer science.
[+] [-] sueders101|7 years ago|reply
[+] [-] bmaho|7 years ago|reply
Just added that to our backlog :) Wondering how you envision those changes within Toybox being displayed/integrated in Asana?
[+] [-] anacleto|7 years ago|reply
Well done.
[+] [-] bmaho|7 years ago|reply
[+] [-] JohnDotAwesome|7 years ago|reply
[+] [-] bmaho|7 years ago|reply
Would love to hear how you'd envision editing the HTML? Wondering what types of edits you're currently making to the HTML via the console?
[+] [-] Yoric|7 years ago|reply
[+] [-] bmaho|7 years ago|reply
We’re looking at other ways to “capture” pages i.e. js snippet, firefox, etc.
Let me know if you have any preferences or ideas there :)
[+] [-] swaggyBoatswain|7 years ago|reply
[+] [-] bmaho|7 years ago|reply
We go the opposite direction - from development to design. We capture web apps or sites (not design files) and allow non-technical teammates to make edits and communicate those changes with developers.
Webflow allows anyone to create and host a website from scratch using their robust WYSIWYG.
Unlike Webflow though, with Toybox you can capture any web app or site and make edits using our WYSIWYG (don’t need to have originally built it using Toybox).