Skip to content

Commit 3ac38bc

Browse files
committed
...
1 parent 4f40966 commit 3ac38bc

12 files changed

Lines changed: 109 additions & 184 deletions

File tree

site/docusaurus.config.ts

Lines changed: 7 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -126,71 +126,14 @@ export default {
126126
hideable: true,
127127
},
128128
},
129+
// Minimal VitePress-style footer. Vercel badge stays: they host us for
130+
// free.
129131
footer: {
130-
links: [
131-
{
132-
items: [
133-
{ label: 'Introduction', to: '/docs/intro' },
134-
{ label: 'Getting started', to: '/docs/getting-started' },
135-
{ label: 'Playground', to: '/docs/playground' },
136-
{ label: 'Migrations', to: '/docs/migrations' },
137-
// { label: 'Examples', to: '/docs/category/examples' },
138-
{ label: 'Recipes', to: '/docs/category/recipes' },
139-
{ label: 'Other runtimes', to: '/docs/category/other-runtimes' },
140-
{ label: 'Dialects', to: '/docs/dialects' },
141-
{ label: 'Generating types', to: '/docs/generating-types' },
142-
{ label: 'Plugin system', to: '/docs/plugins' },
143-
],
144-
title: 'Docs',
145-
},
146-
{
147-
items: [
148-
{ label: 'SELECT', to: '/docs/category/select' },
149-
{ label: 'WHERE', to: '/docs/category/where' },
150-
{ label: 'JOIN', to: '/docs/category/join' },
151-
{ label: 'INSERT', to: '/docs/category/insert' },
152-
{ label: 'UPDATE', to: '/docs/category/update' },
153-
{ label: 'DELETE', to: '/docs/category/delete' },
154-
{ label: 'Transactions', to: '/docs/category/transactions' },
155-
{ label: 'CTE', to: '/docs/category/cte' },
156-
],
157-
title: 'Examples',
158-
},
159-
{
160-
items: [
161-
{
162-
label: 'Discord',
163-
href: 'https://discord.gg/xyBJ3GwvAm',
164-
},
165-
{
166-
label: 'Bluesky',
167-
href: 'https://bsky.app/profile/kysely.dev',
168-
},
169-
],
170-
title: 'Community',
171-
},
172-
{
173-
items: [
174-
{
175-
label: 'GitHub',
176-
href: 'https://github.com/kysely-org/kysely',
177-
},
178-
{
179-
label: 'API docs',
180-
href: 'https://kysely-org.github.io/kysely-apidoc/',
181-
},
182-
],
183-
title: 'Other',
184-
},
185-
{
186-
items: [
187-
{
188-
html: `<a href="https://vercel.com/?utm_source=kysely&utm_campaign=oss"><img src="/img/powered-by-vercel.svg" style="width: 214px; height: 44px" alt="Powered by Vercel" /></a>`,
189-
},
190-
],
191-
title: 'Sponsors',
192-
},
193-
],
132+
copyright: [
133+
`Released under the MIT License.`,
134+
`Copyright © 2022-present Sami Koskimäki & Kysely contributors.`,
135+
`<a class="footer-vercel" href="https://vercel.com/?utm_source=kysely&utm_campaign=oss" target="_blank" rel="noopener noreferrer"><img src="/img/powered-by-vercel.svg" width="176" height="36" alt="Powered by Vercel" /></a>`,
136+
].join('<br/>'),
194137
},
195138
headTags: [
196139
{

site/scripts/highlight-snippets.mjs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,20 @@ const compilerSnippet = `const rows = await db
2121
.where('person.ag', '>', 18)
2222
.execute()`
2323

24-
const compositionSnippet = `function withPets(eb: ExpressionBuilder<DB, 'person'>) {
25-
return jsonArrayFrom(
26-
eb.selectFrom('pet')
27-
.select(['pet.name', 'pet.species'])
28-
.whereRef('pet.owner_id', '=', 'person.id')
29-
).as('pets')
24+
const compositionSnippet = `function withPets(
25+
eb: ExpressionBuilder<DB, 'person'>,
26+
) {
27+
const pets = eb
28+
.selectFrom('pet')
29+
.select(['name', 'species'])
30+
.whereRef('owner_id', '=', 'person.id')
31+
return jsonArrayFrom(pets).as('pets')
3032
}
3133
3234
const person = await db
3335
.selectFrom('person')
34-
.select((eb) => ['person.id', 'person.first_name', withPets(eb)])
36+
.select(['id', 'first_name'])
37+
.select(withPets)
3538
.executeTakeFirstOrThrow()`
3639

3740
function highlight(code, decorations = []) {
@@ -57,7 +60,7 @@ const [compilerHtml, compositionHtml] = await Promise.all([
5760
highlight(compositionSnippet),
5861
])
5962

60-
const output = `// AUTO-GENERATED FILE DO NOT EDIT.
63+
const output = `// AUTO-GENERATED FILE. DO NOT EDIT.
6164
// Source of truth: scripts/highlight-snippets.mjs. Regenerate with \`pnpm snippets\`.
6265
6366
export const compilerSnippetHtml = ${JSON.stringify(compilerHtml)}

site/scripts/make-light-lut.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ function map(p) {
6565
for (const [src, dst] of anchors) {
6666
const d2 = dist2(p, src)
6767
if (d2 < 1e-8) return dst
68-
const w = 1 / d2 ** 2 // power 4 localizes each anchor's influence
68+
const w = 1 / d2 ** 2 // power 4, localizes each anchor's influence
6969
wsum += w
7070
out[0] += dst[0] * w
7171
out[1] += dst[1] * w

site/scripts/verify-proof-links.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ for (const entry of entries) {
6565
console.log(`ok ${entry.name} @ ${sha.slice(0, 7)}`)
6666
} catch (error) {
6767
failures++
68-
console.warn(`warn ${entry.name}: ${error.message} keeping existing permalink`)
68+
console.warn(`warn ${entry.name}: ${error.message}; keeping existing permalink`)
6969
}
7070
}
7171

site/src/components/DemoVideo.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ export function DemoVideo() {
6969
)}
7070
</div>
7171
<figcaption className={styles.caption}>
72-
real footage schema-aware autocompletion and inline docs
72+
real footage: schema-aware autocompletion and inline docs
7373
</figcaption>
7474
</figure>
7575
)

site/src/components/SectionFeatures/index.tsx

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ type FeatureItem = {
88
}
99

1010
// One sentence per cell, for landing-page scannability. The original long
11-
// copy is kept in comments below each entry good candidates for expansion
11+
// copy is kept in comments below each entry; good candidates for expansion
1212
// in the docs.
1313
const FeatureList: FeatureItem[] = [
1414
// Original: "Kysely's state-of-the-art, type-safe API provides precise
@@ -20,7 +20,8 @@ const FeatureList: FeatureItem[] = [
2020
title: 'No compromises',
2121
description: (
2222
<>
23-
Precise result types and compile-time errors within queries — and with{' '}
23+
Precise TypeScript result types and compile-time errors within queries.
24+
With{' '}
2425
<a
2526
href="https://github.com/RobinBlomberg/kysely-codegen"
2627
rel="noopener noreferrer"
@@ -37,12 +38,12 @@ const FeatureList: FeatureItem[] = [
3738
// structure, and predictability through 1:1 compilation. Teams proficient
3839
// in SQL can pick up Kysely and be productive in minutes."
3940
{
40-
tag: 'wysiwyg',
41+
tag: 'no magic',
4142
title: 'What you see is what you get',
4243
description: (
4344
<>
44-
A thin abstraction layer over SQL, crafted by SQL lovers for SQL lovers
45-
— familiar naming, predictable 1:1 compilation.
45+
A thin abstraction layer over SQL, crafted by SQL lovers for SQL
46+
lovers. Familiar naming, predictable 1:1 query compilation.
4647
</>
4748
),
4849
},
@@ -55,7 +56,7 @@ const FeatureList: FeatureItem[] = [
5556
title: 'Your schema, autocompleted',
5657
description: (
5758
<>
58-
Your database schema types flow through Kysely's fluent API — a typing
59+
Your database schema types flow through Kysely's fluent API. A typing
5960
experience second only to full-blown database IDEs.
6061
</>
6162
),
@@ -65,12 +66,12 @@ const FeatureList: FeatureItem[] = [
6566
// MERGE, WITH, and more. When needed, you can also use raw SQL strings,
6667
// even within structured queries."
6768
{
68-
tag: 'depth',
69-
title: 'The whole of SQL',
69+
tag: 'sql',
70+
title: 'Deeper than the rest',
7071
description: (
7172
<>
72-
SELECT through MERGE, CTEs, window functions — with raw SQL escape
73-
hatches inside structured queries.
73+
Spec-faithful APIs for everything production teams need, composable
74+
all the way down, escape hatches everywhere.
7475
</>
7576
),
7677
},
@@ -83,7 +84,7 @@ const FeatureList: FeatureItem[] = [
8384
title: 'Query any SQL database',
8485
description: (
8586
<>
86-
PostgreSQL, MySQL, MS SQL Server, SQLite, and PGlite out of the box
87+
PostgreSQL, MySQL, MS SQL Server, SQLite, and PGlite out of the box,
8788
plus a community-driven dialect system for everything else.
8889
</>
8990
),
@@ -97,30 +98,31 @@ const FeatureList: FeatureItem[] = [
9798
title: 'Run anywhere',
9899
description: (
99100
<>
100-
Zero dependencies and no environment-specific APIs — runs in Node.js,
101+
Zero dependencies and no environment-specific APIs. Runs in Node.js,
101102
Deno, Bun, AWS Lambda, Cloudflare Workers, and browsers.
102103
</>
103104
),
104105
},
106+
// Benched 2026-08: the migrations story is optional and already covered in
107+
// the docs. Kept for reuse there.
108+
// {
109+
// tag: 'no surprises',
110+
// title: "If it ain't broke",
111+
// description: "Up/down migrations as code, like we've always done it:
112+
// reviewed in the PR, run as written. No outsourcing prod to a diff
113+
// engine. Try kysely-ctl (https://github.com/kysely-org/kysely-ctl)."
114+
// },
105115
// Original: "Kysely's migration module provides a flexible, non-opinionated
106116
// core for writing migrations in TypeScript, and running them in your
107117
// environment and pace of choice. Its community-driven ecosystem provides
108118
// file migration providers, CLIs, and more."
109119
{
110-
tag: 'migrations',
111-
title: 'Take control',
120+
tag: 'agent-ready',
121+
title: 'Manual included',
112122
description: (
113123
<>
114-
A flexible, non-opinionated core for writing and running TypeScript
115-
migrations — at your pace. Try{' '}
116-
<a
117-
href="https://github.com/kysely-org/kysely-ctl"
118-
rel="noopener noreferrer"
119-
target="_blank"
120-
>
121-
<code>kysely-ctl</code>
122-
</a>
123-
.
124+
Everything is documented inline, with type-checked code examples that
125+
can't drift. Hover docs for humans, rich context for agents.
124126
</>
125127
),
126128
},
@@ -133,7 +135,7 @@ const FeatureList: FeatureItem[] = [
133135
title: 'Extend everything',
134136
description: (
135137
<>
136-
Modify queries before compilation and results after execution
138+
Modify queries before compilation and results after execution.
137139
camelCase to snake_case and back, for example.
138140
</>
139141
),
@@ -155,9 +157,7 @@ export function SectionFeatures(): JSX.Element {
155157
<section className={styles.features}>
156158
<div className="container">
157159
<h2 className={styles.sectionHeading}>Show this to your boss!</h2>
158-
<p className={styles.sectionSub}>
159-
If you know SQL, you already know Kysely.
160-
</p>
160+
<p className={styles.sectionSub}>What Kysely optimizes for.</p>
161161
<div className={styles.grid}>
162162
{FeatureList.map((props, idx) => (
163163
<Feature key={idx} {...props} />

0 commit comments

Comments
 (0)