Skip to content

Commit 7f5151e

Browse files
authored
Add fresh Google Workspace homepage (#1638)
1 parent ffb28cc commit 7f5151e

3 files changed

Lines changed: 195 additions & 0 deletions

File tree

apps/cloud/src/edge/marketing.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ describe("isMarketingPath", () => {
1313
"/privacy",
1414
"/terms",
1515
"/google-oauth",
16+
"/google-workspace",
1617
"/blog",
1718
"/blog/",
1819
"/blog/some-post",

apps/cloud/src/edge/marketing.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const MARKETING_PATHS = [
1515
"/privacy",
1616
"/terms",
1717
"/google-oauth",
18+
"/google-workspace",
1819
"/blog",
1920
"/llms.txt",
2021
"/api/detect",
Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
---
2+
const services = [
3+
{
4+
name: "Google Calendar",
5+
description:
6+
"Read calendars and events, and create, update, or remove events when you ask an agent to manage your schedule.",
7+
},
8+
{
9+
name: "Gmail",
10+
description:
11+
"Read, search, compose, send, label, archive, or move messages to trash when you ask an agent to work with your email.",
12+
},
13+
{
14+
name: "Google Sheets",
15+
description:
16+
"Read spreadsheet data and update cells, ranges, or worksheets when you ask an agent to work with a spreadsheet.",
17+
},
18+
] as const;
19+
---
20+
21+
<!doctype html>
22+
<html lang="en">
23+
<head>
24+
<meta charset="UTF-8" />
25+
<meta name="viewport" content="width=device-width" />
26+
<meta name="robots" content="index, follow" />
27+
<meta
28+
name="description"
29+
content="Executor connects AI agents to Google Calendar, Gmail, and Google Sheets with your permission."
30+
/>
31+
<link rel="canonical" href="https://executor.sh/google-workspace" />
32+
<title>Executor</title>
33+
<style>
34+
:root {
35+
color-scheme: light;
36+
font-family:
37+
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
38+
color: #161616;
39+
background: #f7f6f1;
40+
}
41+
42+
* {
43+
box-sizing: border-box;
44+
}
45+
46+
body {
47+
margin: 0;
48+
line-height: 1.6;
49+
}
50+
51+
a {
52+
color: #174ea6;
53+
}
54+
55+
header,
56+
main,
57+
footer {
58+
width: min(760px, calc(100% - 40px));
59+
margin-inline: auto;
60+
}
61+
62+
header {
63+
padding: 72px 0 38px;
64+
border-bottom: 1px solid #d8d6cd;
65+
}
66+
67+
.brand {
68+
margin: 0 0 24px;
69+
font-size: 15px;
70+
font-weight: 700;
71+
letter-spacing: 0.04em;
72+
text-transform: uppercase;
73+
}
74+
75+
h1 {
76+
margin: 0;
77+
font-size: clamp(48px, 10vw, 76px);
78+
line-height: 1;
79+
letter-spacing: -0.055em;
80+
}
81+
82+
.purpose {
83+
max-width: 680px;
84+
margin: 28px 0 0;
85+
font-size: 20px;
86+
line-height: 1.55;
87+
}
88+
89+
section {
90+
padding: 42px 0;
91+
border-bottom: 1px solid #d8d6cd;
92+
}
93+
94+
h2 {
95+
margin: 0 0 16px;
96+
font-size: 25px;
97+
letter-spacing: -0.025em;
98+
}
99+
100+
h3 {
101+
margin: 0 0 5px;
102+
font-size: 18px;
103+
}
104+
105+
p {
106+
margin: 0 0 18px;
107+
}
108+
109+
ul {
110+
display: grid;
111+
gap: 22px;
112+
margin: 26px 0 0;
113+
padding: 0;
114+
list-style: none;
115+
}
116+
117+
li p {
118+
margin: 0;
119+
}
120+
121+
footer {
122+
display: flex;
123+
flex-wrap: wrap;
124+
justify-content: space-between;
125+
gap: 16px;
126+
padding: 30px 0 64px;
127+
font-size: 14px;
128+
}
129+
</style>
130+
</head>
131+
<body>
132+
<header>
133+
<p class="brand">Useful Software Company</p>
134+
<h1>Executor</h1>
135+
<p class="purpose">
136+
Executor is an integration platform and MCP gateway for AI agents. Executor lets you
137+
securely connect Google Calendar, Gmail, and Google Sheets so an agent can read your
138+
Google data and take only the actions you request.
139+
</p>
140+
</header>
141+
142+
<main>
143+
<section aria-labelledby="purpose-heading">
144+
<h2 id="purpose-heading">Why Executor requests access to Google data</h2>
145+
<p>
146+
You choose which Google service to connect. Executor requests the permissions needed
147+
to provide that connection and uses the resulting Google data to carry out your
148+
instructions. Connecting Google does not give Executor permission to act on its own.
149+
</p>
150+
<ul>
151+
{
152+
services.map((service) => (
153+
<li>
154+
<h3>{service.name}</h3>
155+
<p>{service.description}</p>
156+
</li>
157+
))
158+
}
159+
</ul>
160+
</section>
161+
162+
<section aria-labelledby="control-heading">
163+
<h2 id="control-heading">You control the connection</h2>
164+
<p>
165+
Executor exposes specific Google actions and their inputs. You can allow an action,
166+
require approval, or block it through the policies you configure in Executor. You can
167+
remove a connection in Executor or revoke it from your
168+
<a href="https://myaccount.google.com/permissions">Google Account permissions</a>.
169+
</p>
170+
</section>
171+
172+
<section aria-labelledby="privacy-heading">
173+
<h2 id="privacy-heading">Privacy and Google API data</h2>
174+
<p>
175+
Executor does not sell Google user data. Executor uses Google data only to provide and
176+
improve the user-facing integration features you request, as described in the
177+
<a href="https://executor.sh/privacy">Executor Privacy Policy</a>.
178+
</p>
179+
<p>
180+
Executor's use and transfer of information received from Google APIs adheres to the
181+
<a href="https://developers.google.com/terms/api-services-user-data-policy"
182+
>Google API Services User Data Policy</a
183+
>, including the Limited Use requirements.
184+
</p>
185+
</section>
186+
</main>
187+
188+
<footer>
189+
<span>Executor · Useful Software Company</span>
190+
<span><a href="https://executor.sh/privacy">Privacy Policy</a> · <a href="https://executor.sh/terms">Terms of Service</a></span>
191+
</footer>
192+
</body>
193+
</html>

0 commit comments

Comments
 (0)