Invoice Overdue
{Math.ceil(
- (new Date().getTime() - new Date(invoice.dueDate).getTime()) /
+ (new Date().getTime() -
+ new Date(invoice.dueDate).getTime()) /
(1000 * 60 * 60 * 24),
)}{" "}
days past due date
@@ -154,7 +162,7 @@ async function InvoiceContent({ invoiceId }: { invoiceId: string }) {
-
+
{invoice.client.name}
@@ -162,17 +170,19 @@ async function InvoiceContent({ invoiceId }: { invoiceId: string }) {
{invoice.client.email && (
-
-
+
+
-
{invoice.client.email}
+
+ {invoice.client.email}
+
)}
{invoice.client.phone && (
-
-
+
{invoice.client.phone}
@@ -180,10 +190,10 @@ async function InvoiceContent({ invoiceId }: { invoiceId: string }) {
{(invoice.client.addressLine1 ?? invoice.client.city) && (
-
-
+
+
-
+
{invoice.client.addressLine1 && (
{invoice.client.addressLine1}
)}
@@ -224,7 +234,7 @@ async function InvoiceContent({ invoiceId }: { invoiceId: string }) {
-
+
{invoice.business.name}
@@ -232,19 +242,23 @@ async function InvoiceContent({ invoiceId }: { invoiceId: string }) {
{invoice.business.email && (
-
-
+
+
-
{invoice.business.email}
+
+ {invoice.business.email}
+
)}
{invoice.business.phone && (
-
-
+
-
{invoice.business.phone}
+
+ {invoice.business.phone}
+
)}
@@ -263,20 +277,26 @@ async function InvoiceContent({ invoiceId }: { invoiceId: string }) {
{invoice.items.map((item, index) => (
-
+
-
-
{item.description}
-
-
{formatDate(item.date)}
-
•
-
{item.hours} hours
-
•
-
@ ${item.rate}/hr
+
+
+ {item.description}
+
+
+
+ {formatDate(item.date)}
+
+
+ {item.hours} hours
+
+
+ @ ${item.rate}/hr
+
-
-
+
+
{formatCurrency(item.amount)}
@@ -289,18 +309,26 @@ async function InvoiceContent({ invoiceId }: { invoiceId: string }) {
Subtotal:
- {formatCurrency(subtotal)}
+
+ {formatCurrency(subtotal)}
+
{invoice.taxRate > 0 && (
- Tax ({invoice.taxRate}%):
- {formatCurrency(taxAmount)}
+
+ Tax ({invoice.taxRate}%):
+
+
+ {formatCurrency(taxAmount)}
+
)}
Total:
- {formatCurrency(total)}
+
+ {formatCurrency(total)}
+
@@ -314,7 +342,9 @@ async function InvoiceContent({ invoiceId }: { invoiceId: string }) {
Notes
- {invoice.notes}
+
+ {invoice.notes}
+
)}
@@ -336,19 +366,13 @@ async function InvoiceContent({ invoiceId }: { invoiceId: string }) {
Edit Invoice
-
+
{invoice.items && invoice.client && (
-
+
)}
{invoice.status === "draft" && (
-
+
)}
diff --git a/src/app/page.tsx b/src/app/page.tsx
index c4d07c2..c9f77a4 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -20,24 +20,24 @@ import {
export default function HomePage() {
return (
-
+
{/* Navigation */}
-
+
Features
Pricing
@@ -57,26 +57,34 @@ export default function HomePage() {
{/* Hero Section */}
-
+
+ {/* Background decoration */}
+
100% Free Forever
-
+
Simple Invoicing for
- Freelancers
+
+ Freelancers
+
-
+
Create professional invoices, manage clients, and track payments.
Built specifically for freelancers and small businesses—
-
+
completely free
.
@@ -86,7 +94,7 @@ export default function HomePage() {
Start Free
@@ -96,7 +104,7 @@ export default function HomePage() {
See Features
@@ -104,7 +112,7 @@ export default function HomePage() {
-
+
{[
"No credit card required",
"Setup in 2 minutes",
@@ -121,10 +129,10 @@ export default function HomePage() {
{/* Stats */}
-
+
-
+
Free invoicing for independent professionals
@@ -132,7 +140,10 @@ export default function HomePage() {
{/* Features Section */}
-
+
Supercharged Features
-
+
Everything you need to
-
+
invoice professionally
-
+
Simple, powerful features designed specifically for freelancers
and small businesses.
@@ -156,19 +167,19 @@ export default function HomePage() {
{/* Feature 1 */}
-
+
-
+
-
+
Quick Setup
-
+
Start creating invoices immediately. No complicated setup or
configuration required.
-
+
Simple client management
@@ -186,19 +197,19 @@ export default function HomePage() {
{/* Feature 2 */}
-
+
-
+
-
+
Payment Tracking
-
+
Keep track of invoice status and monitor which clients have
paid.
-
+
Invoice status tracking
@@ -216,18 +227,18 @@ export default function HomePage() {
{/* Feature 3 */}
-
+
-
+
-
+
Professional Features
-
+
Everything you need to look professional and get paid on time.
-
+
PDF generation
@@ -248,20 +259,23 @@ export default function HomePage() {
{/* Pricing Section */}
-
+
-
+
Simple, transparent pricing
-
+
Start free, stay free. No hidden fees, no gotchas, no limits on
your success.
-
+
Forever Free
@@ -269,12 +283,10 @@ export default function HomePage() {
-
+
$0
-
- per month, forever
-
+
per month, forever
@@ -290,18 +302,18 @@ export default function HomePage() {
].map((feature, i) => (
- {feature}
+ {feature}
))}
-
+
Get Started Now
-
+
No credit card required
@@ -311,48 +323,50 @@ export default function HomePage() {
{/* Why Choose */}
-
+
-
+
Why freelancers
- choose BeenVoice
+
+ choose BeenVoice
+
-
+
-
+
Quick & Simple
-
+
No learning curve. Start creating professional invoices in
minutes, not hours.
-
+
-
+
Always Free
-
+
No hidden fees, no premium tiers. All features are free for as
long as you need them.
-
+
-
+
Save Time
-
+
Focus on your work, not paperwork. Automated calculations and
professional formatting.
@@ -362,10 +376,11 @@ export default function HomePage() {
{/* CTA Section */}
-
-
-
-
+
+
+
+
+
@@ -384,7 +399,7 @@ export default function HomePage() {
Start Your Success Story
@@ -411,41 +426,41 @@ export default function HomePage() {
{/* Footer */}
-
+
-
+
Simple invoicing for freelancers. Free, forever.
-
+
-
+
© 2024 BeenVoice. Built with ♥ for entrepreneurs.