HeyForm is an open-source form builder and management platform designed for small businesses. It provides a full-stack solution with a React-based drag-and-drop form builder, a NestJS GraphQL API backend, a standalone form renderer for public-facing forms, and an embed script for third-party sites. The system supports a wide range of field types (text, choice, rating, payment, signature, etc.), conditional logic with branching, multi-language internationalization, Stripe payments, AI-assisted form generation via OpenAI, and integrations with popular services like Slack, Notion, and Google Sheets. The architecture follows a monorepo pattern with shared packages for answer validation, utility functions, and type definitions, enabling code reuse across the server, webapp, and renderer. The backend is built with NestJS, MongoDB (Mongoose), Redis (Bull queues), and Apollo GraphQL, with scheduled jobs for cleanup and async task processing. The frontend uses React 19, Tailwind CSS, Zustand for state management, and Apollo Client for GraphQL communication. Security is a strong focus: the codebase includes SSRF protection, upload content validation, rate limiting, atomic verification codes, and extensive input sanitization. The project has a comprehensive test suite covering unit, integration, and end-to-end scenarios, including a permission matrix with over 270 cases. Despite some duplicated logic and large locale files, the overall code quality is high, with well-structured modules and clear separation of concerns.
VxeTable is a Vue 3 component library for building complex, enterprise-grade data tables and grids. It provides a comprehensive set of features including virtual scrolling for millions of rows, inline editing, Excel-style copy-paste, column resizing/dragging, filtering, sorting, pivot tables, tree/gannt views, and export/import/print. The library is architected as a set of Vue components (VxeTable, VxeGrid, VxeColumn, VxeToolbar, VxeColgroup) with an extensible plugin system based on hooks and renderers. It relies on a companion UI library (vxe-pc-ui) for modals, buttons, selects, and other controls, and uses xe-utils for utility functions. The codebase is large and well-organized, with separate modules for editing, filtering, keyboard navigation, validation, column customization, and export. Performance is a key focus, with virtual scrolling implemented for both X and Y axes. The library supports i18n with over 20 languages and includes a comprehensive theming system with light/dark modes. While primarily a UI component library, it also includes proxy-based server-side data operations in the VxeGrid component. The repository includes a demo application (examples/) for testing features, though the main artifact is the published npm package.
This is a monorepo for SurveyJS, a comprehensive open-source form/survey library that renders dynamic JSON-based forms across multiple frontend frameworks (React, Angular, Vue 3, and plain JavaScript). The core engine (`survey-core`) handles model parsing, validation, expressions, triggers, input masks, drag-and-drop, theming, and localization. It provides 20+ question types (text, checkbox, radio, dropdown, matrix, ranking, file, signature, etc.) with extensible UI components via framework-specific rendering packages. The library also includes a built-in linter for survey JSON static analysis and a tester for programmatic survey test execution. Architecture follows a layered pattern: core logic separate from UI, with each framework package consuming the core via a shared set of exported model classes. The codebase is large (2896 files) but well-structured, featuring a custom expression parser (PEG), a modular action-bar system, advanced popup management with focus trapping, and a generic drag-drop engine. Maintenance is active with frequent releases, but there is some technical drift in the form of commented-out legacy testcafe tests, auto-generated theme files, and cross-framework duplication that requires careful synchronization.
Formvuelar is a Vue 3 form component library designed for backend-driven form workflows, with first-class support for Laravel-style validation responses. The source defines 19+ Fvl* components (input, textarea, select, search select, tag select, checkboxes, radio, switches, sliders, color/date pickers, file uploads, dropzone) and a root FvlForm component that coordinates submission, error display, dirty-state tracking, and upload progress. The core architecture uses provide/inject plus mixins: FvlForm creates a form context object and child controls inject it via formControl.js to read backend errors, clear errors on input, and expose loading and upload state. Submission is handled by Axios with per-form instances and interceptors; the library expects Laravel's 422 { message, errors } payload by default but can be adapted through global $formvuelar configuration.
This repository implements a React library for building forms based on GraphQL APIs, specifically designed to work with Apollo Client. The library provides a code generation CLI tool that extracts GraphQL mutation information and converts it to JSON Schema, along with a React component that renders forms and handles submission via GraphQL mutations. The architecture consists of: 1. A CLI tool (`lib/cli.ts`) for generating schema and type definitions from GraphQL endpoints 2. Core form logic in `lib/forms/` including the main `ApolloForm` component, utilities for schema processing, and rendering customization 3. Integration with React-jsonschema-form as the underlying form engine Key features include conditional fields, custom validation, theming support, and automatic JSON Schema generation from GraphQL schemas. The library demonstrates particular strength in its JSON Schema manipulation utilities, which handle complex operations like resolving $ref references and applying conditional logic to schemas.