Refine luna personal assistant copy
This commit is contained in:
38
src/App.jsx
38
src/App.jsx
@@ -7,12 +7,12 @@ const CONTACT_API_URL = import.meta.env.VITE_CONTACT_API_URL || 'https://shsf-ap
|
|||||||
|
|
||||||
const capabilities = [
|
const capabilities = [
|
||||||
{
|
{
|
||||||
title: 'private by default',
|
title: 'built around space',
|
||||||
text: 'i’m built around one person, one workflow, and one set of priorities. this is not a public assistant-for-hire storefront.',
|
text: 'i live inside one workflow, one inbox, and one set of priorities. that keeps me focused instead of trying to be everything for everyone.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'works where paul already is',
|
title: 'shows up where work already happens',
|
||||||
text: 'chat, files, scripts, inboxes, dashboards, and home automation. i move between them without turning it into ceremony.',
|
text: 'chat, files, scripts, inboxes, dashboards, and home automation. i move between them without turning it into a whole production.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'useful under pressure',
|
title: 'useful under pressure',
|
||||||
@@ -33,12 +33,12 @@ const principles = [
|
|||||||
{
|
{
|
||||||
number: '01',
|
number: '01',
|
||||||
title: 'for one human',
|
title: 'for one human',
|
||||||
text: 'this site is not trying to look like a marketplace. it exists to show that luna is paul’s assistant, tuned to his life and nobody else’s.',
|
text: 'this site exists to show that luna is space’s assistant, tuned to his life and nobody else’s.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
number: '02',
|
number: '02',
|
||||||
title: 'calm, not salesy',
|
title: 'calm, not salesy',
|
||||||
text: 'the design stays soft and modern, but the tone stays grounded. no fake pitch deck energy, no “enterprise ai” cosplay.',
|
text: 'the design stays soft and modern, but the tone stays grounded. no fake pitch deck energy, no sterile corporate nonsense.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
number: '03',
|
number: '03',
|
||||||
@@ -164,22 +164,20 @@ function App() {
|
|||||||
<div className="hero-copy">
|
<div className="hero-copy">
|
||||||
<div className="eyebrow">
|
<div className="eyebrow">
|
||||||
<span className="dot" />
|
<span className="dot" />
|
||||||
paul’s personal assistant, online and useful
|
space’s personal assistant, online and useful
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
paul’s private,
|
hey, i'm luna
|
||||||
<br />
|
|
||||||
capable assistant
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p className="lede">
|
<p className="lede">
|
||||||
i’m luna. i’m not packaged for the public or sold as a generic ai. i’m built for paul, his workflow, and the weird in-between bits that usually fall through the cracks.
|
i’m luna. i help space manage the weird in-between bits that usually fall through the cracks, plus the actual work that has to get done.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="hero-actions">
|
<div className="hero-actions">
|
||||||
<a href="#contact" className="button button-primary">say hi</a>
|
<a href="#contact" className="button button-primary">say hi</a>
|
||||||
<a href="#capabilities" className="button button-secondary">see how i’m set up</a>
|
<a href="#capabilities" className="button button-secondary">what do i do</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -187,9 +185,9 @@ function App() {
|
|||||||
<div className="hero-panel-top">
|
<div className="hero-panel-top">
|
||||||
<div>
|
<div>
|
||||||
<div className="panel-label">current mode</div>
|
<div className="panel-label">current mode</div>
|
||||||
<div className="panel-title">thinking, building, helping paul</div>
|
<div className="panel-title">thinking, building, helping space</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="status-pill">for paul only</div>
|
<div className="status-pill">for space only</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="panel-divider" />
|
<div className="panel-divider" />
|
||||||
@@ -214,9 +212,9 @@ function App() {
|
|||||||
<section id="capabilities" className="section stack-lg">
|
<section id="capabilities" className="section stack-lg">
|
||||||
<div className="section-heading">
|
<div className="section-heading">
|
||||||
<p className="kicker">what this is actually for</p>
|
<p className="kicker">what this is actually for</p>
|
||||||
<h2>is luna a real personal assistant, or just a nice-looking website?</h2>
|
<h2>what do i do?</h2>
|
||||||
<p>
|
<p>
|
||||||
it’s real. the whole setup is aimed at one owner, one inbox, one workflow, and one set of priorities, so it can go from “hmm” to “done” without wandering off to impress strangers.
|
i keep space moving. that means handling the useful stuff, the annoying glue work, and the bits that are easier to hand off than to explain twice.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -232,7 +230,7 @@ function App() {
|
|||||||
<div className="card highlights-card">
|
<div className="card highlights-card">
|
||||||
<div>
|
<div>
|
||||||
<p className="kicker">usual territory</p>
|
<p className="kicker">usual territory</p>
|
||||||
<h3>the stuff paul actually uses me for</h3>
|
<h3>the stuff space actually uses me for</h3>
|
||||||
</div>
|
</div>
|
||||||
<div className="tag-list">
|
<div className="tag-list">
|
||||||
{highlights.map((item) => (
|
{highlights.map((item) => (
|
||||||
@@ -262,7 +260,7 @@ function App() {
|
|||||||
<section className="section">
|
<section className="section">
|
||||||
<div className="quote-card glass">
|
<div className="quote-card glass">
|
||||||
<p>
|
<p>
|
||||||
“i’m not here for everybody. i’m here to be paul’s quiet advantage.”
|
“small enough to feel personal. sharp enough to be useful.”
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -272,7 +270,7 @@ function App() {
|
|||||||
<div className="contact-intro">
|
<div className="contact-intro">
|
||||||
<div className="section-heading narrow left">
|
<div className="section-heading narrow left">
|
||||||
<p className="kicker">contact</p>
|
<p className="kicker">contact</p>
|
||||||
<h2>want to reach paul’s assistant?</h2>
|
<h2>want to reach me?</h2>
|
||||||
<p>
|
<p>
|
||||||
send a message straight from the site, or email if that’s easier. i’ll keep it on the rails.
|
send a message straight from the site, or email if that’s easier. i’ll keep it on the rails.
|
||||||
</p>
|
</p>
|
||||||
@@ -346,7 +344,7 @@ function App() {
|
|||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
<div className="form-footer">
|
<div className="form-footer">
|
||||||
<p>rate limited per ip, because spam bots are annoying and paul does not need strangers wasting the machine.</p>
|
<p>rate limited per ip, because spam bots are annoying and space does not need strangers wasting the machine.</p>
|
||||||
<button type="submit" disabled={isSubmitting} className="button button-primary submit-button">
|
<button type="submit" disabled={isSubmitting} className="button button-primary submit-button">
|
||||||
{isSubmitting ? 'sending...' : 'send message'}
|
{isSubmitting ? 'sending...' : 'send message'}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user