{"compiledCode":"\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _react = require('react'); var _react2 = _interopRequireDefault(_react);\n\n function GlossaryPage() {\n  return (\n    _react2.default.createElement('div', { className: [\"np-kodbe\",\"kb-page\"].join(\" \"),}\n\n\n      , _react2.default.createElement('style', null, \".np-kodbe.kb-page{--ink:var(--cpuom9j-runtime-text,#151a22);--muted:var(--cpuom9j-runtime-muted,#586173);--bg:var(--cpuom9j-runtime-bg,#ffffff);--surface:var(--cpuom9j-runtime-panel,#f6f8fb);--surface2:var(--cpuom9j-runtime-accent-soft,#eef2f8);--border:var(--cpuom9j-runtime-border,#e2e8f1);--brand:var(--cpuom9j-runtime-accent,#2e5be6);--brand-ink:var(--cpuom9j-runtime-accent,#1e3fa8);--accent:var(--cpuom9j-runtime-accent-soft,#0e9f86);--infobg:var(--cpuom9j-runtime-panel,#eef3fe);--warnbg:var(--cpuom9j-runtime-panel,#fdf6e9);--warnborder:var(--cpuom9j-runtime-border,#f0e2c2);--safebg:var(--cpuom9j-runtime-panel,#eafaf5);--safeborder:var(--cpuom9j-runtime-border,#c8efe0);color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased;}\\n.np-kodbe.kb-page *{box-sizing:border-box;}\\n.np-kodbe .kb-wrap{max-width:880px;margin:0 auto;padding:36px 20px 72px;}\\n.np-kodbe .kb-wrap.kb-wide{max-width:1080px;}\\n.np-kodbe .kb-eyebrow{font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;color:var(--brand-ink);font-weight:700;margin:0 0 10px;}\\n.np-kodbe .kb-h1{font-size:clamp(2rem,5vw,3rem);line-height:1.12;margin:0 0 14px;letter-spacing:-.02em;}\\n.np-kodbe .kb-lead{font-size:clamp(1.05rem,2.4vw,1.28rem);color:var(--muted);margin:0 0 6px;max-width:62ch;}\\n.np-kodbe .kb-hero{padding:4px 0 4px;}\\n.np-kodbe .kb-section{margin:44px 0 0;}\\n.np-kodbe .kb-h2{font-size:clamp(1.35rem,3vw,1.8rem);line-height:1.2;margin:0 0 12px;letter-spacing:-.01em;}\\n.np-kodbe .kb-p{margin:0 0 14px;max-width:68ch;}\\n.np-kodbe .kb-list{margin:0 0 14px;padding-left:1.2em;max-width:68ch;}\\n.np-kodbe .kb-list li{margin:0 0 9px;}\\n.np-kodbe .kb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:6px 0 0;}\\n.np-kodbe .kb-card{border:1px solid var(--border);border-radius:14px;padding:18px;background:var(--bg);display:flex;flex-direction:column;gap:7px;}\\n.np-kodbe .kb-card h3{margin:0;font-size:1.06rem;}\\n.np-kodbe .kb-card p{margin:0;color:var(--muted);font-size:.97rem;}\\n.np-kodbe .kb-card .kb-link{margin-top:4px;}\\n.np-kodbe .kb-link{color:var(--brand-ink);text-decoration:underline;text-underline-offset:2px;font-weight:600;}\\n.np-kodbe .kb-link:hover{color:var(--brand);}\\n.np-kodbe .kb-cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 0;}\\n.np-kodbe .kb-btn{display:inline-block;border-radius:10px;padding:12px 18px;font-weight:700;text-decoration:none;font-size:1rem;border:1px solid transparent;cursor:pointer;}\\n.np-kodbe .kb-btn.primary{background:var(--brand);color:#fff;}\\n.np-kodbe .kb-btn.primary:hover{background:var(--brand-ink);}\\n.np-kodbe .kb-btn.secondary{background:var(--surface2);color:var(--brand-ink);border-color:var(--border);}\\n.np-kodbe .kb-btn.ghost{background:transparent;color:var(--brand-ink);border-color:var(--border);}\\n.np-kodbe .kb-summary{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin:26px 0 0;}\\n.np-kodbe .kb-summary h2{font-size:.82rem;margin:0 0 8px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);}\\n.np-kodbe .kb-summary p{margin:0;max-width:68ch;}\\n.np-kodbe .kb-callout{border-radius:12px;padding:14px 16px;margin:20px 0 0;border:1px solid var(--border);max-width:70ch;}\\n.np-kodbe .kb-callout.info{background:var(--infobg);}\\n.np-kodbe .kb-callout.caution{background:var(--warnbg);border-color:var(--warnborder);}\\n.np-kodbe .kb-callout.safety{background:var(--safebg);border-color:var(--safeborder);}\\n.np-kodbe .kb-callout strong{display:block;margin-bottom:4px;}\\n.np-kodbe .kb-callout p{margin:0;}\\n.np-kodbe .kb-faq{margin:6px 0 0;max-width:72ch;}\\n.np-kodbe .kb-faq details{border-bottom:1px solid var(--border);padding:12px 0;}\\n.np-kodbe .kb-faq summary{cursor:pointer;font-weight:700;font-size:1.05rem;list-style:none;}\\n.np-kodbe .kb-faq summary::-webkit-details-marker{display:none;}\\n.np-kodbe .kb-faq summary::after{content:'+';float:right;color:var(--muted);margin-left:12px;}\\n.np-kodbe .kb-faq details[open] summary::after{content:'\\\\2013';}\\n.np-kodbe .kb-faq p{margin:10px 0 0;color:var(--muted);}\\n.np-kodbe .kb-steps{margin:0;padding-left:1.3em;max-width:70ch;}\\n.np-kodbe .kb-steps li{margin:0 0 12px;}\\n.np-kodbe .kb-disclaimer{margin-top:52px;font-size:.85rem;color:var(--muted);border-top:1px solid var(--border);padding-top:16px;max-width:72ch;}\\n@media (max-width:640px){.np-kodbe .kb-wrap{padding:26px 16px 56px;}}\")\n      , _react2.default.createElement('div', { className: \"kb-wrap kb-wide\" ,}\n        , _react2.default.createElement('header', { className: \"kb-hero\",}\n          , _react2.default.createElement('p', { className: \"kb-eyebrow\",}, \"Reference\")\n          , _react2.default.createElement('h1', { className: \"kb-h1\",}, \"The own-your-software glossary\")\n          , _react2.default.createElement('p', { className: \"kb-lead\",}, \"Plain-English definitions of the words you meet when you own an AI-built or no-code app, each with why it matters to you.\")\n          , _react2.default.createElement('div', { className: \"kb-cta-row\",}\n            , _react2.default.createElement('a', { className: \"kb-btn secondary\" , href: \"/understand\",}, \"New here? Start with Understand\")\n          )\n        )\n        , _react2.default.createElement('aside', { className: \"kb-summary\",}\n          , _react2.default.createElement('h2', null, \"In plain English\")\n          , _react2.default.createElement('p', null, \"A quick reference for the terms that show up in tutorials, tool settings, and error messages. Each entry is one sentence plus why it matters to your app. Security terms are written to help you understand risk, not exploit it.\")\n        )\n        , _react2.default.createElement('section', { className: \"kb-section\",}\n          , _react2.default.createElement('h2', { className: \"kb-h2\",}, \"Terms A to Z\")\n          , _react2.default.createElement('div', { className: \"kb-grid\",}\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Frontend\")\n              , _react2.default.createElement('p', null, \"The part of your app people see and click. It matters because most visible bugs and design changes live here.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Backend\")\n              , _react2.default.createElement('p', null, \"The logic that runs behind the scenes. It matters because rules, calculations, and data handling happen here, out of sight.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"API\")\n              , _react2.default.createElement('p', null, \"A way for software to talk to other software. It matters because your app likely uses APIs to send email, take payments, or fetch data.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Database\")\n              , _react2.default.createElement('p', null, \"The organized store for your app's data. It matters because losing or exposing it is the most costly kind of mistake.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Hosting\")\n              , _react2.default.createElement('p', null, \"The service that keeps your app online. It matters because if hosting lapses or misconfigures, your app goes down.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Environment variable\")\n              , _react2.default.createElement('p', null, \"A setting stored outside your code, often for secrets. It matters because it is the safe place to keep keys instead of pasting them into code.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"API key / secret\")\n              , _react2.default.createElement('p', null, \"A password-like string that lets your app use a service. It matters because a leaked key can let others spend your money or reach your data.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Dependency\")\n              , _react2.default.createElement('p', null, \"Outside code your app relies on. It matters because outdated dependencies can break your app or introduce security holes.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Deployment\")\n              , _react2.default.createElement('p', null, \"Publishing a new version of your app. It matters because a bad deploy is a common cause of \\\"it worked yesterday.\\\"\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Backup\")\n              , _react2.default.createElement('p', null, \"A saved copy you can restore. It matters because a tested backup is the difference between a scare and a disaster.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Migration\")\n              , _react2.default.createElement('p', null, \"Moving your app or data to a new place or structure. It matters because doing it carelessly causes downtime or data loss.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Vendor lock-in\")\n              , _react2.default.createElement('p', null, \"How hard it is to leave a tool. It matters because high lock-in limits your choices and leverage.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"PII (personal data)\")\n              , _react2.default.createElement('p', null, \"Information that identifies a person, like names or emails. It matters because handling it brings real responsibilities.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Authentication (auth)\")\n              , _react2.default.createElement('p', null, \"How your app verifies who a user is. It matters because weak auth is a common, serious security problem.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Injection\")\n              , _react2.default.createElement('p', null, \"A class of attack where bad input is treated as a command. It matters because AI-generated code sometimes forgets to guard against it; a professional can confirm.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"CORS\")\n              , _react2.default.createElement('p', null, \"Browser rules about which sites can call your API. It matters because CORS errors are a frequent, confusing source of \\\"it won't connect.\\\"\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Rate limiting\")\n              , _react2.default.createElement('p', null, \"Capping how often something can be called. It matters because it protects your app and your bill from abuse and runaway loops.\")\n            )\n            , _react2.default.createElement('article', { className: \"kb-card\",}\n              , _react2.default.createElement('h3', null, \"Row-level security (RLS)\")\n              , _react2.default.createElement('p', null, \"Database rules that decide who can see which rows. It matters because a missing rule can expose everyone's data; verify it with a professional if unsure.\")\n            )\n          )\n        )\n        , _react2.default.createElement('section', { className: \"kb-section\",}\n          , _react2.default.createElement('h2', { className: \"kb-h2\",}, \"Learn more\")\n          , _react2.default.createElement('ul', { className: \"kb-list\",}\n            , _react2.default.createElement('li', null, _react2.default.createElement('a', { className: \"kb-link\", href: \"/blog/frontend-backend-api-explained\",}, \"Frontend, Backend, API explained\"))\n            , _react2.default.createElement('li', null, _react2.default.createElement('a', { className: \"kb-link\", href: \"/blog/security-terms-for-ai-builders\",}, \"Security terms every AI builder should know\"))\n            , _react2.default.createElement('li', null, _react2.default.createElement('a', { className: \"kb-link\", href: \"/understand\",}, \"Understand what you built\"))\n            , _react2.default.createElement('li', null, _react2.default.createElement('a', { className: \"kb-link\", href: \"/secure\",}, \"Secure what you shipped\"))\n            , _react2.default.createElement('li', null, _react2.default.createElement('a', { className: \"kb-link\", href: \"/own\",}, \"Own your stack\"))\n          )\n        )\n        , _react2.default.createElement('section', { className: \"kb-section\",}\n          , _react2.default.createElement('h2', { className: \"kb-h2\",}, \"Glossary FAQ\")\n          , _react2.default.createElement('div', { className: \"kb-faq\",}\n            , _react2.default.createElement('details', null\n              , _react2.default.createElement('summary', null, \"Do I need to memorize these?\")\n              , _react2.default.createElement('p', null, \"No. Use the glossary as a reference when a term comes up. The point is recognition, not memorization.\")\n            )\n            , _react2.default.createElement('details', null\n              , _react2.default.createElement('summary', null, \"Are the security definitions enough to secure my app?\")\n              , _react2.default.createElement('p', null, \"They help you understand risk, not eliminate it. For anything touching payments, logins, or personal data, get an independent professional review.\")\n            )\n            , _react2.default.createElement('details', null\n              , _react2.default.createElement('summary', null, \"Can you add a term?\")\n              , _react2.default.createElement('p', null, \"Yes. Contact us with the word you keep bumping into and we will consider adding it.\")\n            )\n          )\n        )\n        , _react2.default.createElement('p', { className: \"kb-disclaimer\",}, \"Kodbe is an independent publication about maintaining and owning software you built with AI or no-code tools. It is not affiliated with, endorsed by, or connected to Kodbe Inc (the Albany, GA educational nonprofit), Kodobe, Kodable, or Kodu.\")\n      )\n\n, _react2.default.createElement('style', null, \"\\n.np-kodbe{--np-paper:var(--cpuom9j-runtime-bg,#edf1eb);--np-ink:var(--cpuom9j-runtime-text,#21382e);--np-accent:var(--cpuom9j-runtime-accent-soft,#cae0b4);box-sizing:border-box;max-width:100%!important;width:100%;min-height:100vh;background:var(--np-paper)!important;color:var(--np-ink)!important;margin:0!important;padding:0 clamp(20px,5vw,72px) 72px!important;font-family:var(--cpuom9j-font-body,Arial,sans-serif)!important;font-size:17px!important;line-height:1.75!important;overflow-wrap:anywhere}\\n.np-kodbe *{box-sizing:border-box;min-width:0}.np-kodbe>*{max-width:1080px;margin-left:auto;margin-right:auto}.np-kodbe .np-topbar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;margin-bottom:52px;border-bottom:1px solid var(--np-ink)}.np-kodbe .np-brand{font-family:var(--cpuom9j-font-heading,Georgia,serif);font-size:22px;letter-spacing:-.5px;text-decoration:none}.np-kodbe .np-topbar nav{display:flex;flex-wrap:wrap;gap:10px 22px}.np-kodbe .np-topbar nav a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none;border-bottom:1px solid transparent}.np-kodbe .np-topbar nav a:hover{border-bottom-color:currentColor}\\n.np-kodbe h1{font-family:Georgia,'Times New Roman',serif!important;font-weight:400!important;font-size:clamp(36px,5.2vw,66px)!important;line-height:1.08!important;letter-spacing:-1.8px!important;max-width:960px;margin-top:0!important;margin-bottom:28px!important;text-wrap:balance;color:var(--np-ink)!important}.np-kodbe h2{font-family:Georgia,'Times New Roman',serif!important;font-weight:400!important;font-size:clamp(25px,3vw,35px)!important;line-height:1.25!important;letter-spacing:-.5px!important;color:var(--np-ink)!important;margin-top:38px!important;margin-bottom:18px!important;text-wrap:balance}.np-kodbe h3{font-size:19px!important;line-height:1.4!important;color:var(--np-ink)!important;margin-top:24px!important;margin-bottom:10px!important}.np-kodbe p,.np-kodbe li{line-height:1.8!important;max-width:78ch}.np-kodbe p{margin-bottom:18px!important}.np-kodbe p,.np-kodbe li,.np-kodbe label{color:var(--np-ink)!important}.np-kodbe main,.np-kodbe article,.np-kodbe section{max-width:100%}.np-kodbe section{padding-top:8px!important;padding-bottom:24px!important;background:transparent!important}.np-kodbe section+section{border-top:1px solid color-mix(in srgb,var(--np-ink) 22%,transparent);margin-top:32px!important}.np-kodbe ul,.np-kodbe ol{padding-left:24px;max-width:78ch}.np-kodbe li{margin-bottom:10px!important}\\n.np-kodbe a{color:var(--np-ink);text-underline-offset:4px;text-decoration-thickness:1px}.np-kodbe a:hover{text-decoration:underline}.np-kodbe a:focus-visible,.np-kodbe button:focus-visible,.np-kodbe input:focus-visible,.np-kodbe select:focus-visible,.np-kodbe textarea:focus-visible,.np-kodbe summary:focus-visible{outline:3px solid var(--np-ink);outline-offset:5px}.np-kodbe button,.np-kodbe input,.np-kodbe select,.np-kodbe textarea{font:inherit;max-width:100%;min-height:44px;border-radius:3px!important}.np-kodbe button{cursor:pointer}.np-kodbe [class*=\\\"cta\\\"] a,.np-kodbe [class*=\\\"button\\\"]{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:12px 20px!important;background:var(--np-ink)!important;color:var(--np-paper)!important;border:1px solid var(--np-ink)!important;border-radius:3px!important;text-decoration:none!important;font-size:14px!important;font-weight:600!important;white-space:normal;line-height:1.45!important}.np-kodbe details{border:1px solid color-mix(in srgb,var(--np-ink) 28%,transparent)!important;border-radius:3px!important;padding:0 18px!important;background:transparent!important;margin-bottom:12px!important}.np-kodbe summary{min-height:48px;padding:14px 0;cursor:pointer;font-weight:600;line-height:1.5}.np-kodbe details>p{padding-bottom:12px}.np-kodbe blockquote{border-left:3px solid var(--np-ink)!important;background:var(--np-accent)!important;color:var(--np-ink)!important;padding:18px 22px!important;margin:24px 0!important;max-width:78ch}.np-kodbe .np-table{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin:24px 0;outline-offset:4px}.np-kodbe table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.65;display:table!important;overflow:visible!important}.np-kodbe th{background:var(--np-accent)!important;color:var(--np-ink)!important;text-align:left;padding:15px!important;font-weight:600}.np-kodbe td{color:var(--np-ink)!important;background:transparent!important;padding:15px!important;border-bottom:1px solid color-mix(in srgb,var(--np-ink) 22%,transparent)!important;vertical-align:top}.np-kodbe pre{max-width:100%;overflow-x:auto;padding:20px;background:var(--np-ink)!important;color:var(--np-paper)!important;line-height:1.6;font-size:14px}.np-kodbe pre code{color:inherit!important;background:transparent!important}.np-kodbe img,.np-kodbe svg{max-width:100%;height:auto}\\n@media(max-width:680px){.np-kodbe{font-size:16px!important;padding-left:20px!important;padding-right:20px!important}.np-kodbe .np-topbar{display:block;margin-bottom:36px;padding-top:20px}.np-kodbe .np-topbar nav{margin-top:12px;gap:4px 18px}.np-kodbe h1{letter-spacing:-1px!important}.np-kodbe [style*=\\\"grid-template-columns\\\"]{grid-template-columns:minmax(0,1fr)!important}.np-kodbe [class*=\\\"cta\\\"]{flex-wrap:wrap!important;gap:12px!important}.np-kodbe .np-table table{min-width:580px}.np-kodbe th,.np-kodbe td{padding:12px!important}.np-kodbe blockquote{padding:16px!important}}\\n@media(prefers-reduced-motion:reduce){.np-kodbe *{scroll-behavior:auto!important;transition:none!important}}\\n\")\n)\n  );\n} exports.default = GlossaryPage;"}