Inspiration
Traditional survey platforms are stuck in the past. They force users to manually drag-and-drop hundreds of fields, struggle with complex logic, and pay expensive agencies for translations. We realized that survey creation is fundamentally a language problem—one that Large Language Models are perfectly suited to solve.
We wanted to build the "Figma for Surveys," but powered by Generative AI. Our goal was to move the user from "How do I build this form?" to "What data do I need?" We envisioned a platform where a user could upload a PDF of an old medical form, or simply type "Create a satisfaction survey for a coffee shop in Arabic," and have a fully functional, logic-driven, and validated survey ready in seconds.
What it does
Tenthify is an AI-Native SaaS platform that handles the entire lifecycle of data collection:
- The AI Canvas: A conversational interface where users collaborate with Gemini 2.5 Pro. Users can generate surveys from scratch, upload PDFs to digitize them instantly, or iteratively refine questions using natural language (e.g., "Make tone more professional," "Translate to French," "Add conditional logic").
- Multilingual at the Core: The platform is built from the ground up for global use. It supports instant AI translation, Right-to-Left (RTL) layouts for Arabic, and allows creators to manage surveys in multiple languages simultaneously.
- The Community Hub: A viral growth engine where users can publish their surveys as templates. Other users can browse this hub, preview surveys, and "Remix" them using AI to fit their specific needs.
- SEO-Optimized Runner: A high-performance, Server-Side Rendered (SSR) public runner that ensures surveys are discoverable by search engines, with dynamic Open Graph tags for beautiful social sharing.
- Smart Management: A real-time dashboard with "Exploded View" data grids for analyzing complex nested data, automated tagging, and subscription management via PayPal.
How we built it
We didn't just build Tenthify with AI features; we built it using a squad of AI agents. To manage the complexity of a full-stack SaaS monorepo, we devised a Multi-Agent Orchestration Workflow powered by Gemini 3.
Instead of one giant chat session, we instantiated six specialized Gemini Agents, each with a strict domain of responsibility:
- The Lead Architect Agent: Responsible for the high-level system design, shared interfaces, security rules, CI/CD pipelines, and integrating the work of all other agents. This agent held the "global context" of the application.
- The AI Canvas Agent: Focused purely on the prompt engineering and Vertex AI integration for the generative features.
- The Creator Agent: Specialized in the SurveyJS Form Builder UI and complex drag-and-drop logic.
- The Responses Agent: Tasked with building the "Exploded View" data grids and visualization dashboards.
- The Runner Agent: Focused on the public-facing SSR performance, SEO meta-tag injection, and URL routing.
- The Marketing Agent: Responsible for the landing page content and legal documentation.
How it worked: The Lead Architect would define an interface (e.g., UserProfile) and "delegate" a task to the Runner Agent (e.g., "Implement the public viewer using this interface"). The Runner Agent would generate the code, which the Lead would then review, audit for security, and merge into the monorepo. This allowed us to build a complex, multi-app platform with enterprise-grade architecture in record time.
Challenges we ran into
- JSON Hallucinations: Getting an LLM to output valid SurveyJS JSON schemas (with correct nesting and types) is difficult. We solved this by using a multi-layer defense: a strict System Persona ("You are a JSON API"), schema injection in the prompt, and a backend "Self-Healing" function that parses and repairs malformed JSON before it reaches the client.
- Context Window & Token Limits: Sending a large existing survey to the AI for modification consumes massive tokens, especially if the JSON contains Base64 images. We built a Recursive Sanitizer that strips heavy assets from the JSON before sending it to Gemini and auto-restores them on the frontend, reducing payload size by ~99%.
- SSR & SEO Flicker: Ensuring the public runner rendered the correct language (English vs. Arabic) on the server without a client-side "flash" was tricky. We solved this with a Universal Route Resolver that fetches data and pre-loads translation files on the server, transferring the state to the client for instant hydration.
- Circular Dependencies in Signals: Moving to a fully Signal-based architecture caused some initial "infinite loop" issues in our Dashboard. We resolved this by refactoring our state management into dedicated Services and using
untracked()execution contexts.
Accomplishments that we're proud of
- The "Remix" Workflow: We built a feature where a user can take any public survey from the community and "Remix" it with AI. This creates a powerful network effect for content creation.
- Truly Global i18n: We didn't just translate strings; we built an engine that dynamically adapts the UI direction (LTR/RTL), sanitizes filenames for different languages, and even localizes the internal UI of the SurveyJS Creator tool itself.
- Production-Grade Infrastructure: We implemented a complete CI/CD pipeline using GitHub Actions that handles Monorepo builds, secrets management, and multi-target Firebase deployment automatically.
What we learned
- Prompt Engineering is Engineering: Writing effective prompts for complex JSON structures requires the same rigor as writing code—versioning, testing, and edge-case handling.
- Signals are the Future: Transitioning to Zoneless Angular was challenging but resulted in a significantly more predictable and performant codebase.
- Security is a Layer Cake: Securing a multi-tenant SaaS requires checks at every level: Firestore Rules for basic access, Cloud Functions for business logic, and UI gates for user experience.
What's next for Tenthify
- Agentic Interviewer: Replacing the static form with a conversational AI agent that interviews the respondent dynamically based on the survey goal.
- Deeper Analytics: Using Gemini 2.5 Flash to generate natural language summaries and sentiment analysis reports from thousands of open-text responses.
- Custom Domains: Allowing Agency users to host the runner on their own subdomains (e.g.,
surveys.company.com).
Built With
- angular.js
- firebase
- gemini
- google-cloud
- node.js
- primeng
- surveyjs
- tailwindcss
- typescript
- vertex-ai
Log in or sign up for Devpost to join the conversation.