|
| 1 | +--- |
| 2 | +import SectionHeader from './SectionHeader.astro'; |
| 3 | +
|
| 4 | +// The five consequences of the belief. Each is a row of the `manifesto` table |
| 5 | +// in sections.ts (rows: 5) — keep the two in step if either changes. |
| 6 | +const consequences = [ |
| 7 | + { |
| 8 | + belief: 'It runs in a browser', |
| 9 | + consequence: |
| 10 | + 'Because the data is not on your machine, and neither are your teammates. A tool that has to be installed is a tool that half the team never opens.', |
| 11 | + }, |
| 12 | + { |
| 13 | + belief: 'It reaches a phone', |
| 14 | + consequence: |
| 15 | + 'Because the incident that needs a query does not wait for you to open a laptop. The same editor, the same connections, on the screen you already have with you.', |
| 16 | + }, |
| 17 | + { |
| 18 | + belief: 'It deploys like infrastructure', |
| 19 | + consequence: |
| 20 | + 'A container, a Helm chart, an OpenShift operator, a one-click template on your platform. The way everything else that sits next to a database gets installed.', |
| 21 | + }, |
| 22 | + { |
| 23 | + belief: 'It embeds', |
| 24 | + consequence: |
| 25 | + 'One npm package, inside your own product. The most useful place for a database editor is the thing that created the database in the first place.', |
| 26 | + }, |
| 27 | + { |
| 28 | + belief: 'It holds nothing back', |
| 29 | + consequence: |
| 30 | + 'Single sign-on, ER diagrams, the AI assistant and the NoSQL engines all ship in the MIT build. There is no edition where the useful parts live.', |
| 31 | + }, |
| 32 | +]; |
| 33 | +--- |
| 34 | + |
| 35 | +<div class="mx-auto max-w-5xl"> |
| 36 | + <!-- Licence badge: the same fact the home hero states, restated as the premise |
| 37 | + this page argues from rather than as a feature. --> |
| 38 | + <span |
| 39 | + class="inline-flex items-center gap-2 rounded-full border border-ok/30 bg-ok-tint px-3 py-1 text-[12px] text-ok" |
| 40 | + > |
| 41 | + <span class="h-1.5 w-1.5 rounded-full bg-ok" aria-hidden="true"></span> |
| 42 | + Open source · MIT · nothing held back |
| 43 | + </span> |
| 44 | + |
| 45 | + <!-- Hero --> |
| 46 | + <h1 class="mt-6 text-3xl leading-[1.1] font-extrabold tracking-tight text-bright sm:text-4xl lg:text-5xl"> |
| 47 | + Databases moved to the cloud.<br class="hidden sm:block" />{' '} |
| 48 | + Their editors <span class="text-primary">stayed on the laptop.</span> |
| 49 | + </h1> |
| 50 | + <p class="mt-5 max-w-2xl text-[15px] leading-relaxed text-muted"> |
| 51 | + <strong class="font-semibold text-fg">The tool goes to the data. Not the data to the tool.</strong>{' '} |
| 52 | + Everything else about LibreDB Studio follows from that one line — including the licence. |
| 53 | + </p> |
| 54 | + |
| 55 | + <!-- The two scenes. This is the part of the story that is not derivable from |
| 56 | + the feature list, so it leads. --> |
| 57 | + <div class="mt-10"> |
| 58 | + <SectionHeader |
| 59 | + title="How we got here" |
| 60 | + subtitle="Two moments, roughly a hundred times each, until the pattern was impossible to miss." |
| 61 | + /> |
| 62 | + <div class="grid grid-cols-1 gap-px overflow-hidden border border-edge bg-edge sm:grid-cols-2"> |
| 63 | + <article class="flex flex-col bg-panel p-5"> |
| 64 | + <h3 class="text-[15px] font-bold text-primary">Forty seconds, then an afternoon</h3> |
| 65 | + <p class="mt-2 text-[13px] leading-relaxed text-dim"> |
| 66 | + You create a Postgres on a managed platform. It is ready in forty seconds. Then you want to look inside it — |
| 67 | + so you open a port to the internet, dig an SSH tunnel, or install a desktop client on every machine that needs |
| 68 | + one. The database took forty seconds. The window into it takes the rest of the day. |
| 69 | + </p> |
| 70 | + </article> |
| 71 | + <article class="flex flex-col bg-panel p-5"> |
| 72 | + <h3 class="text-[15px] font-bold text-primary">Now multiply it</h3> |
| 73 | + <p class="mt-2 text-[13px] leading-relaxed text-dim"> |
| 74 | + The team runs Postgres for the application, Mongo for documents, Redis for the cache, ClickHouse for the |
| 75 | + events. An engineer joins on Monday and spends their first days working out which data lives where, hunting |
| 76 | + connection strings, waiting on access, and installing a different tool per engine. |
| 77 | + </p> |
| 78 | + </article> |
| 79 | + </div> |
| 80 | + </div> |
| 81 | + |
| 82 | + <!-- What moved and what did not --> |
| 83 | + <div class="mt-10 border-l-2 border-edge-strong bg-panel p-5"> |
| 84 | + <p class="text-[14px] leading-relaxed text-dim"> |
| 85 | + Databases moved. They live in Kubernetes now, on managed platforms, in a customer's VPC reached through a jump |
| 86 | + host. The tools that read them did not move. They are still desktop applications: heavy, licensed per seat, |
| 87 | + install-first, built on the assumption of one database, one laptop, and one person who never changes machines. |
| 88 | + </p> |
| 89 | + </div> |
| 90 | + |
| 91 | + <!-- The consequences --> |
| 92 | + <div class="mt-10"> |
| 93 | + <SectionHeader |
| 94 | + title="What the belief forces" |
| 95 | + subtitle="Take it seriously and it stops being a preference. It becomes a specification." |
| 96 | + /> |
| 97 | + <div class="grid grid-cols-1 gap-px overflow-hidden border border-edge bg-edge sm:grid-cols-2"> |
| 98 | + { |
| 99 | + consequences.map((c) => ( |
| 100 | + <article class="flex flex-col bg-panel p-5"> |
| 101 | + <h3 class="text-[15px] font-bold text-primary">{c.belief}</h3> |
| 102 | + <p class="mt-2 text-[13px] leading-relaxed text-dim">{c.consequence}</p> |
| 103 | + </article> |
| 104 | + )) |
| 105 | + } |
| 106 | + </div> |
| 107 | + </div> |
| 108 | + |
| 109 | + <!-- The payoff: the licence as an engineering consequence, not a gesture. --> |
| 110 | + <div class="mt-10 border-l-2 border-primary bg-panel p-5"> |
| 111 | + <p class="text-[15px] font-semibold text-bright">MIT is not generosity. It is a requirement of the architecture.</p> |
| 112 | + <p class="mt-2 text-[13.5px] text-dim"> |
| 113 | + You cannot place a per-seat licensed, feature-gated tool into every environment you own. The moment single sign-on |
| 114 | + costs extra, the tool stops being deployable by default. |
| 115 | + </p> |
| 116 | + </div> |
| 117 | + |
| 118 | + <!-- Why the paid product does not contradict any of the above --> |
| 119 | + <div class="mt-10 border border-edge bg-panel p-6"> |
| 120 | + <h3 class="text-[16px] font-bold text-bright">Then why is Platform paid?</h3> |
| 121 | + <p class="mt-2 max-w-2xl text-[13.5px] leading-relaxed text-dim"> |
| 122 | + Because it is a service rather than an environment. LibreDB <strong class="text-fg">Studio</strong> is MIT because it |
| 123 | + has to go everywhere. LibreDB <strong class="text-fg">Platform</strong> is hosting, tenancy, billing and support for |
| 124 | + teams that would rather not run Studio themselves. |
| 125 | + </p> |
| 126 | + <p class="mt-3 max-w-2xl text-[13.5px] leading-relaxed text-dim"> |
| 127 | + The line holds under pressure, which is the point. The editor you deploy is free and stays free. No capability is |
| 128 | + moved across that line to manufacture a reason to upgrade. |
| 129 | + </p> |
| 130 | + </div> |
| 131 | + |
| 132 | + <!-- Bridge back to the product --> |
| 133 | + <div class="mt-10 flex flex-col gap-3 sm:flex-row"> |
| 134 | + <a |
| 135 | + href="https://app.libredb.org" |
| 136 | + target="_blank" |
| 137 | + rel="noopener noreferrer" |
| 138 | + class="inline-flex items-center justify-center gap-2 rounded-md bg-primary px-6 py-3 text-[15px] font-semibold text-white transition-colors hover:bg-primary-bright" |
| 139 | + > |
| 140 | + See it running |
| 141 | + </a> |
| 142 | + <a |
| 143 | + href="/get-started" |
| 144 | + class="inline-flex items-center justify-center gap-2 rounded-md border border-edge-strong bg-panel px-6 py-3 text-[15px] font-semibold text-fg transition-colors hover:border-line hover:bg-raised" |
| 145 | + > |
| 146 | + Run it yourself <span aria-hidden="true">→</span> |
| 147 | + </a> |
| 148 | + </div> |
| 149 | +</div> |
0 commit comments