Gaffa
Gaffa is a REST API for browser automation that enables developers to control real, full browsers at scale with a single API call, eliminating the need to manage headless-browser frameworks, proxies, scaling, or infrastructure. It handles JavaScript rendering by default, ensuring that pages load exactly as they would for a real user, and supports a variety of automation tasks: scraping websites, taking screenshots, exporting pages to PDF, converting pages into clean, LLM-ready Markdown, infinite-scroll scraping of dynamic sites, form filling, capturing full-page screenshots, and archiving pages in offline form. Gaffa includes a rotating residential proxy network to ensure reliable access from different geographies, automatic CAPTCHA handling (where needed), and a credit-based usage model where you pay for actual browser execution time and bandwidth, simplifying scaling and cost control.
Learn more
SurveyJS
SurveyJS is an embeddable, self-hosted, white-label form builder for teams building custom forms, surveys, questionnaires, and other data collection tools inside web applications. It runs entirely on the client and is fully compatible with all modern JavaScript frameworks, including React, Angular, and Vue. SurveyJS integrates with any backend, giving you full control over data, security, user access, deployment, and business logic. Instead of hardcoding forms, you can empower non-technical users to generate and edit JSON schema-based form configurations through a drag-and-drop form builder.
Create dynamic forms with custom conditional logic, validation, multilingual support, PDF export, and analytics. Ideal for SaaS, enterprise software, HR, healthcare, fintech, and other regulated industries, SurveyJS helps teams reduce engineering effort, standardize data collection, maintain full control over data, and deliver unlimited forms that match their brand and feel native to users.
Learn more
Choreographer-js
A simple library to take care of complicated animations. You can also add custom functions that do non-CSS animations! Install and save to your package.json, and include it in your Javascript. Brew up some instant scroll animations. Animate based on scroll location, animate based on mouse X location and create multiple animations based on mouse X location. Now you can create an instance of Choreographer, and run the animations based on whatever measurement floats your boat (ex. scroll position, mouse position, timestamp, whatever). The easiest way to understand how this all works is to check out the examples. Bugs will occur if you overlap animation ranges that affect the same style properties! There are two built-in animation functions available, called 'scale' and 'change'. Progress is what allows for progressive scaling of values (ex. smooth fading of opacity, 2d translation, etc.) If the value is between 0 and 1, that means you are within a range.
Learn more