[{"data":1,"prerenderedAt":489},["ShallowReactive",2],{"kc-/knowledge/what-is-roundpushpin":3,"kc-clusters-/knowledge/what-is-roundpushpin":135,"kc-related-/knowledge/what-is-roundpushpin":136},{"id":4,"title":5,"author":6,"body":7,"date":99,"description":100,"draft":101,"extension":102,"faqs":103,"image":113,"imageAlt":114,"isPillar":101,"meta":115,"navigation":116,"path":117,"pillar":114,"pillarName":114,"seo":118,"sources":119,"stem":128,"tags":129,"takeaways":132,"updated":133,"__hash__":134},"knowledge/knowledge/what-is-roundpushpin.md","What Is RoundPushPin? The Structured-Data Form Builder","RoundPushPin Team",{"type":8,"value":9,"toc":91},"minimark",[10,14,19,32,36,62,66,77,81],[11,12,13],"p",{},"RoundPushPin is an self-hosted conversational form builder that stores every response in a relational PostgreSQL database instead of an unstructured JSON blob. It pairs the one-question-at-a-time experience people expect with a data architecture teams can actually query, join, and trust.",[15,16,18],"h2",{"id":17},"what-is-roundpushpin","What is RoundPushPin?",[11,20,21,31],{},[22,23,24,25,30],"strong",{},"RoundPushPin is a form builder — a ",[26,27,29],"a",{"href":28},"/compare/typeform","Typeform alternative"," — built around structured data."," It keeps the conversational interface that drives high completion, but underneath it maps each form to a real database schema: every question is a typed column, every response a row. The result is a tool that produces clean, queryable data by default, not a pile of exports to clean up later.",[15,33,35],{"id":34},"how-does-roundpushpin-work","How does RoundPushPin work?",[11,37,38,41,42,46,47,51,52,56,57,61],{},[22,39,40],{},"You build one master template, and RoundPushPin turns it into a relational schema automatically."," From that single template you can replicate ",[26,43,45],{"href":44},"/knowledge/one-template-many-versions","many versions",", translate it into ",[26,48,50],{"href":49},"/knowledge/multilingual-forms","10+ languages",", and reuse a question set across items with ",[26,53,55],{"href":54},"/knowledge/repeatable-contexts","repeatable contexts"," — while every version sends answers to one place you can ",[26,58,60],{"href":59},"/knowledge/query-form-data-with-sql","query with SQL"," or export to CSV and BigQuery.",[15,63,65],{"id":64},"what-makes-roundpushpin-different","What makes RoundPushPin different?",[11,67,68,76],{},[22,69,70,71,75],{},"Its ",[26,72,74],{"href":73},"/knowledge/form-data-architecture","data architecture","."," Most form tools store responses as JSON blobs or spreadsheet rows; RoundPushPin stores them relationally, which is the difference between data you can question and data you have to wrangle. It is also self-hosted, so your responses live on your own infrastructure.",[15,78,80],{"id":79},"who-is-roundpushpin-for","Who is RoundPushPin for?",[11,82,83,86,87,75],{},[22,84,85],{},"Teams whose forms feed real decisions — product, research, operations, and developers — and who care what happens to the data after \"submit.\" If you've ever exported form responses just to reshape them before you could analyze them, RoundPushPin is built for you."," Start with ",[26,88,90],{"href":89},"/knowledge/why-relational-data","why your form data deserves a real database",{"title":92,"searchDepth":93,"depth":93,"links":94},"",2,[95,96,97,98],{"id":17,"depth":93,"text":18},{"id":34,"depth":93,"text":35},{"id":64,"depth":93,"text":65},{"id":79,"depth":93,"text":80},"2026-01-30","RoundPushPin is a self-hosted conversational form builder that stores responses in a relational PostgreSQL database — a Typeform alternative for queryable data.",false,"md",[104,107,110],{"q":105,"a":106},"Is RoundPushPin free?","RoundPushPin is self-hostable, and it offers a paid hosted plan with a 7-day free trial. Self-hosted, you provide the infrastructure; the hosted plan handles that for you.",{"q":108,"a":109},"Is RoundPushPin a Typeform alternative?","Yes — it offers the same conversational, one-question-at-a-time experience, but stores responses in a relational PostgreSQL database you can query with SQL, rather than inside a hosted platform.",{"q":111,"a":112},"What can you build with RoundPushPin?","Surveys, applications, registrations, intake and onboarding flows — any form where responses become data you need to query, join, or analyze. It's aimed at teams whose forms feed real decisions.","/images/knowledge/what-is-roundpushpin.png",null,{},true,"/knowledge/what-is-roundpushpin",{"title":5,"description":100},[120,124],{"title":121,"url":122,"publisher":123},"A Relational Model of Data for Large Shared Data Banks (E. F. Codd, 1970)","https://dl.acm.org/doi/10.1145/362384.362685","Communications of the ACM",{"title":125,"url":126,"publisher":127},"PostgreSQL Documentation","https://www.postgresql.org/docs/current/","PostgreSQL Global Development Group","knowledge/what-is-roundpushpin",[130,131],"product","introduction",[],"2026-02-28","oMj2mW0wEpzntF1Pqc8v99Qd_B2E4Y3lfMb8WdUTJmE",[],[137,317],{"id":138,"title":139,"author":6,"body":140,"date":284,"description":285,"draft":101,"extension":102,"faqs":286,"image":296,"imageAlt":114,"isPillar":101,"meta":297,"navigation":116,"path":298,"pillar":299,"pillarName":300,"seo":301,"sources":302,"stem":311,"tags":312,"takeaways":314,"updated":315,"__hash__":316},"knowledge/knowledge/building-better-forms.md","Building Better Forms: Our Product Vision",{"type":8,"value":141,"toc":272},[142,145,149,155,158,161,165,170,173,177,183,187,190,194,197,201,241,245,248,269],[11,143,144],{},"Forms are everywhere. Job applications, customer surveys, event registrations, onboarding flows. They're one of the most common ways software collects data from humans. Yet the tools we use to build them force us to choose between great UX and great data.",[15,146,148],{"id":147},"do-you-have-to-choose-between-form-ux-and-data-quality","Do you have to choose between form UX and data quality?",[11,150,151,154],{},[22,152,153],{},"No — that trade-off is a false one."," Polished form tools tend to hide your data in a black box, while custom-built forms give you data control at the cost of weeks of work and weaker UX. RoundPushPin gives you both: conversational UX on top of a structured, queryable database.",[11,156,157],{},"On one side, you have Typeform and its clones. Beautiful, conversational, high completion rates. But your data lives in a black box. On the other side, you have custom-built forms. Full control over your data model, but you're spending weeks building something that still doesn't look as good.",[11,159,160],{},"RoundPushPin eliminates this trade-off.",[15,162,164],{"id":163},"what-are-roundpushpins-design-principles","What are RoundPushPin's design principles?",[166,167,169],"h3",{"id":168},"_1-respondent-experience-first","1. Respondent Experience First",[11,171,172],{},"Every form built with RoundPushPin uses a one-question-at-a-time interface. CSS Scroll Snap provides native-feeling transitions. Vue's transition system handles animations. The result feels smooth, focused, and respectful of the respondent's attention.",[166,174,176],{"id":175},"_2-data-as-a-first-class-citizen","2. Data as a First-Class Citizen",[11,178,179,180,75],{},"Behind the scenes, every form maps to a PostgreSQL schema. We use Drizzle ORM with TypeScript to define table structures that mirror your form's questions. This means your data is queryable, joinable, and analyzable from the moment it's collected — the reasoning behind ",[26,181,182],{"href":89},"choosing a relational model over JSON blobs",[166,184,186],{"id":185},"_3-developer-experience-matters","3. Developer Experience Matters",[11,188,189],{},"RoundPushPin is built with TypeScript end-to-end. Validation schemas defined with Zod work on both client and server — the same rules that provide real-time feedback to respondents also protect your API. No duplication, no drift.",[166,191,193],{"id":192},"_4-own-your-infrastructure","4. Own Your Infrastructure",[11,195,196],{},"We believe your data should live on your servers. RoundPushPin is self-hosted by default. A Docker Compose file gets you running with PostgreSQL in one command. No vendor lock-in, no data residency concerns, no surprise pricing.",[15,198,200],{"id":199},"what-is-roundpushpin-built-with","What is RoundPushPin built with?",[202,203,204,211,217,223,229,235],"ul",{},[205,206,207,210],"li",{},[22,208,209],{},"Nuxt 4"," for server-side rendering and client-side interactivity",[205,212,213,216],{},[22,214,215],{},"FormKit"," for schema-driven form rendering",[205,218,219,222],{},[22,220,221],{},"Drizzle ORM"," for type-safe database operations",[205,224,225,228],{},[22,226,227],{},"PostgreSQL"," for relational data storage",[205,230,231,234],{},[22,232,233],{},"Pinia"," for client-side state management",[205,236,237,240],{},[22,238,239],{},"Zod"," for isomorphic validation",[15,242,244],{"id":243},"what-is-roundpushpin-building-next","What is RoundPushPin building next?",[11,246,247],{},"Our roadmap is focused on three areas:",[249,250,251,257,263],"ol",{},[205,252,253,256],{},[22,254,255],{},"The Form Builder",": A visual editor for creating forms with conditional logic, validation rules, and custom themes",[205,258,259,262],{},[22,260,261],{},"The Response Engine",": Real-time data capture with event sourcing for granular analytics",[205,264,265,268],{},[22,266,267],{},"The Analytics Layer",": Built-in dashboards for completion rates, drop-off analysis, and response patterns",[11,270,271],{},"We're shipping fast and improving constantly. If you care about forms and data, follow along.",{"title":92,"searchDepth":93,"depth":93,"links":273},[274,275,282,283],{"id":147,"depth":93,"text":148},{"id":163,"depth":93,"text":164,"children":276},[277,279,280,281],{"id":168,"depth":278,"text":169},3,{"id":175,"depth":278,"text":176},{"id":185,"depth":278,"text":186},{"id":192,"depth":278,"text":193},{"id":199,"depth":93,"text":200},{"id":243,"depth":93,"text":244},"2026-01-25","How RoundPushPin reimagines the form-building experience with conversational UX, developer-first design, and structured data.",[287,290,293],{"q":288,"a":289},"What makes a good form builder?","One that delivers a high-completion experience and keeps the resulting data usable. Many tools optimize the first and neglect the second; the better question after 'how does it look?' is 'how do I query this data?'",{"q":291,"a":292},"Why does form data structure matter?","Because the storage model caps what you can do later: structured, typed data is queryable and joinable, while unstructured blobs must be wrangled before any analysis. Structure is the difference between data you can question and data you fight.",{"q":294,"a":295},"Can I self-host RoundPushPin?","Yes. RoundPushPin is self-hosted, built with TypeScript end to end, so you can run it on your own infrastructure and own your data.","/images/knowledge/building-better-forms.png",{},"/knowledge/building-better-forms","conversational-form-design","Conversational form design",{"title":139,"description":285},[303,307],{"title":304,"url":305,"publisher":306},"Progressive Disclosure (Jakob Nielsen)","https://www.nngroup.com/articles/progressive-disclosure/","Nielsen Norman Group",{"title":308,"url":309,"publisher":310},"Galesic, M. & Bosnjak, M. (2009) — Effects of questionnaire length on participation and response quality","https://doi.org/10.1093/poq/nfp031","Public Opinion Quarterly","knowledge/building-better-forms",[130,313],"vision",[],"2026-02-12","KahoZtkHADMgHZ0d-4W1-mmlHZ5y0DDc7t43VdOoEp4",{"id":318,"title":319,"author":6,"body":320,"date":447,"description":448,"draft":101,"extension":102,"faqs":449,"image":459,"imageAlt":460,"isPillar":101,"meta":461,"navigation":116,"path":462,"pillar":463,"pillarName":464,"seo":465,"sources":466,"stem":478,"tags":479,"takeaways":484,"updated":447,"__hash__":488},"knowledge/knowledge/landing-page-forms.md","Landing Page Forms for Paid Traffic: Meta & Google Ads",{"type":8,"value":321,"toc":438},[322,325,329,335,339,352,359,363,373,379,383,398,402,408,412,428,432],[11,323,324],{},"When traffic is paid, the form is where your ad budget is won or lost. An organic visitor who bounces costs nothing; a visitor you paid Meta or Google to send costs real money every time the form fails to convert. That changes the rules — a landing page form for paid traffic has one job, and everything on the page should serve it.",[15,326,328],{"id":327},"what-makes-a-paid-traffic-landing-form-different","What makes a paid-traffic landing form different?",[11,330,331,334],{},[22,332,333],{},"You paid for the click, so the form has to convert it now — there's no second visit to rely on."," A paid visitor arrives with intent but little patience and usually on mobile. So the page strips away navigation and competing links, leads with the offer from the ad, and puts a single form and a single call to action front and centre. One page, one promise, one action.",[15,336,338],{"id":337},"why-does-message-match-matter-so-much","Why does message match matter so much?",[11,340,341,344,345,351],{},[22,342,343],{},"Because the ad, the landing page headline, and the form must make the same promise — any gap is a place to lose a paid click."," If the ad says \"cut form drop-off by 30%,\" the page headline and the form should pick up exactly that promise. Mismatch doesn't just hurt conversion; on Google Ads, landing page experience is one of the three ",[26,346,350],{"href":347,"rel":348},"https://support.google.com/google-ads/answer/6167118",[349],"nofollow","Quality Score"," components, so a mismatched page can raise what you pay per click.",[11,353,354],{},[355,356],"img",{"alt":357,"src":358},"The ad, the landing page headline, and the form all carrying the same promise, with arrows showing continuity from click to submit","/images/knowledge/diagrams/message-match.png",[15,360,362],{"id":361},"how-fast-does-the-landing-page-need-to-be","How fast does the landing page need to be?",[11,364,365,368,369,372],{},[22,366,367],{},"Fast — because paid traffic bounces before slow pages even render."," Think with Google found that mobile bounce probability rises ",[22,370,371],{},"32% as load time goes from 1 to 3 seconds",", and climbs sharply from there. Most paid-social traffic is mobile, so a heavy page quietly burns budget before the form is ever seen. Treat speed as a conversion lever, not a technical afterthought.",[11,374,375],{},[355,376],{"alt":377,"src":378},"Bar chart showing mobile bounce probability rising as page load time increases from 1s to 10s","/images/knowledge/diagrams/speed-vs-bounce.png",[15,380,382],{"id":381},"how-many-fields-should-the-form-have","How many fields should the form have?",[11,384,385,388,389,393,394,75],{},[22,386,387],{},"As few as the campaign genuinely needs — every field is a chance to lose a visitor you paid for."," Baymard found typical forms carry nearly double the necessary fields. Capture the minimum that lets you follow up (often just email), and enrich the lead later rather than demanding everything upfront. The field-by-field discipline is covered in ",[26,390,392],{"href":391},"/knowledge/lead-capture-best-practices","lead capture best practices"," and the build mechanics in ",[26,395,397],{"href":396},"/knowledge/lead-generation-forms","how to design a form that generates leads",[15,399,401],{"id":400},"how-do-you-design-the-form-for-mobile-and-a-single-action","How do you design the form for mobile and a single action?",[11,403,404,407],{},[22,405,406],{},"One visible CTA, no navigation or competing links, large tap targets, and the form above the fold."," Remove the site header and footer links that let people wander off — a paid landing page is not your homepage. Use a single, benefit-led button (\"Get my free audit\", not \"Submit\"), make inputs easy to tap and autofill, and keep the whole ask visible without hunting. Every extra choice is a chance to leak the click.",[15,409,411],{"id":410},"how-do-you-know-its-working-and-improve-it","How do you know it's working — and improve it?",[11,413,414,417,418,422,423,427],{},[22,415,416],{},"Track the conversion, then test one thing at a time."," Wire up conversion tracking so Meta and Google can optimize delivery, watch your ",[26,419,421],{"href":420},"/knowledge/form-completion-rate","completion rate",", and then ",[26,424,426],{"href":425},"/knowledge/ab-testing-forms","A/B test"," the highest-leverage elements — headline message match, number of fields, and CTA wording — rather than redesigning on a hunch. Paid traffic gives you volume fast, which is exactly what makes testing worthwhile.",[15,429,431],{"id":430},"how-roundpushpin-helps-your-paid-landing-pages-convert","How RoundPushPin helps your paid landing pages convert",[11,433,434,437],{},[22,435,436],{},"RoundPushPin gives you fast, conversational forms with one clear step, native A/B testing, and built-in heatmaps and drop-off analytics — so you can see exactly where paid clicks leak and fix it."," Because every lead lands in structured data, you can match conversions back to campaigns and prove which ad, page, and form actually pay back the spend. Start by tightening message match and watching your completion rate climb.",{"title":92,"searchDepth":93,"depth":93,"links":439},[440,441,442,443,444,445,446],{"id":327,"depth":93,"text":328},{"id":337,"depth":93,"text":338},{"id":361,"depth":93,"text":362},{"id":381,"depth":93,"text":382},{"id":400,"depth":93,"text":401},{"id":410,"depth":93,"text":411},{"id":430,"depth":93,"text":431},"2026-06-03","You paid for every click — don't lose it at the form. Best practices for landing page forms on Meta and Google traffic: message match, speed, and a minimal ask.",[450,453,456],{"q":451,"a":452},"What is a paid-traffic landing page form?","It's a form on a dedicated landing page that visitors reach by clicking a Meta or Google ad. Unlike a form buried in your site, its only job is to convert the specific click you just paid for — so everything on the page serves that one action.",{"q":454,"a":455},"How many fields should a paid landing page form have?","As few as the campaign genuinely needs. You're interrupting a paid visitor, every field costs conversion, and Baymard found typical forms carry nearly double the necessary fields. Capture the minimum now and enrich the lead later.",{"q":457,"a":458},"Does landing page quality affect ad cost?","On Google Ads, yes. Landing page experience is one of the three Quality Score components, and Quality Score influences ad rank and the price you pay per click — so a better-matched, faster page can lower your cost.","/images/knowledge/landing-page-forms.png","An ad, a landing page, and a form carrying the same promise from click to submit",{},"/knowledge/landing-page-forms","lead-generation","Lead generation",{"title":319,"description":448},[467,470,474],{"title":468,"url":347,"publisher":469},"About Quality Score (landing page experience is one of three components)","Google Ads Help",{"title":471,"url":472,"publisher":473},"Mobile page speed: new industry benchmarks (load time vs. bounce)","https://www.thinkwithgoogle.com/marketing-strategies/app-and-mobile/mobile-page-speed-new-industry-benchmarks-load-time-vs-bounce/","Think with Google",{"title":475,"url":476,"publisher":477},"Checkout flows average 11.3 form fields — nearly double the necessary","https://baymard.com/blog/checkout-flow-average-form-fields","Baymard Institute","knowledge/landing-page-forms",[480,481,482,483],"landing pages","paid traffic","lead generation","conversion",[485,486,487],"Match the ad's promise all the way to the form — a gap wastes spend and lowers Google Ads Quality Score.","Speed and mobile are conversion: mobile bounce probability rises 32% as load goes from 1s to 3s (Think with Google).","Ask the fewest fields, give one clear CTA, remove distractions — then A/B test.","Gn9rnY_SCffx6WkRS9_xbEuBpsYvUr348GPmUxDNQE8",1780930372557]