opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

a lightweight survey system with 40+ question types and AI generation
GitHub RepoImpressions2

Project Description

View on GitHub

Building Surveys Without the Headache: A Look at XIAOJUSURVEY

If you've ever had to build a survey, quiz, or feedback form from scratch, you know it's never as simple as it sounds. You need question types, logic branching, data collection, maybe some reporting—and before you know it, you've built a mini application instead of a simple form. That's where XIAOJUSURVEY comes in. It's a lightweight, open-source survey system from DiDi that gives you a full product-grade solution for building everything from market research questionnaires to online exams and complex forms.

What It Does

XIAOJUSURVEY is a complete survey platform that handles the entire questionnaire lifecycle. The system is built on a Vue3 + ElementPlus frontend with a NestJS + MongoDB backend, and it includes a cross-platform SDK for React Native. It's designed to be deployed as a full product, not just a library—you get user management, survey creation, distribution, data collection, and analysis out of the box.

The feature set is substantial. You get over 40 question types that have been battle-tested internally at DiDi, plus 100+ curated templates for common scenarios like customer satisfaction surveys, voting, and assessments. The system supports intelligent logic orchestration—things like display logic, skip logic, and question referencing—so you can build dynamic, multi-rule forms. There's also fine-grained permission management for team collaboration, and online reporting capabilities including per-question statistics and cross-tabulation analysis.

One of the more interesting additions is AI-powered survey generation. You can connect it to an LLM and generate questionnaires through conversation, with real-time preview as you go. That's a nice touch for quickly spinning up a draft survey without staring at a blank page.

Why It's Cool

What sets XIAOJUSURVEY apart isn't just the feature list—it's the underlying design philosophy. The project has invested heavily in standardization, which is rare for open-source survey tools.

Standardized protocols. The team has published a questionnaire Meta protocol that separates business descriptions (questionnaire and question type protocols) from material descriptions (question type materials and setters). This isn't just internal architecture—it's a documented agreement that ensures concepts stay consistent across the entire system. If you're building on top of this, you get a solid foundation rather than a tangled mess of ad-hoc conventions.

Materialized question types. Each question type is designed with common base capabilities plus atomic, customizable features. This means you can extend the system with your own question types without fighting the framework. The architecture is built for customization, which is exactly what you want when you're adapting a survey tool to your specific domain.

WYSIWYG consistency. The builder and the rendering engine use the same scenario-based design, so what you see in the editor is what respondents actually see. That sounds obvious, but plenty of survey tools have a disconnect between the authoring experience and the final output. This design choice eliminates a whole class of "why does this look different when I publish it" problems.

Security as a feature. The README highlights extensible security capabilities: encrypted data transmission, sensitive word filtering, and anti-voting-fraud measures. For anyone dealing with user data, this isn't a nice-to-have—it's a requirement, and it's good to see it treated as a first-class concern.

It's actually productized. This isn't a bare-bones library where you have to wire everything together yourself. You get login, registration, survey permissions, and the full create-edit-distribute-analyze workflow. That means you can stand up a working survey solution quickly and focus on your specific use case rather than reinventing the wheel.

How to Try It

You'll need Node.js version 18 or higher. The project is hosted at https://github.com/didi/xiaoju-survey, and there's an English README available alongside the Chinese version.

The repository structure includes the web client (Vue3 + ElementPlus), the server (NestJS + MongoDB), and the cross-platform SDK. To get started, you'll want to clone the repo and follow the setup instructions in the README for running both the frontend and backend locally. Since it's a full-stack application, you'll need MongoDB running as well.

If you want to see it in action before setting anything up, the project has an online demo and documentation site at https://xiaojusurvey.didi.cn. The docs cover everything from feature introductions to the design principles behind the Meta protocol and UI/UX specifications. There's also guidance on integrating with external systems via custom hooks for data and message push integrations.

Final Thoughts

XIAOJUSURVEY is a solid choice if you need a self-hosted survey platform with real depth. It's particularly well-suited for teams that need to build custom survey solutions for specific domains—the standardization and extensibility make it viable as a foundation, not just a tool you use as-is. The AI generation is a nice bonus for rapid prototyping, and the security features address real-world concerns around data collection.

It's worth noting that the documentation leans heavily toward Chinese, so non-Chinese speakers might need to rely on the English README and some translation tools. But if you can work past that, this is a genuinely comprehensive system that's been proven at scale. Whether you're building a simple feedback form or a complex assessment platform, it's worth a look.

Back to Projects
Project ID: 181413b8-3e0c-42c6-9526-25431c4f3e65Last updated: August 23, 2026 at 02:46 AM