Refine luna personal assistant copy

This commit is contained in:
2026-05-28 13:58:14 +00:00
parent a761ee4545
commit 3d8138287d

View File

@@ -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: 'im 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 pauls assistant, tuned to his life and nobody elses.', text: 'this site exists to show that luna is spaces assistant, tuned to his life and nobody elses.',
}, },
{ {
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" />
pauls personal assistant, online and useful spaces personal assistant, online and useful
</div> </div>
<h1> <h1>
pauls private, hey, i&apos;m luna
<br />
capable assistant
</h1> </h1>
<p className="lede"> <p className="lede">
im luna. im not packaged for the public or sold as a generic ai. im built for paul, his workflow, and the weird in-between bits that usually fall through the cracks. im 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 im 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>
its 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>
im not here for everybody. im here to be pauls 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 pauls assistant?</h2> <h2>want to reach me?</h2>
<p> <p>
send a message straight from the site, or email if thats easier. ill keep it on the rails. send a message straight from the site, or email if thats easier. ill 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>