Rename frontend brand to Aarthalabs
This commit is contained in:
parent
22e162ae26
commit
20f32ba0de
@ -11,9 +11,9 @@ import { defaultFaqs } from "../../data/faq";
|
||||
import { siteInfo } from "../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "About LedgerOne",
|
||||
title: "About Aarthalabs",
|
||||
description:
|
||||
"Learn how LedgerOne builds audit-ready ledgers for US finance, tax, and operations teams.",
|
||||
"Learn how Aarthalabs builds audit-ready ledgers for US finance, tax, and operations teams.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -52,9 +52,9 @@ export default function AboutPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "About LedgerOne",
|
||||
name: "About Aarthalabs",
|
||||
description:
|
||||
"Learn how LedgerOne builds audit-ready ledgers for US finance, tax, and operations teams.",
|
||||
"Learn how Aarthalabs builds audit-ready ledgers for US finance, tax, and operations teams.",
|
||||
url: `${siteInfo.url}/about`
|
||||
},
|
||||
{
|
||||
@ -80,12 +80,12 @@ export default function AboutPage() {
|
||||
Our Story
|
||||
</div>
|
||||
<h1 className="text-4xl font-bold tracking-tight text-foreground sm:text-5xl leading-tight">
|
||||
LedgerOne keeps every transaction ready for{" "}
|
||||
Aarthalabs keeps every transaction ready for{" "}
|
||||
<span className="heading-hero-accent">ready for audits, review, and action.</span>
|
||||
</h1>
|
||||
<div className="space-y-4 text-lg text-muted-foreground">
|
||||
<p>
|
||||
We built LedgerOne for teams that manage high volumes of transactions but
|
||||
We built Aarthalabs for teams that manage high volumes of transactions but
|
||||
still need each decision documented. Our ledger-first workflow keeps the
|
||||
raw truth intact while allowing intelligent categorization and rule-driven
|
||||
automation.
|
||||
@ -119,7 +119,7 @@ export default function AboutPage() {
|
||||
Built for US operators
|
||||
</p>
|
||||
<p className="mt-1 text-sm text-muted-foreground">
|
||||
LedgerOne is built around US accounting workflows, audit readiness, and
|
||||
Aarthalabs is built around US accounting workflows, audit readiness, and
|
||||
tax reporting cycles.
|
||||
</p>
|
||||
</div>
|
||||
@ -167,7 +167,7 @@ export default function AboutPage() {
|
||||
</div>
|
||||
<h2 className="text-3xl font-bold text-foreground">A ledger that holds the full story.</h2>
|
||||
<p className="text-muted-foreground text-lg">
|
||||
Traditional tools collapse data into summaries. LedgerOne keeps each raw
|
||||
Traditional tools collapse data into summaries. Aarthalabs keeps each raw
|
||||
entry intact and layers in decisions, reviews, and approvals.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@ -493,7 +493,7 @@ export default function ConnectPage() {
|
||||
<div className="glass-panel mt-6 p-6 rounded-2xl shadow-sm">
|
||||
<h2 className="text-lg font-bold text-foreground">Google Sheets ownership</h2>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
Keep a user-owned Google Sheets mirror synced from LedgerOne transaction changes.
|
||||
Keep a user-owned Google Sheets mirror synced from Aarthalabs transaction changes.
|
||||
</p>
|
||||
<div className="mt-4 rounded-xl border border-border bg-secondary/30 px-4 py-3 text-sm">
|
||||
<p className="font-semibold text-foreground">
|
||||
|
||||
@ -145,7 +145,7 @@ export default function BillsPage() {
|
||||
amount: Number(bill.amount),
|
||||
scheduledFor: new Date().toISOString(),
|
||||
method: "ach",
|
||||
memo: `LedgerOne payment for ${bill.name}`,
|
||||
memo: `Aarthalabs payment for ${bill.name}`,
|
||||
}),
|
||||
});
|
||||
if (res.error) {
|
||||
|
||||
@ -42,7 +42,7 @@ export default function BlogPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne Blog",
|
||||
name: "Aarthalabs Blog",
|
||||
description: "Insights on financial control, audit readiness, and ledger automation.",
|
||||
url: `${siteInfo.url}/blog`
|
||||
},
|
||||
|
||||
@ -15,7 +15,7 @@ const inputClass =
|
||||
export const metadata = {
|
||||
title: "Book a Demo",
|
||||
description:
|
||||
"Book a LedgerOne demo to see audit-ready ledgering and transparent rules in action.",
|
||||
"Book a Aarthalabs demo to see audit-ready ledgering and transparent rules in action.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -24,9 +24,9 @@ export default function BookDemoPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "Book a LedgerOne Demo",
|
||||
name: "Book a Aarthalabs Demo",
|
||||
description:
|
||||
"Book a LedgerOne demo to see audit-ready ledgering and transparent rules in action.",
|
||||
"Book a Aarthalabs demo to see audit-ready ledgering and transparent rules in action.",
|
||||
url: `${siteInfo.url}/book-demo`
|
||||
},
|
||||
{
|
||||
@ -52,7 +52,7 @@ export default function BookDemoPage() {
|
||||
Book a demo
|
||||
</div>
|
||||
<h1 className="text-4xl font-bold tracking-tight text-foreground sm:text-5xl leading-tight">
|
||||
Schedule time with the LedgerOne team.
|
||||
Schedule time with the Aarthalabs team.
|
||||
</h1>
|
||||
<p className="text-lg text-muted-foreground">
|
||||
We will walk you through account connections, rule automation, and
|
||||
|
||||
@ -6,8 +6,8 @@ import { PageSchema } from "../../../components/page-schema";
|
||||
import { siteInfo } from "../../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "LedgerOne vs Copilot",
|
||||
description: "Compare LedgerOne's cross-platform business solution with Copilot's personal finance app.",
|
||||
title: "Aarthalabs vs Copilot",
|
||||
description: "Compare Aarthalabs's cross-platform business solution with Copilot's personal finance app.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -16,8 +16,8 @@ export default function CompareCopilotPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne vs Copilot",
|
||||
description: "Comparison of LedgerOne and Copilot.",
|
||||
name: "Aarthalabs vs Copilot",
|
||||
description: "Comparison of Aarthalabs and Copilot.",
|
||||
url: `${siteInfo.url}/compare/vs-copilot`
|
||||
}
|
||||
];
|
||||
@ -36,14 +36,14 @@ export default function CompareCopilotPage() {
|
||||
Financial control for everyone.
|
||||
</h1>
|
||||
<p className="text-lg text-muted-foreground">
|
||||
Copilot is great for iPhone users. LedgerOne is for serious business owners who need access everywhere, on any device.
|
||||
Copilot is great for iPhone users. Aarthalabs is for serious business owners who need access everywhere, on any device.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="glass-panel rounded-3xl overflow-hidden shadow-sm border border-border">
|
||||
<div className="grid grid-cols-3 bg-secondary/30 border-b border-border p-6 text-sm font-bold text-muted-foreground uppercase tracking-wider">
|
||||
<div className="col-span-1">Feature</div>
|
||||
<div className="col-span-1 text-center text-foreground">LedgerOne</div>
|
||||
<div className="col-span-1 text-center text-foreground">Aarthalabs</div>
|
||||
<div className="col-span-1 text-center">Copilot</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -6,9 +6,9 @@ import { PageSchema } from "../../../components/page-schema";
|
||||
import { siteInfo } from "../../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "LedgerOne vs Monarch Money",
|
||||
title: "Aarthalabs vs Monarch Money",
|
||||
description:
|
||||
"Compare LedgerOne's export-first ledger workflow with Monarch Money's household finance platform.",
|
||||
"Compare Aarthalabs's export-first ledger workflow with Monarch Money's household finance platform.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -17,8 +17,8 @@ export default function CompareMonarchPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne vs Monarch Money",
|
||||
description: "Comparison of LedgerOne and Monarch Money.",
|
||||
name: "Aarthalabs vs Monarch Money",
|
||||
description: "Comparison of Aarthalabs and Monarch Money.",
|
||||
url: `${siteInfo.url}/compare/vs-monarch`
|
||||
}
|
||||
];
|
||||
@ -46,14 +46,14 @@ export default function CompareMonarchPage() {
|
||||
Built for ledger control, not just household tracking.
|
||||
</h1>
|
||||
<p className="text-lg text-muted-foreground">
|
||||
Monarch Money is built around household financial visibility. LedgerOne is built for users who need structured transactions, export control, rules, audit trails, and tax-ready handoff.
|
||||
Monarch Money is built around household financial visibility. Aarthalabs is built for users who need structured transactions, export control, rules, audit trails, and tax-ready handoff.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="glass-panel rounded-3xl overflow-hidden shadow-sm border border-border">
|
||||
<div className="grid grid-cols-3 bg-secondary/30 border-b border-border p-6 text-sm font-bold text-muted-foreground uppercase tracking-wider">
|
||||
<div className="col-span-1">Feature</div>
|
||||
<div className="col-span-1 text-center text-foreground">LedgerOne</div>
|
||||
<div className="col-span-1 text-center text-foreground">Aarthalabs</div>
|
||||
<div className="col-span-1 text-center">Monarch Money</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -6,8 +6,8 @@ import { PageSchema } from "../../../components/page-schema";
|
||||
import { siteInfo } from "../../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "LedgerOne vs Quicken",
|
||||
description: "Move from legacy desktop software to LedgerOne's modern, cloud-native financial platform.",
|
||||
title: "Aarthalabs vs Quicken",
|
||||
description: "Move from legacy desktop software to Aarthalabs's modern, cloud-native financial platform.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -16,8 +16,8 @@ export default function CompareQuickenPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne vs Quicken",
|
||||
description: "Comparison of LedgerOne and Quicken.",
|
||||
name: "Aarthalabs vs Quicken",
|
||||
description: "Comparison of Aarthalabs and Quicken.",
|
||||
url: `${siteInfo.url}/compare/vs-quicken`
|
||||
}
|
||||
];
|
||||
@ -36,14 +36,14 @@ export default function CompareQuickenPage() {
|
||||
The modern alternative to Quicken.
|
||||
</h1>
|
||||
<p className="text-lg text-muted-foreground">
|
||||
Stop syncing desktop files. LedgerOne gives you the power of Quicken with the speed, security, and accessibility of the modern web.
|
||||
Stop syncing desktop files. Aarthalabs gives you the power of Quicken with the speed, security, and accessibility of the modern web.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="glass-panel rounded-3xl overflow-hidden shadow-sm border border-border">
|
||||
<div className="grid grid-cols-3 bg-secondary/30 border-b border-border p-6 text-sm font-bold text-muted-foreground uppercase tracking-wider">
|
||||
<div className="col-span-1">Feature</div>
|
||||
<div className="col-span-1 text-center text-foreground">LedgerOne</div>
|
||||
<div className="col-span-1 text-center text-foreground">Aarthalabs</div>
|
||||
<div className="col-span-1 text-center">Quicken</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -6,8 +6,8 @@ import { PageSchema } from "../../../components/page-schema";
|
||||
import { siteInfo } from "../../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "LedgerOne vs Spreadsheets",
|
||||
description: "See why modern businesses are switching from manual spreadsheets to LedgerOne's automated financial platform.",
|
||||
title: "Aarthalabs vs Spreadsheets",
|
||||
description: "See why modern businesses are switching from manual spreadsheets to Aarthalabs's automated financial platform.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -16,8 +16,8 @@ export default function CompareSpreadsheetsPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne vs Spreadsheets",
|
||||
description: "Comparison of LedgerOne automated platform versus manual spreadsheets.",
|
||||
name: "Aarthalabs vs Spreadsheets",
|
||||
description: "Comparison of Aarthalabs automated platform versus manual spreadsheets.",
|
||||
url: `${siteInfo.url}/compare/vs-spreadsheets`
|
||||
}
|
||||
];
|
||||
@ -36,14 +36,14 @@ export default function CompareSpreadsheetsPage() {
|
||||
Stop breaking your spreadsheets.
|
||||
</h1>
|
||||
<p className="text-lg text-muted-foreground">
|
||||
Spreadsheets are great for scratchpads, but terrible for financial systems. See why LedgerOne is the upgrade your business needs.
|
||||
Spreadsheets are great for scratchpads, but terrible for financial systems. See why Aarthalabs is the upgrade your business needs.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="glass-panel rounded-3xl overflow-hidden shadow-sm border border-border">
|
||||
<div className="grid grid-cols-3 bg-secondary/30 border-b border-border p-6 text-sm font-bold text-muted-foreground uppercase tracking-wider">
|
||||
<div className="col-span-1">Feature</div>
|
||||
<div className="col-span-1 text-center text-foreground">LedgerOne</div>
|
||||
<div className="col-span-1 text-center text-foreground">Aarthalabs</div>
|
||||
<div className="col-span-1 text-center">Spreadsheets</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -6,8 +6,8 @@ import { PageSchema } from "../../../components/page-schema";
|
||||
import { siteInfo } from "../../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "LedgerOne vs YNAB",
|
||||
description: "Compare LedgerOne's audit-ready financial platform with YNAB's zero-based budgeting tool.",
|
||||
title: "Aarthalabs vs YNAB",
|
||||
description: "Compare Aarthalabs's audit-ready financial platform with YNAB's zero-based budgeting tool.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -16,8 +16,8 @@ export default function CompareYnabPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne vs YNAB",
|
||||
description: "Comparison of LedgerOne and YNAB.",
|
||||
name: "Aarthalabs vs YNAB",
|
||||
description: "Comparison of Aarthalabs and YNAB.",
|
||||
url: `${siteInfo.url}/compare/vs-ynab`
|
||||
}
|
||||
];
|
||||
@ -36,14 +36,14 @@ export default function CompareYnabPage() {
|
||||
Beyond Budgeting.
|
||||
</h1>
|
||||
<p className="text-lg text-muted-foreground">
|
||||
YNAB is great for personal envelopes. LedgerOne is built for business growth, audit trails, and total financial control.
|
||||
YNAB is great for personal envelopes. Aarthalabs is built for business growth, audit trails, and total financial control.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="glass-panel rounded-3xl overflow-hidden shadow-sm border border-border">
|
||||
<div className="grid grid-cols-3 bg-secondary/30 border-b border-border p-6 text-sm font-bold text-muted-foreground uppercase tracking-wider">
|
||||
<div className="col-span-1">Feature</div>
|
||||
<div className="col-span-1 text-center text-foreground">LedgerOne</div>
|
||||
<div className="col-span-1 text-center text-foreground">Aarthalabs</div>
|
||||
<div className="col-span-1 text-center">YNAB</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ import { siteInfo } from "../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "Contact Us",
|
||||
description: "Get in touch with the LedgerOne team for support, sales, or partnerships.",
|
||||
description: "Get in touch with the Aarthalabs team for support, sales, or partnerships.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -18,8 +18,8 @@ export default function ContactPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "Contact LedgerOne",
|
||||
description: "Get in touch with the LedgerOne team for support, sales, or partnerships.",
|
||||
name: "Contact Aarthalabs",
|
||||
description: "Get in touch with the Aarthalabs team for support, sales, or partnerships.",
|
||||
url: `${siteInfo.url}/contact`
|
||||
},
|
||||
{
|
||||
@ -116,7 +116,7 @@ export default function ContactPage() {
|
||||
<svg className="h-5 w-5 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
|
||||
</svg>
|
||||
support@ledgerone.com
|
||||
support@aarthalabs.com
|
||||
</p>
|
||||
<p className="flex items-center gap-3">
|
||||
<svg className="h-5 w-5 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
|
||||
@ -56,7 +56,7 @@ export default function DemoPage() {
|
||||
<div className="mx-auto max-w-6xl px-6 lg:px-8 space-y-8">
|
||||
<header className="space-y-3">
|
||||
<p className="text-xs font-semibold tracking-[0.25em] text-emerald-400 uppercase">
|
||||
Demo · LedgerOne
|
||||
Demo · Aarthalabs
|
||||
</p>
|
||||
<h1 className="text-3xl sm:text-4xl font-semibold tracking-tight text-slate-50">
|
||||
AI-powered cash control dashboard
|
||||
@ -246,7 +246,7 @@ export default function DemoPage() {
|
||||
AI
|
||||
</div>
|
||||
<div className="text-xs text-slate-300">
|
||||
<p className="font-medium">LedgerOne Copilot</p>
|
||||
<p className="font-medium">Aarthalabs Copilot</p>
|
||||
<p className="text-[11px] text-slate-500">Monitors cash flow in real-time</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,10 +19,10 @@ type KeyListResponse = { keys: ApiKey[] };
|
||||
type CreatedKey = ApiKey & { key: string };
|
||||
|
||||
const apiExample = `curl -H "Authorization: Bearer l1_your_api_key" \\
|
||||
"https://api.ledgerone.app/api/public/v1/transactions?limit=25"`;
|
||||
"https://api.aarthalabs.com/api/public/v1/transactions?limit=25"`;
|
||||
|
||||
const sdkExample = `async function ledgerOne(path, apiKey) {
|
||||
const res = await fetch(\`https://api.ledgerone.app/api/public/v1\${path}\`, {
|
||||
const res = await fetch(\`https://api.aarthalabs.com/api/public/v1\${path}\`, {
|
||||
headers: { Authorization: \`Bearer \${apiKey}\` },
|
||||
});
|
||||
if (!res.ok) throw new Error(await res.text());
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
export default function Head() {
|
||||
return (
|
||||
<>
|
||||
<title>Exports | LedgerOne</title>
|
||||
<title>Exports | Aarthalabs</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Generate audit-ready exports with raw and derived ledger data."
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="ledgerone exports, csv export, audit-ready export"
|
||||
content="aarthalabs exports, csv export, audit-ready export"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
@ -7,7 +7,7 @@ import { siteInfo } from "../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "FAQ",
|
||||
description: "Common questions about LedgerOne pricing, accounts, and security.",
|
||||
description: "Common questions about Aarthalabs pricing, accounts, and security.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -16,8 +16,8 @@ export default function FaqPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne FAQ",
|
||||
description: "Common questions about LedgerOne pricing, accounts, and security.",
|
||||
name: "Aarthalabs FAQ",
|
||||
description: "Common questions about Aarthalabs pricing, accounts, and security.",
|
||||
url: `${siteInfo.url}/faq`
|
||||
},
|
||||
{
|
||||
@ -46,7 +46,7 @@ export default function FaqPage() {
|
||||
Common questions, clear answers.
|
||||
</h1>
|
||||
<p className="mt-4 text-lg text-muted-foreground">
|
||||
Find pricing, account, export, and security answers for LedgerOne.
|
||||
Find pricing, account, export, and security answers for Aarthalabs.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ import { PageSchema } from "../../../components/page-schema";
|
||||
import { siteInfo } from "../../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "Cash Flow Management - LedgerOne",
|
||||
title: "Cash Flow Management - Aarthalabs",
|
||||
description: "Visualize your income and expenses in real-time. Forecast future cash flow and make smarter business decisions.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
@ -39,7 +39,7 @@ export default function CashFlowPage() {
|
||||
<span className="heading-hero-accent">money is going.</span>
|
||||
</h1>
|
||||
<p className="text-lg text-muted-foreground mb-8">
|
||||
Stop guessing. LedgerOne gives you a crystal-clear view of your income versus expenses across all your accounts. Spot trends, identify leaks, and plan for the future.
|
||||
Stop guessing. Aarthalabs gives you a crystal-clear view of your income versus expenses across all your accounts. Spot trends, identify leaks, and plan for the future.
|
||||
</p>
|
||||
<ul className="space-y-4 mb-10">
|
||||
{[
|
||||
|
||||
@ -7,7 +7,7 @@ import { PageSchema } from "../../../components/page-schema";
|
||||
import { siteInfo } from "../../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "Custom Reporting - LedgerOne",
|
||||
title: "Custom Reporting - Aarthalabs",
|
||||
description: "Build custom financial reports and export audit-ready data for your accountant.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
@ -51,7 +51,7 @@ export default function ReportsPage() {
|
||||
<span className="heading-hero-accent">accountant smile.</span>
|
||||
</h1>
|
||||
<p className="text-lg text-muted-foreground mb-8">
|
||||
Don't scramble at tax time. LedgerOne keeps your data organized and audit-ready year-round. Build custom reports and export them in seconds.
|
||||
Don't scramble at tax time. Aarthalabs keeps your data organized and audit-ready year-round. Build custom reports and export them in seconds.
|
||||
</p>
|
||||
<ul className="space-y-4 mb-10">
|
||||
{[
|
||||
|
||||
@ -53,7 +53,7 @@ export default function ForgotPasswordPage() {
|
||||
className="h-12 w-12 rounded-full flex items-center justify-center text-white font-bold text-xl shadow-[0_12px_30px_var(--gradient-glow)]"
|
||||
style={{ background: "linear-gradient(to right, var(--gradient-start), var(--gradient-mid), var(--gradient-end))" }}
|
||||
>
|
||||
L1
|
||||
A
|
||||
</div>
|
||||
</div>
|
||||
<h2 className="mt-6 text-center text-3xl font-bold tracking-tight text-foreground">
|
||||
|
||||
@ -9,8 +9,8 @@ const space = Space_Grotesk({ subsets: ["latin"], variable: "--font-space" });
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: {
|
||||
default: "LedgerOne",
|
||||
template: "%s | LedgerOne"
|
||||
default: "Aarthalabs",
|
||||
template: "%s | Aarthalabs"
|
||||
},
|
||||
description: siteInfo.description,
|
||||
keywords: siteInfo.keywords
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
export default function Head() {
|
||||
return (
|
||||
<>
|
||||
<title>Login | LedgerOne</title>
|
||||
<title>Login | Aarthalabs</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Sign in to LedgerOne to access your audit-ready ledger and exports."
|
||||
content="Sign in to Aarthalabs to access your audit-ready ledger and exports."
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="ledgerone login, audit-ready ledger, finance dashboard, transaction ledger"
|
||||
content="aarthalabs login, audit-ready ledger, finance dashboard, transaction ledger"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
@ -220,8 +220,8 @@ export default function LoginPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne Login",
|
||||
description: "Sign in to LedgerOne to access your audit-ready ledger.",
|
||||
name: "Aarthalabs Login",
|
||||
description: "Sign in to Aarthalabs to access your audit-ready ledger.",
|
||||
url: `${siteInfo.url}/login`,
|
||||
},
|
||||
{
|
||||
@ -246,7 +246,7 @@ export default function LoginPage() {
|
||||
className="h-12 w-12 rounded-full flex items-center justify-center text-white font-bold text-xl shadow-[0_12px_30px_var(--gradient-glow)]"
|
||||
style={{ background: "linear-gradient(to right, var(--gradient-start), var(--gradient-mid), var(--gradient-end))" }}
|
||||
>
|
||||
L1
|
||||
A
|
||||
</div>
|
||||
</div>
|
||||
<h2 className="mt-6 text-center text-3xl font-bold tracking-tight text-foreground">
|
||||
|
||||
@ -152,7 +152,7 @@ export default function NotificationsPage() {
|
||||
<div className="grid gap-4 lg:grid-cols-3">
|
||||
<section className="rounded-xl border border-border bg-secondary/10 p-6">
|
||||
<p className="text-sm font-bold text-foreground">SMTP Email</p>
|
||||
<p className="mt-1 text-xs text-muted-foreground">Send important LedgerOne alerts through the configured SMTP transport.</p>
|
||||
<p className="mt-1 text-xs text-muted-foreground">Send important Aarthalabs alerts through the configured SMTP transport.</p>
|
||||
<label className="mt-4 flex items-center gap-2 text-sm text-foreground">
|
||||
<input
|
||||
type="checkbox"
|
||||
|
||||
10
app/page.tsx
10
app/page.tsx
@ -9,7 +9,7 @@ import { LandingFuture } from "../components/landing-future";
|
||||
import { LandingCta } from "../components/landing-cta";
|
||||
|
||||
export const metadata = {
|
||||
title: "LedgerOne - The Financial Control Platform for Modern Business",
|
||||
title: "Aarthalabs - The Financial Control Platform for Modern Business",
|
||||
description: "Connect all your accounts, automate your bookkeeping, and get audit-ready financials in real-time.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
@ -19,7 +19,7 @@ export default function LandingPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
name: "LedgerOne",
|
||||
name: "Aarthalabs",
|
||||
url: siteInfo.url,
|
||||
potentialAction: {
|
||||
"@type": "SearchAction",
|
||||
@ -30,12 +30,12 @@ export default function LandingPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
name: "LedgerOne",
|
||||
name: "Aarthalabs",
|
||||
url: siteInfo.url,
|
||||
logo: `${siteInfo.url}/logo.png`,
|
||||
sameAs: [
|
||||
"https://twitter.com/ledgerone",
|
||||
"https://linkedin.com/company/ledgerone"
|
||||
"https://twitter.com/aarthalabs",
|
||||
"https://linkedin.com/company/aarthalabs"
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@ -13,7 +13,7 @@ import { PricingAction } from "./pricing-actions";
|
||||
export const metadata = {
|
||||
title: "Pricing",
|
||||
description:
|
||||
"LedgerOne pricing: Free includes two accounts, Pro includes ten accounts, and Elite includes unlimited accounts.",
|
||||
"Aarthalabs pricing: Free includes two accounts, Pro includes ten accounts, and Elite includes unlimited accounts.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -79,9 +79,9 @@ export default function PricingPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne Pricing",
|
||||
name: "Aarthalabs Pricing",
|
||||
description:
|
||||
"LedgerOne pricing: Free includes two accounts, Pro includes ten accounts, and Elite includes unlimited accounts.",
|
||||
"Aarthalabs pricing: Free includes two accounts, Pro includes ten accounts, and Elite includes unlimited accounts.",
|
||||
url: `${siteInfo.url}/pricing`
|
||||
},
|
||||
{
|
||||
|
||||
@ -7,7 +7,7 @@ import { siteInfo } from "../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "Privacy Policy",
|
||||
description: "How LedgerOne collects, uses, and protects your data.",
|
||||
description: "How Aarthalabs collects, uses, and protects your data.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -26,7 +26,7 @@ export default function PrivacyPage() {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "Privacy Policy",
|
||||
description: "How LedgerOne collects, uses, and protects your data.",
|
||||
description: "How Aarthalabs collects, uses, and protects your data.",
|
||||
url: `${siteInfo.url}/privacy-policy`
|
||||
}
|
||||
];
|
||||
@ -104,8 +104,8 @@ export default function PrivacyPage() {
|
||||
<h2 className="text-foreground font-bold text-xl mb-3">6. Contact Us</h2>
|
||||
<p>
|
||||
If you have any questions about this Privacy Policy, please contact us at{" "}
|
||||
<a href="mailto:privacy@ledgerone.com" className="text-primary hover:underline font-medium">
|
||||
privacy@ledgerone.com
|
||||
<a href="mailto:privacy@aarthalabs.com" className="text-primary hover:underline font-medium">
|
||||
privacy@aarthalabs.com
|
||||
</a>{" "}
|
||||
or visit our{" "}
|
||||
<Link href="/contact" className="text-primary hover:underline font-medium">
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
export default function Head() {
|
||||
return (
|
||||
<>
|
||||
<title>Profile | LedgerOne</title>
|
||||
<title>Profile | Aarthalabs</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Complete your LedgerOne profile after signing in."
|
||||
content="Complete your Aarthalabs profile after signing in."
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="ledgerone profile, finance workspace, audit-ready ledger setup"
|
||||
content="aarthalabs profile, finance workspace, audit-ready ledger setup"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
@ -69,7 +69,7 @@ export default function ProfilePage() {
|
||||
return (
|
||||
<AppShell title="Profile" subtitle="Keep your ledger profile current for exports.">
|
||||
<div className="app-card p-10">
|
||||
<p className="text-xs uppercase tracking-[0.3em] text-muted">LedgerOne</p>
|
||||
<p className="text-xs uppercase tracking-[0.3em] text-muted">Aarthalabs</p>
|
||||
<h2 className="mt-4 text-2xl font-semibold">Complete your profile</h2>
|
||||
<p className="mt-2 text-sm text-muted">
|
||||
Add the details we need to personalize your ledger workspace.
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
export default function Head() {
|
||||
return (
|
||||
<>
|
||||
<title>Create Account | LedgerOne</title>
|
||||
<title>Create Account | Aarthalabs</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Create a LedgerOne account and start with two free connected accounts."
|
||||
content="Create a Aarthalabs account and start with two free connected accounts."
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="ledgerone signup, create account, finance ledger, audit-ready ledger"
|
||||
content="aarthalabs signup, create account, finance ledger, audit-ready ledger"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
@ -47,8 +47,8 @@ export default function RegisterPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne Create Account",
|
||||
description: "Create a LedgerOne account and start with two free accounts.",
|
||||
name: "Aarthalabs Create Account",
|
||||
description: "Create a Aarthalabs account and start with two free accounts.",
|
||||
url: `${siteInfo.url}/register`,
|
||||
},
|
||||
{
|
||||
@ -127,7 +127,7 @@ export default function RegisterPage() {
|
||||
className="w-full max-w-md mx-auto text-center"
|
||||
>
|
||||
<h1 className="text-2xl font-bold tracking-tight text-foreground sm:text-3xl">
|
||||
Create your LedgerOne account
|
||||
Create your Aarthalabs account
|
||||
</h1>
|
||||
<p className="mt-2 text-muted-foreground">
|
||||
Get AI-powered financial clarity in minutes.
|
||||
|
||||
@ -122,7 +122,7 @@ export default function ResetPasswordPage() {
|
||||
className="h-12 w-12 rounded-full flex items-center justify-center text-white font-bold text-xl shadow-[0_12px_30px_var(--gradient-glow)]"
|
||||
style={{ background: "linear-gradient(to right, var(--gradient-start), var(--gradient-mid), var(--gradient-end))" }}
|
||||
>
|
||||
L1
|
||||
A
|
||||
</div>
|
||||
</div>
|
||||
<h2 className="mt-6 text-center text-3xl font-bold tracking-tight text-foreground">
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
export default function Head() {
|
||||
return (
|
||||
<>
|
||||
<title>Rules Engine | LedgerOne</title>
|
||||
<title>Rules Engine | Aarthalabs</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Manage transparent automation rules and audit-ready workflows in LedgerOne."
|
||||
content="Manage transparent automation rules and audit-ready workflows in Aarthalabs."
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="ledgerone rules, automation rules, audit-ready workflows"
|
||||
content="aarthalabs rules, automation rules, audit-ready workflows"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
@ -119,7 +119,7 @@ export default function ProfilePage() {
|
||||
const url = URL.createObjectURL(blob);
|
||||
const anchor = document.createElement("a");
|
||||
anchor.href = url;
|
||||
anchor.download = `ledgerone-personal-data-${new Date().toISOString().slice(0, 10)}.json`;
|
||||
anchor.download = `aarthalabs-personal-data-${new Date().toISOString().slice(0, 10)}.json`;
|
||||
document.body.appendChild(anchor);
|
||||
anchor.click();
|
||||
anchor.remove();
|
||||
@ -128,7 +128,7 @@ export default function ProfilePage() {
|
||||
};
|
||||
|
||||
const deleteAccount = async () => {
|
||||
const confirmed = window.confirm("Delete this LedgerOne account and associated personal data? This cannot be undone.");
|
||||
const confirmed = window.confirm("Delete this Aarthalabs account and associated personal data? This cannot be undone.");
|
||||
if (!confirmed) return;
|
||||
setPrivacyStatus("Deleting account...");
|
||||
setPrivacyError(false);
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
export default function Head() {
|
||||
return (
|
||||
<>
|
||||
<title>Tax Workspace | LedgerOne</title>
|
||||
<title>Tax Workspace | Aarthalabs</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Prepare tax returns and export audit-ready tax packages in LedgerOne."
|
||||
content="Prepare tax returns and export audit-ready tax packages in Aarthalabs."
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="ledgerone tax, tax export, audit-ready tax package"
|
||||
content="aarthalabs tax, tax export, audit-ready tax package"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
@ -7,7 +7,7 @@ import { siteInfo } from "../../data/site";
|
||||
|
||||
export const metadata = {
|
||||
title: "Terms of Service",
|
||||
description: "Terms and conditions for using LedgerOne.",
|
||||
description: "Terms and conditions for using Aarthalabs.",
|
||||
keywords: siteInfo.keywords
|
||||
};
|
||||
|
||||
@ -26,7 +26,7 @@ export default function TermsPage() {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "Terms of Service",
|
||||
description: "Terms and conditions for using LedgerOne.",
|
||||
description: "Terms and conditions for using Aarthalabs.",
|
||||
url: `${siteInfo.url}/terms`
|
||||
}
|
||||
];
|
||||
@ -65,21 +65,21 @@ export default function TermsPage() {
|
||||
<section id="acceptance">
|
||||
<h2 className="text-foreground font-bold text-xl mb-3">1. Acceptance of Terms</h2>
|
||||
<p>
|
||||
By accessing and using LedgerOne, you accept and agree to be bound by the terms and provisions of this agreement.
|
||||
By accessing and using Aarthalabs, you accept and agree to be bound by the terms and provisions of this agreement.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section id="service">
|
||||
<h2 className="text-foreground font-bold text-xl mb-3">2. Service Description</h2>
|
||||
<p>
|
||||
LedgerOne provides financial data aggregation, ledger management, and reporting tools. We are not a bank or financial advisor.
|
||||
Aarthalabs provides financial data aggregation, ledger management, and reporting tools. We are not a bank or financial advisor.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section id="accounts">
|
||||
<h2 className="text-foreground font-bold text-xl mb-3">3. User Accounts</h2>
|
||||
<p>
|
||||
You are responsible for maintaining the security of your account and password. LedgerOne cannot and will not be liable for any loss or damage from your failure to comply with this security obligation.
|
||||
You are responsible for maintaining the security of your account and password. Aarthalabs cannot and will not be liable for any loss or damage from your failure to comply with this security obligation.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@ -97,7 +97,7 @@ export default function TermsPage() {
|
||||
<section id="governing">
|
||||
<h2 className="text-foreground font-bold text-xl mb-3">5. Governing Law</h2>
|
||||
<p>
|
||||
These Terms shall be governed by and construed in accordance with the laws of the United States and Canada. LedgerOne Inc. and you irrevocably consent that the courts of the United States and Canada shall have exclusive jurisdiction to resolve any dispute which may arise in connection with these terms.
|
||||
These Terms shall be governed by and construed in accordance with the laws of the United States and Canada. Aarthalabs Inc. and you irrevocably consent that the courts of the United States and Canada shall have exclusive jurisdiction to resolve any dispute which may arise in connection with these terms.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
export default function Head() {
|
||||
return (
|
||||
<>
|
||||
<title>Transactions | LedgerOne</title>
|
||||
<title>Transactions | Aarthalabs</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Review raw transactions and layered categories in LedgerOne."
|
||||
content="Review raw transactions and layered categories in Aarthalabs."
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="ledgerone transactions, transaction ledger, audit-ready transactions"
|
||||
content="aarthalabs transactions, transaction ledger, audit-ready transactions"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
@ -462,10 +462,10 @@ export default function TransactionsPage() {
|
||||
});
|
||||
if (res.error) { setStatus(res.error.message ?? "Unable to save edits."); return; }
|
||||
setEditingRef(null);
|
||||
setStatus("Transaction updated.");
|
||||
await load();
|
||||
await loadSummary();
|
||||
await loadInsights();
|
||||
setStatus("Transaction updated.");
|
||||
};
|
||||
|
||||
const inputCls = "mt-2 w-full rounded-md border border-border bg-background/50 px-3 py-2 text-sm text-foreground focus:border-primary focus:ring-primary focus:outline-none";
|
||||
|
||||
@ -100,7 +100,7 @@ export default function VerifyEmailPage() {
|
||||
className="h-12 w-12 rounded-full flex items-center justify-center text-white font-bold text-xl shadow-[0_12px_30px_var(--gradient-glow)]"
|
||||
style={{ background: "linear-gradient(to right, var(--gradient-start), var(--gradient-mid), var(--gradient-end))" }}
|
||||
>
|
||||
L1
|
||||
A
|
||||
</div>
|
||||
</div>
|
||||
<h2 className="mt-6 text-center text-3xl font-bold tracking-tight text-foreground">
|
||||
|
||||
@ -123,9 +123,9 @@ export function AppShell({ title, subtitle, children }: AppShellProps) {
|
||||
<div className="h-16 flex items-center px-6 border-b border-border">
|
||||
<div className="flex items-center gap-2">
|
||||
<div className="h-6 w-6 rounded bg-primary flex items-center justify-center text-primary-foreground font-bold text-xs shadow-glow-teal">
|
||||
L1
|
||||
A
|
||||
</div>
|
||||
<span className="font-semibold text-foreground tracking-tight">LedgerOne</span>
|
||||
<span className="font-semibold text-foreground tracking-tight">Aarthalabs</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -166,9 +166,9 @@ export function AppShell({ title, subtitle, children }: AppShellProps) {
|
||||
<div className="h-16 flex items-center justify-between px-6 border-b border-border">
|
||||
<div className="flex items-center gap-2">
|
||||
<div className="h-6 w-6 rounded bg-primary flex items-center justify-center text-primary-foreground font-bold text-xs shadow-glow-teal">
|
||||
L1
|
||||
A
|
||||
</div>
|
||||
<span className="font-semibold text-foreground tracking-tight">LedgerOne</span>
|
||||
<span className="font-semibold text-foreground tracking-tight">Aarthalabs</span>
|
||||
</div>
|
||||
<button onClick={() => setMobileOpen(false)} className="text-muted-foreground hover:text-foreground">
|
||||
<svg className="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
|
||||
@ -16,7 +16,7 @@ export function ContactSection() {
|
||||
<p className="text-xs font-semibold uppercase tracking-[0.2em] text-muted-foreground">Contact us</p>
|
||||
<h2 className="mt-3 text-2xl font-semibold text-foreground">Let's talk about your ledger.</h2>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
Tell us about your workflow and we will suggest the best LedgerOne setup.
|
||||
Tell us about your workflow and we will suggest the best Aarthalabs setup.
|
||||
</p>
|
||||
<form className="mt-6 grid gap-4 md:grid-cols-2" onSubmit={onSubmit}>
|
||||
<div className="space-y-2">
|
||||
|
||||
@ -8,7 +8,7 @@ export function DemoCta() {
|
||||
<div>
|
||||
<p className="text-xs font-semibold uppercase tracking-[0.2em] text-muted-foreground">Book a demo</p>
|
||||
<h2 className="mt-3 text-2xl font-semibold text-foreground">
|
||||
See LedgerOne in a live walkthrough.
|
||||
See Aarthalabs in a live walkthrough.
|
||||
</h2>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
Talk through your workflow and learn how to keep a complete audit trail.
|
||||
|
||||
@ -17,7 +17,7 @@ export function FaqSection({ title, subtitle, limit }: FaqSectionProps) {
|
||||
</h2>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
{subtitle ??
|
||||
"Find pricing, account, export, and security answers for LedgerOne."}
|
||||
"Find pricing, account, export, and security answers for Aarthalabs."}
|
||||
</p>
|
||||
<ol className="mt-6 space-y-5 text-sm text-muted-foreground">
|
||||
{items.map((item, index) => (
|
||||
|
||||
@ -29,7 +29,7 @@ export function LandingFeatures() {
|
||||
Not Just Tracking. Thinking.
|
||||
</h2>
|
||||
<p className="mt-4 text-lg text-muted-foreground">
|
||||
LedgerOne turns your raw transaction firehose into AI-native context—what's
|
||||
Aarthalabs turns your raw transaction firehose into AI-native context—what's
|
||||
happening, what's coming, and what you should do about it.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@ -28,7 +28,7 @@ export function LandingFuture() {
|
||||
See Your Financial Future
|
||||
</h2>
|
||||
<p className="text-base text-muted-foreground sm:text-lg">
|
||||
LedgerOne maps every recurring bill, subscription, and paycheck onto a single, living
|
||||
Aarthalabs maps every recurring bill, subscription, and paycheck onto a single, living
|
||||
timeline—so you can see exactly when your balance bends.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@ -52,7 +52,7 @@ export function LandingHero() {
|
||||
</h1>
|
||||
<p className="body-lead">
|
||||
AI-powered insights, forecasts, and real-time financial control—without spreadsheets.
|
||||
LedgerOne watches every account, predicts risk, and tells you what's safe to
|
||||
Aarthalabs watches every account, predicts risk, and tells you what's safe to
|
||||
spend before you click "checkout".
|
||||
</p>
|
||||
</motion.div>
|
||||
|
||||
@ -12,10 +12,10 @@ export function Logo({ href = "/", className = "", showWordmark = true }: LogoPr
|
||||
<>
|
||||
<div className="flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-white shadow-[0_12px_30px_var(--gradient-glow)] transition-transform group-hover:scale-105"
|
||||
style={{ background: "linear-gradient(to right, var(--gradient-start), var(--gradient-mid), var(--gradient-end))" }}>
|
||||
<span className="font-bold text-sm">L1</span>
|
||||
<span className="font-bold text-sm">A</span>
|
||||
</div>
|
||||
{showWordmark && (
|
||||
<span className="text-lg font-bold tracking-tight text-foreground">LedgerOne</span>
|
||||
<span className="text-lg font-bold tracking-tight text-foreground">Aarthalabs</span>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
|
||||
@ -31,7 +31,7 @@ export function SignupTestimonialPanel() {
|
||||
))}
|
||||
</div>
|
||||
<blockquote className="text-foreground text-base leading-relaxed">
|
||||
“LedgerOne helped us understand cash flow before problems surfaced. The experience feels fast, clear, and built for modern finance teams.”
|
||||
“Aarthalabs helped us understand cash flow before problems surfaced. The experience feels fast, clear, and built for modern finance teams.”
|
||||
</blockquote>
|
||||
<footer className="mt-4">
|
||||
<p className="text-sm font-semibold text-foreground">Sarah Chen</p>
|
||||
@ -50,7 +50,7 @@ export function SignupTestimonialPanel() {
|
||||
{!imgError ? (
|
||||
<Image
|
||||
src="/images/dashboard-hero.png"
|
||||
alt="LedgerOne dashboard preview"
|
||||
alt="Aarthalabs dashboard preview"
|
||||
fill
|
||||
className="object-cover opacity-90"
|
||||
sizes="(max-width: 768px) 100vw, 480px"
|
||||
@ -76,7 +76,7 @@ export function SignupTestimonialPanel() {
|
||||
</motion.div>
|
||||
|
||||
<p className="text-center text-xs text-muted-foreground">
|
||||
Join 50,000+ teams who trust LedgerOne for financial clarity.
|
||||
Join 50,000+ teams who trust Aarthalabs for financial clarity.
|
||||
</p>
|
||||
</motion.div>
|
||||
);
|
||||
|
||||
@ -60,7 +60,7 @@ export function SiteFooter() {
|
||||
|
||||
<div className="mt-8 pt-6 flex flex-col sm:flex-row items-center gap-4">
|
||||
<p className="text-xs text-muted-foreground">
|
||||
© {new Date().getFullYear()} LedgerOne Inc. All rights reserved.
|
||||
© {new Date().getFullYear()} Aarthalabs Inc. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
12
data/blog.ts
12
data/blog.ts
@ -20,10 +20,10 @@ export const blogPosts: BlogPost[] = [
|
||||
"https://images.unsplash.com/photo-1551836022-4c4c79ecde51iq=80&w=1600&auto=format&fit=crop",
|
||||
content: [
|
||||
"Audit prep often starts too late. When teams wait until close to reconciliation, the trail of decisions is already fragmented across spreadsheets, emails, and ad hoc notes.",
|
||||
"LedgerOne was designed to prevent that scramble. By preserving raw transactions and layering edits, every decision becomes a traceable record instead of a manual explanation.",
|
||||
"Aarthalabs was designed to prevent that scramble. By preserving raw transactions and layering edits, every decision becomes a traceable record instead of a manual explanation.",
|
||||
"The result is a ledger that reads like a timeline. You can see what changed, who changed it, and why it changed, which makes audit requests far easier to satisfy.",
|
||||
"An audit-ready workflow also helps internally. Finance, tax, and operations teams share the same record of truth instead of duplicating the work.",
|
||||
"The most important shift is cultural: teams stop thinking in summaries and start thinking in evidence. That is exactly where LedgerOne thrives."
|
||||
"The most important shift is cultural: teams stop thinking in summaries and start thinking in evidence. That is exactly where Aarthalabs thrives."
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -38,9 +38,9 @@ export const blogPosts: BlogPost[] = [
|
||||
content: [
|
||||
"Most teams start with two or three accounts. As the business grows, those connections multiply, and so do the inconsistencies.",
|
||||
"A connected account strategy keeps the growth sustainable. The first step is standardizing the way accounts are labeled, synced, and categorized.",
|
||||
"LedgerOne gives teams a way to normalize incoming data without overwriting raw transactions. That means you can keep the original feed intact while building your internal logic on top.",
|
||||
"Aarthalabs gives teams a way to normalize incoming data without overwriting raw transactions. That means you can keep the original feed intact while building your internal logic on top.",
|
||||
"When you are ready to scale beyond the first two accounts, the upgrade is simple and predictable. Pro covers ten active accounts, while Elite opens the door to unlimited reporting coverage across every source.",
|
||||
"The teams that succeed with scale are the ones who document every rule, every decision, and every export. That is what LedgerOne is built to deliver."
|
||||
"The teams that succeed with scale are the ones who document every rule, every decision, and every export. That is what Aarthalabs is built to deliver."
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -55,9 +55,9 @@ export const blogPosts: BlogPost[] = [
|
||||
content: [
|
||||
"Real-time dashboards are powerful, but they do not replace the need for a clean export. Finance teams still need shareable, auditable files.",
|
||||
"Exports are how teams communicate with auditors, external accountants, and internal stakeholders. The export is the handshake.",
|
||||
"LedgerOne keeps exports consistent by bundling raw and derived data together, so anyone reviewing the file can see exactly what changed and why.",
|
||||
"Aarthalabs keeps exports consistent by bundling raw and derived data together, so anyone reviewing the file can see exactly what changed and why.",
|
||||
"That transparency speeds up reviews, reduces back-and-forth, and keeps teams aligned on the same set of numbers.",
|
||||
"In a real-time world, exports remain the final proof point. LedgerOne makes sure they are trustworthy."
|
||||
"In a real-time world, exports remain the final proof point. Aarthalabs makes sure they are trustworthy."
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
18
data/faq.ts
18
data/faq.ts
@ -1,16 +1,16 @@
|
||||
export const defaultFaqs = [
|
||||
{
|
||||
question: "What is LedgerOnei",
|
||||
question: "What is Aarthalabsi",
|
||||
answer:
|
||||
"LedgerOne is a financial control desk that keeps raw transactions immutable while you layer in categories, notes, and automation."
|
||||
"Aarthalabs is a financial control desk that keeps raw transactions immutable while you layer in categories, notes, and automation."
|
||||
},
|
||||
{
|
||||
question: "Who is LedgerOne built fori",
|
||||
question: "Who is Aarthalabs built fori",
|
||||
answer:
|
||||
"US finance, tax, and operations teams who need audit-ready exports and clear transaction history."
|
||||
},
|
||||
{
|
||||
question: "How much does LedgerOne costi",
|
||||
question: "How much does Aarthalabs costi",
|
||||
answer:
|
||||
"Free includes two connected accounts. Pro includes ten accounts and paid export access. Elite includes unlimited accounts."
|
||||
},
|
||||
@ -27,7 +27,7 @@ export const defaultFaqs = [
|
||||
{
|
||||
question: "Do edits overwrite original transactionsi",
|
||||
answer:
|
||||
"No. LedgerOne preserves the raw transaction and stores edits as layered decisions."
|
||||
"No. Aarthalabs preserves the raw transaction and stores edits as layered decisions."
|
||||
},
|
||||
{
|
||||
question: "Can I export my data anytimei",
|
||||
@ -35,7 +35,7 @@ export const defaultFaqs = [
|
||||
"Yes. Pro and Elite users can export unlimited CSV, JSON, XLSX, and PDF files through secure download links."
|
||||
},
|
||||
{
|
||||
question: "Does LedgerOne support audit trailsi",
|
||||
question: "Does Aarthalabs support audit trailsi",
|
||||
answer:
|
||||
"Every change, rule execution, and export is captured in the audit log."
|
||||
},
|
||||
@ -57,7 +57,7 @@ export const defaultFaqs = [
|
||||
{
|
||||
question: "Can multiple teammates access the ledgeri",
|
||||
answer:
|
||||
"LedgerOne is built for collaboration across finance, tax, and operations."
|
||||
"Aarthalabs is built for collaboration across finance, tax, and operations."
|
||||
},
|
||||
{
|
||||
question: "What happens if I canceli",
|
||||
@ -67,7 +67,7 @@ export const defaultFaqs = [
|
||||
{
|
||||
question: "Do you support US tax workflowsi",
|
||||
answer:
|
||||
"Yes. LedgerOne is designed to support US tax and accounting workflows."
|
||||
"Yes. Aarthalabs is designed to support US tax and accounting workflows."
|
||||
},
|
||||
{
|
||||
question: "Can I import historical transactionsi",
|
||||
@ -90,7 +90,7 @@ export const defaultFaqs = [
|
||||
"Yes. You can add categories, notes, and custom tags to every transaction."
|
||||
},
|
||||
{
|
||||
question: "Does LedgerOne integrate with accounting softwarei",
|
||||
question: "Does Aarthalabs integrate with accounting softwarei",
|
||||
answer:
|
||||
"Exports are designed to plug into your accounting workflow. Integrations are planned."
|
||||
},
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
export const siteInfo = {
|
||||
name: "LedgerOne",
|
||||
url: "https://ledgerone.app",
|
||||
name: "Aarthalabs",
|
||||
url: "https://aarthalabs.com",
|
||||
description:
|
||||
"LedgerOne builds audit-ready ledgers for US finance teams that need proof, not just dashboards.",
|
||||
"Aarthalabs builds audit-ready ledgers for US finance teams that need proof, not just dashboards.",
|
||||
keywords: [
|
||||
"ledger",
|
||||
"financial control",
|
||||
|
||||
@ -6,9 +6,9 @@ self.addEventListener("push", (event) => {
|
||||
data = {};
|
||||
}
|
||||
|
||||
const title = data.title || "LedgerOne";
|
||||
const title = data.title || "Aarthalabs";
|
||||
const options = {
|
||||
body: data.body || "You have a new LedgerOne notification.",
|
||||
body: data.body || "You have a new Aarthalabs notification.",
|
||||
icon: "/favicon.ico",
|
||||
badge: "/favicon.ico",
|
||||
data: {
|
||||
|
||||
@ -147,8 +147,8 @@ export default function LoginPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne Login",
|
||||
description: "Sign in to LedgerOne to access your audit-ready ledger.",
|
||||
name: "Aarthalabs Login",
|
||||
description: "Sign in to Aarthalabs to access your audit-ready ledger.",
|
||||
url: \`\${siteInfo.url}/login\`,
|
||||
},
|
||||
{
|
||||
@ -235,8 +235,8 @@ export default function RegisterPage() {
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
name: "LedgerOne Create Account",
|
||||
description: "Create a LedgerOne account and start with two free accounts.",
|
||||
name: "Aarthalabs Create Account",
|
||||
description: "Create a Aarthalabs account and start with two free accounts.",
|
||||
url: \`\${siteInfo.url}/register\`,
|
||||
},
|
||||
{
|
||||
|
||||
@ -122,7 +122,7 @@ export function AppShell({ title, subtitle, children }: AppShellProps) {
|
||||
<div className="h-6 w-6 rounded bg-primary flex items-center justify-center text-primary-foreground font-bold text-xs shadow-glow-teal">
|
||||
L1
|
||||
</div>
|
||||
<span className="font-semibold text-foreground tracking-tight">LedgerOne</span>
|
||||
<span className="font-semibold text-foreground tracking-tight">Aarthalabs</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -165,7 +165,7 @@ export function AppShell({ title, subtitle, children }: AppShellProps) {
|
||||
<div className="h-6 w-6 rounded bg-primary flex items-center justify-center text-primary-foreground font-bold text-xs shadow-glow-teal">
|
||||
L1
|
||||
</div>
|
||||
<span className="font-semibold text-foreground tracking-tight">LedgerOne</span>
|
||||
<span className="font-semibold text-foreground tracking-tight">Aarthalabs</span>
|
||||
</div>
|
||||
<button onClick={() => setMobileOpen(false)} className="text-muted-foreground hover:text-foreground">
|
||||
<svg className="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
|
||||
@ -75,7 +75,7 @@ export default function ExportsPage() {
|
||||
const url = URL.createObjectURL(blob);
|
||||
const a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = \`ledgerone-export-\${new Date().toISOString().slice(0, 10)}.csv\`;
|
||||
a.download = \`aarthalabs-export-\${new Date().toISOString().slice(0, 10)}.csv\`;
|
||||
a.click();
|
||||
URL.revokeObjectURL(url);
|
||||
setCsvStatus(\`Export ready (\${res.data.rowCount ?? 0} rows) — file downloaded.\`);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user