mirror of
https://github.com/hex248/sprint.git
synced 2026-02-07 18:23:03 +00:00
boring stuff page
This commit is contained in:
@@ -8,6 +8,7 @@ import { SelectionProvider } from "@/components/selection-provider";
|
||||
import { RequireAuth, SessionProvider } from "@/components/session-provider";
|
||||
import { ThemeProvider } from "@/components/theme-provider";
|
||||
import { Toaster } from "@/components/ui/sonner";
|
||||
import BoringStuff from "@/pages/BoringStuff";
|
||||
import Font from "@/pages/Font";
|
||||
import Issues from "@/pages/Issues";
|
||||
import Landing from "@/pages/Landing";
|
||||
@@ -27,6 +28,7 @@ ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
|
||||
{/* public routes */}
|
||||
<Route path="/" element={<Landing />} />
|
||||
<Route path="/font" element={<Font />} />
|
||||
<Route path="/the-boring-stuff" element={<BoringStuff />} />
|
||||
|
||||
{/* authed routes */}
|
||||
<Route
|
||||
|
||||
122
packages/frontend/src/pages/BoringStuff.tsx
Normal file
122
packages/frontend/src/pages/BoringStuff.tsx
Normal file
@@ -0,0 +1,122 @@
|
||||
import { Link } from "react-router-dom";
|
||||
import ThemeToggle from "@/components/theme-toggle";
|
||||
export default function BoringStuff() {
|
||||
return (
|
||||
<div className="min-h-screen flex flex-col">
|
||||
<header className="sticky top-0 z-50 w-full border-b bg-background/80 backdrop-blur-md">
|
||||
<div className="w-full flex h-14 items-center justify-between px-2">
|
||||
<div className="flex items-center gap-2">
|
||||
<img src="/favicon.svg" alt="Sprint" className="size-12 -mt-0.5" />
|
||||
<span className="text-3xl font-basteleur font-700 transition-colors -mt-0.5">Sprint</span>
|
||||
</div>
|
||||
<nav className="flex items-center gap-6">
|
||||
<Link
|
||||
to="/"
|
||||
className="hidden md:block text-sm font-500 hover:text-personality transition-colors"
|
||||
>
|
||||
Home
|
||||
</Link>
|
||||
<ThemeToggle />
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main className="flex-1 px-4 py-12">
|
||||
<div className="max-w-3xl mx-auto space-y-12">
|
||||
<section className="space-y-6">
|
||||
<h1 className="text-4xl font-basteleur font-700">The Boring Stuff</h1>
|
||||
<p className="text-muted-foreground">Let's keep it short.</p>
|
||||
</section>
|
||||
|
||||
<section className="space-y-6" id="privacy">
|
||||
<h2 className="text-2xl font-basteleur font-700">Privacy Policy</h2>
|
||||
<div className="space-y-4 text-muted-foreground">
|
||||
<p>
|
||||
<strong className="text-foreground">What we store:</strong> We store your email, name, and any
|
||||
data you create (issues, projects, time tracking).
|
||||
</p>
|
||||
<p>
|
||||
<strong className="text-foreground">How we use it:</strong> Only your email is used for
|
||||
subscription alerts and newsletters (you can unsubscribe).
|
||||
</p>
|
||||
<p>
|
||||
<strong className="text-foreground">Where it's stored:</strong> Data is stored on secure
|
||||
servers.
|
||||
</p>
|
||||
<p>
|
||||
{/* <strong className="text-foreground">Your rights:</strong> You can export or delete your data
|
||||
anytime. Just email us at privacy@sprintpm.org. */}
|
||||
</p>
|
||||
<p>
|
||||
<strong className="text-foreground">Cookies:</strong> We use essential cookies for
|
||||
authentication.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="space-y-6" id="terms">
|
||||
<h2 className="text-2xl font-basteleur font-700">Terms of Service</h2>
|
||||
<div className="space-y-4 text-muted-foreground">
|
||||
<p>
|
||||
<strong className="text-foreground">The basics:</strong> Sprint is a project management tool.
|
||||
Use it to organise work, track issues, and manage time. Don't use it for illegal stuff.
|
||||
</p>
|
||||
<p>
|
||||
<strong className="text-foreground">Your account:</strong> You're responsible for keeping your
|
||||
login details secure. Don't share your account.
|
||||
</p>
|
||||
<p>
|
||||
<strong className="text-foreground">Payments:</strong> Pro plans are billed monthly or
|
||||
annually. Cancel anytime from your account settings. No refunds for partial months.
|
||||
</p>
|
||||
<p>
|
||||
<strong className="text-foreground">Service availability:</strong> We aim for 99.9% uptime but
|
||||
can't guarantee it. We may occasionally need downtime for maintenance.
|
||||
</p>
|
||||
<p>
|
||||
<strong className="text-foreground">Termination:</strong> We may suspend accounts that violate
|
||||
these terms.
|
||||
</p>
|
||||
<p>
|
||||
<strong className="text-foreground">Changes:</strong> We'll notify you of significant changes
|
||||
to these terms via email.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="space-y-6" id="contact">
|
||||
<h2 className="text-2xl font-basteleur font-700">Questions?</h2>
|
||||
<p className="text-muted-foreground">
|
||||
Email us at{" "}
|
||||
<a href="mailto:support@sprintpm.org" className="text-personality hover:underline">
|
||||
support@sprintpm.org
|
||||
</a>{" "}
|
||||
- we'll get back to you within 24 hours.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<div className="pt-8 border-t">
|
||||
<p className="text-sm text-muted-foreground">Last updated: January 2025</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer className="flex justify-center gap-2 items-center py-1 border-t">
|
||||
<span className="font-300 text-lg text-muted-foreground">
|
||||
Built by{" "}
|
||||
<a
|
||||
href="https://ob248.com"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="hover:text-personality font-700"
|
||||
>
|
||||
Oliver Bryan
|
||||
</a>
|
||||
</span>
|
||||
<a href="https://ob248.com" target="_blank" rel="noopener noreferrer">
|
||||
<img src="/oliver-bryan.svg" alt="Oliver Bryan" className="w-4 h-4" />
|
||||
</a>
|
||||
</footer>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -387,7 +387,8 @@ export default function Landing() {
|
||||
|
||||
<LoginModal open={loginModalOpen} onOpenChange={setLoginModalOpen} />
|
||||
|
||||
<footer className="flex justify-center gap-2 items-center py-1 border-t">
|
||||
<footer className="flex flex-col items-center gap-2 py-1 border-t">
|
||||
<div className="flex justify-center gap-2 items-center">
|
||||
<span className="font-300 text-lg text-muted-foreground">
|
||||
Built by{" "}
|
||||
<a
|
||||
@@ -402,6 +403,13 @@ export default function Landing() {
|
||||
<a href="https://ob248.com" target="_blank" rel="noopener noreferrer">
|
||||
<img src="oliver-bryan.svg" alt="Oliver Bryan" className="w-4 h-4" />
|
||||
</a>
|
||||
</div>
|
||||
<Link
|
||||
to="/the-boring-stuff"
|
||||
className="text-sm text-muted-foreground hover:text-personality transition-colors"
|
||||
>
|
||||
The boring stuff — Privacy Policy & ToS
|
||||
</Link>
|
||||
</footer>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -286,6 +286,15 @@ export default function Plans() {
|
||||
<p className="text-sm text-muted-foreground">30-day no-risk policy</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="w-full max-w-4xl mx-auto border-t pt-4 pb-2 text-center">
|
||||
<Link
|
||||
to="/the-boring-stuff"
|
||||
className="text-sm text-muted-foreground hover:text-personality transition-colors"
|
||||
>
|
||||
The boring stuff — Privacy Policy & ToS
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user