|
| 1 | +--- |
| 2 | +const faqs = [ |
| 3 | + { |
| 4 | + question: "Is LibreDB Studio really free?", |
| 5 | + answer: "Yes, 100% free and open source under the MIT license. No hidden costs, no premium tiers, no feature limitations. You get the full product, forever. We believe great developer tools should be accessible to everyone." |
| 6 | + }, |
| 7 | + { |
| 8 | + question: "Can I self-host LibreDB Studio?", |
| 9 | + answer: "Absolutely! Self-hosting is a first-class citizen. Deploy with Docker, Kubernetes, or any Node.js environment. Your data stays on your infrastructure, under your control. We provide detailed deployment guides for all major platforms." |
| 10 | + }, |
| 11 | + { |
| 12 | + question: "Which AI providers are supported?", |
| 13 | + answer: "We support multiple AI providers out of the box: Google Gemini (default), OpenAI (GPT-4, GPT-3.5), and local LLMs via Ollama or LM Studio. You can switch providers anytime or even run completely offline with local models." |
| 14 | + }, |
| 15 | + { |
| 16 | + question: "Is my database connection secure?", |
| 17 | + answer: "Security is our top priority. All connections use TLS/SSL encryption. Credentials are never stored in plain text. For self-hosted deployments, your data never leaves your network. We also support JWT authentication and role-based access control (RBAC)." |
| 18 | + }, |
| 19 | + { |
| 20 | + question: "Which databases are supported?", |
| 21 | + answer: "Currently we support PostgreSQL, MySQL, SQLite, and MongoDB. Each adapter is optimized for its specific database with full feature support including schema inspection, query execution, and maintenance tools. More databases coming soon!" |
| 22 | + }, |
| 23 | + { |
| 24 | + question: "Can I use it on my phone or tablet?", |
| 25 | + answer: "Yes! LibreDB Studio is built mobile-first. The entire UI is touch-optimized and responsive. Check your production database from anywhere - perfect for on-call situations or quick fixes on the go." |
| 26 | + }, |
| 27 | + { |
| 28 | + question: "Do I need to install anything?", |
| 29 | + answer: "No installation required for end users. LibreDB Studio runs entirely in your browser. For self-hosting, you just need Docker or Node.js. That's it - no Java, no Electron, no heavy desktop apps." |
| 30 | + }, |
| 31 | + { |
| 32 | + question: "How does it compare to pgAdmin or DBeaver?", |
| 33 | + answer: "Unlike pgAdmin (PostgreSQL only) or DBeaver (desktop app), LibreDB Studio is web-based, mobile-ready, and AI-powered. Zero installation, works on any device, and includes an AI assistant that understands your schema. Plus, it's lighter and faster." |
| 34 | + }, |
| 35 | +]; |
| 36 | +--- |
| 37 | + |
| 38 | +<section id="faq" class="py-16 md:py-24 relative"> |
| 39 | + <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8"> |
| 40 | + <!-- Section Header --> |
| 41 | + <div class="text-center mb-10 md:mb-16 px-2"> |
| 42 | + <h2 class="text-2xl sm:text-3xl md:text-4xl font-bold text-white mb-3 md:mb-4"> |
| 43 | + Frequently Asked <span class="gradient-text">Questions</span> |
| 44 | + </h2> |
| 45 | + <p class="text-sm md:text-lg text-slate-400 max-w-2xl mx-auto"> |
| 46 | + Everything you need to know about LibreDB Studio. |
| 47 | + </p> |
| 48 | + </div> |
| 49 | + |
| 50 | + <!-- FAQ Accordion --> |
| 51 | + <div class="space-y-3 md:space-y-4"> |
| 52 | + {faqs.map((faq, index) => ( |
| 53 | + <div class="faq-item rounded-xl md:rounded-2xl bg-slate-900/50 border border-slate-800 overflow-hidden transition-all duration-300 hover:border-slate-700"> |
| 54 | + <button |
| 55 | + type="button" |
| 56 | + class="faq-trigger w-full flex items-center justify-between gap-4 p-4 md:p-6 text-left transition-colors" |
| 57 | + data-faq-index={index} |
| 58 | + aria-expanded="false" |
| 59 | + > |
| 60 | + <span class="text-sm md:text-base font-medium text-white pr-4">{faq.question}</span> |
| 61 | + <div class="faq-icon-wrapper flex-shrink-0 w-8 h-8 md:w-10 md:h-10 rounded-full bg-slate-800 flex items-center justify-center transition-all duration-300"> |
| 62 | + <svg class="faq-icon w-4 h-4 md:w-5 md:h-5 text-primary-400 transition-transform duration-300" fill="none" stroke="currentColor" viewBox="0 0 24 24"> |
| 63 | + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v12m6-6H6"></path> |
| 64 | + </svg> |
| 65 | + </div> |
| 66 | + </button> |
| 67 | + <div class="faq-content hidden" data-faq-content={index}> |
| 68 | + <div class="px-4 md:px-6 pb-4 md:pb-6"> |
| 69 | + <div class="pt-2 border-t border-slate-800"> |
| 70 | + <p class="pt-4 text-sm md:text-base text-slate-400 leading-relaxed">{faq.answer}</p> |
| 71 | + </div> |
| 72 | + </div> |
| 73 | + </div> |
| 74 | + </div> |
| 75 | + ))} |
| 76 | + </div> |
| 77 | + |
| 78 | + <!-- Still have questions --> |
| 79 | + <div class="mt-10 md:mt-12 text-center p-6 md:p-8 rounded-2xl bg-gradient-to-r from-primary-950/50 to-accent-950/50 border border-primary-500/20"> |
| 80 | + <div class="w-12 h-12 md:w-14 md:h-14 mx-auto mb-4 rounded-full bg-primary-500/10 flex items-center justify-center"> |
| 81 | + <svg class="w-6 h-6 md:w-7 md:h-7 text-primary-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"> |
| 82 | + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path> |
| 83 | + </svg> |
| 84 | + </div> |
| 85 | + <h3 class="text-lg md:text-xl font-semibold text-white mb-2">Still have questions?</h3> |
| 86 | + <p class="text-sm md:text-base text-slate-400 mb-4 md:mb-6"> |
| 87 | + Can't find the answer you're looking for? Reach out to our community. |
| 88 | + </p> |
| 89 | + <div class="flex flex-col sm:flex-row items-center justify-center gap-3"> |
| 90 | + <a |
| 91 | + href="https://github.com/libredb/libredb-studio/discussions" |
| 92 | + target="_blank" |
| 93 | + rel="noopener noreferrer" |
| 94 | + class="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-5 py-2.5 bg-slate-800 hover:bg-slate-700 text-white text-sm font-medium rounded-lg transition-colors border border-slate-700" |
| 95 | + > |
| 96 | + <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"> |
| 97 | + <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/> |
| 98 | + </svg> |
| 99 | + GitHub Discussions |
| 100 | + </a> |
| 101 | + <a |
| 102 | + href="https://www.linkedin.com/company/libredb" |
| 103 | + target="_blank" |
| 104 | + rel="noopener noreferrer" |
| 105 | + class="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-5 py-2.5 bg-primary-600 hover:bg-primary-500 text-white text-sm font-medium rounded-lg transition-colors" |
| 106 | + > |
| 107 | + <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"> |
| 108 | + <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/> |
| 109 | + </svg> |
| 110 | + Follow on LinkedIn |
| 111 | + </a> |
| 112 | + </div> |
| 113 | + </div> |
| 114 | + </div> |
| 115 | +</section> |
| 116 | + |
| 117 | +<!-- FAQ Schema for SEO --> |
| 118 | +<script is:inline type="application/ld+json"> |
| 119 | +{ |
| 120 | + "@context": "https://schema.org", |
| 121 | + "@type": "FAQPage", |
| 122 | + "mainEntity": [ |
| 123 | + { |
| 124 | + "@type": "Question", |
| 125 | + "name": "Is LibreDB Studio really free?", |
| 126 | + "acceptedAnswer": { |
| 127 | + "@type": "Answer", |
| 128 | + "text": "Yes, 100% free and open source under the MIT license. No hidden costs, no premium tiers, no feature limitations." |
| 129 | + } |
| 130 | + }, |
| 131 | + { |
| 132 | + "@type": "Question", |
| 133 | + "name": "Can I self-host LibreDB Studio?", |
| 134 | + "acceptedAnswer": { |
| 135 | + "@type": "Answer", |
| 136 | + "text": "Absolutely! Self-hosting is a first-class citizen. Deploy with Docker, Kubernetes, or any Node.js environment." |
| 137 | + } |
| 138 | + }, |
| 139 | + { |
| 140 | + "@type": "Question", |
| 141 | + "name": "Which AI providers are supported?", |
| 142 | + "acceptedAnswer": { |
| 143 | + "@type": "Answer", |
| 144 | + "text": "We support Google Gemini (default), OpenAI (GPT-4, GPT-3.5), and local LLMs via Ollama or LM Studio." |
| 145 | + } |
| 146 | + }, |
| 147 | + { |
| 148 | + "@type": "Question", |
| 149 | + "name": "Is my database connection secure?", |
| 150 | + "acceptedAnswer": { |
| 151 | + "@type": "Answer", |
| 152 | + "text": "Security is our top priority. All connections use TLS/SSL encryption. Credentials are never stored in plain text." |
| 153 | + } |
| 154 | + }, |
| 155 | + { |
| 156 | + "@type": "Question", |
| 157 | + "name": "Which databases are supported?", |
| 158 | + "acceptedAnswer": { |
| 159 | + "@type": "Answer", |
| 160 | + "text": "Currently we support PostgreSQL, MySQL, SQLite, and MongoDB with full feature support." |
| 161 | + } |
| 162 | + }, |
| 163 | + { |
| 164 | + "@type": "Question", |
| 165 | + "name": "Can I use it on my phone or tablet?", |
| 166 | + "acceptedAnswer": { |
| 167 | + "@type": "Answer", |
| 168 | + "text": "Yes! LibreDB Studio is built mobile-first. The entire UI is touch-optimized and responsive." |
| 169 | + } |
| 170 | + }, |
| 171 | + { |
| 172 | + "@type": "Question", |
| 173 | + "name": "Do I need to install anything?", |
| 174 | + "acceptedAnswer": { |
| 175 | + "@type": "Answer", |
| 176 | + "text": "No installation required for end users. LibreDB Studio runs entirely in your browser." |
| 177 | + } |
| 178 | + }, |
| 179 | + { |
| 180 | + "@type": "Question", |
| 181 | + "name": "How does it compare to pgAdmin or DBeaver?", |
| 182 | + "acceptedAnswer": { |
| 183 | + "@type": "Answer", |
| 184 | + "text": "Unlike pgAdmin or DBeaver, LibreDB Studio is web-based, mobile-ready, and AI-powered with zero installation required." |
| 185 | + } |
| 186 | + } |
| 187 | + ] |
| 188 | +} |
| 189 | +</script> |
| 190 | + |
| 191 | +<script> |
| 192 | + document.querySelectorAll('.faq-trigger').forEach((trigger) => { |
| 193 | + trigger.addEventListener('click', () => { |
| 194 | + const index = trigger.getAttribute('data-faq-index'); |
| 195 | + const content = document.querySelector(`[data-faq-content="${index}"]`); |
| 196 | + const icon = trigger.querySelector('.faq-icon'); |
| 197 | + const iconWrapper = trigger.querySelector('.faq-icon-wrapper'); |
| 198 | + const isExpanded = trigger.getAttribute('aria-expanded') === 'true'; |
| 199 | + |
| 200 | + // Toggle current FAQ |
| 201 | + trigger.setAttribute('aria-expanded', (!isExpanded).toString()); |
| 202 | + content?.classList.toggle('hidden'); |
| 203 | + |
| 204 | + // Rotate icon (+ to -) |
| 205 | + if (!isExpanded) { |
| 206 | + icon?.classList.add('rotate-45'); |
| 207 | + iconWrapper?.classList.add('bg-primary-600'); |
| 208 | + iconWrapper?.classList.remove('bg-slate-800'); |
| 209 | + } else { |
| 210 | + icon?.classList.remove('rotate-45'); |
| 211 | + iconWrapper?.classList.remove('bg-primary-600'); |
| 212 | + iconWrapper?.classList.add('bg-slate-800'); |
| 213 | + } |
| 214 | + }); |
| 215 | + }); |
| 216 | +</script> |
| 217 | + |
| 218 | +<style> |
| 219 | + .faq-icon.rotate-45 { |
| 220 | + transform: rotate(45deg); |
| 221 | + } |
| 222 | +</style> |
0 commit comments