Rebrand platform to DirectWire, add high-resolution and SVG favicons, update metadata and accessibility tags
This commit is contained in:
parent
de5fe3315a
commit
b11256c8ae
13 changed files with 32 additions and 16 deletions
BIN
web/public/favicon-32x32.png
Normal file
BIN
web/public/favicon-32x32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 820 B |
BIN
web/public/favicon.ico
Normal file
BIN
web/public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
6
web/public/favicon.svg
Normal file
6
web/public/favicon.svg
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
|
||||
<rect width="64" height="64" rx="14" fill="#1c1917"/>
|
||||
<circle cx="16" cy="32" r="5" fill="#d97706"/>
|
||||
<circle cx="48" cy="32" r="5" fill="#f59e0b"/>
|
||||
<path d="M 16 32 L 28 32 L 34 20 L 38 44 L 44 32 L 48 32" fill="none" stroke="#ffffff" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 401 B |
BIN
web/src/app/favicon.ico
Normal file
BIN
web/src/app/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
|
|
@ -5,8 +5,14 @@ import { Footer } from "@/components/Footer";
|
|||
import { BetaFeedbackModal } from "@/components/BetaFeedbackModal";
|
||||
|
||||
export const metadata = {
|
||||
title: "JobsBoard — Private Job Aggregator & ATS Resume Platform",
|
||||
description: "Self-hosted job aggregator for Connecticut & remote jobs with integrated ATS resume builder and local matching.",
|
||||
title: "DirectWire — Verified Direct-From-Source Job Index & ATS Platform",
|
||||
description: "Authentic nationwide job aggregator indexing directly from primary company career portals and ATS systems. Zero ghost postings, zero recruiter syndication.",
|
||||
icons: {
|
||||
icon: [
|
||||
{ url: "/favicon.ico" },
|
||||
{ url: "/favicon.svg", type: "image/svg+xml" },
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ export default async function HomePage() {
|
|||
</h1>
|
||||
|
||||
<p className="text-base sm:text-lg text-stone-700 max-w-2xl leading-relaxed">
|
||||
JobsBoard indexes authentic job listings directly from primary career feeds and company applicant tracking systems. No recruiter spam. No ghost listings.
|
||||
DirectWire indexes authentic job listings directly from primary career feeds and company applicant tracking systems. No recruiter spam. No ghost listings.
|
||||
</p>
|
||||
|
||||
{/* Practical Search Input */}
|
||||
|
|
@ -258,12 +258,12 @@ export default async function HomePage() {
|
|||
</div>
|
||||
</section>
|
||||
|
||||
{/* Why JobsBoard: Authentic Copywriting */}
|
||||
{/* Why DirectWire: Authentic Copywriting */}
|
||||
<section className="py-16 px-4 sm:px-6">
|
||||
<div className="max-w-5xl mx-auto space-y-8">
|
||||
<div className="border-b border-stone-300 pb-3">
|
||||
<h2 className="font-serif-editorial text-2xl font-bold text-stone-950">
|
||||
Why We Built JobsBoard
|
||||
Why We Built DirectWire
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ export default function PrivacyPolicyPage() {
|
|||
<div>
|
||||
<h2 className="text-xl font-semibold text-slate-900 mb-2">5. Contact Us</h2>
|
||||
<p className="leading-relaxed">
|
||||
If you have questions regarding this Privacy Policy or data privacy rights, please contact privacy@jobsboard.com.
|
||||
If you have questions regarding this Privacy Policy or data privacy rights, please contact privacy@directwire.io.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ export default function TermsOfServicePage() {
|
|||
<div>
|
||||
<h2 className="text-xl font-semibold text-slate-900 mb-2">1. Acceptance of Terms</h2>
|
||||
<p className="leading-relaxed">
|
||||
By creating an account or accessing the JobsBoard platform, you agree to comply with and be bound by these Terms of Service. If you do not agree, you must discontinue platform usage immediately.
|
||||
By creating an account or accessing the DirectWire platform, you agree to comply with and be bound by these Terms of Service. If you do not agree, you must discontinue platform usage immediately.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ export default function TermsOfServicePage() {
|
|||
<div>
|
||||
<h2 className="text-xl font-semibold text-slate-900 mb-2">3. Content Ownership & Responsibilities</h2>
|
||||
<p className="leading-relaxed">
|
||||
Employers retain ownership of their posted job listings and brand trademarks. Job seekers retain ownership of uploaded resumes and application details. By submitting content, users grant JobsBoard a license to display and transmit that content solely for platform operations.
|
||||
Employers retain ownership of their posted job listings and brand trademarks. Job seekers retain ownership of uploaded resumes and application details. By submitting content, users grant DirectWire a license to display and transmit that content solely for platform operations.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -46,7 +46,7 @@ export default function TermsOfServicePage() {
|
|||
<div>
|
||||
<h2 className="text-xl font-semibold text-slate-900 mb-2">5. Disclaimer of Liability</h2>
|
||||
<p className="leading-relaxed">
|
||||
JobsBoard is provided "as is" during the beta phase without warranties of any kind. JobsBoard is not responsible for employment decisions made by participating employers or candidates.
|
||||
DirectWire is provided "as is" during the beta phase without warranties of any kind. DirectWire is not responsible for employment decisions made by participating employers or candidates.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ export function BetaFeedbackModal() {
|
|||
<span className="inline-block w-2 h-2 bg-amber-600 rounded-full"></span>
|
||||
<span className="text-[10px] font-mono uppercase tracking-widest text-stone-600">Feedback Workbench</span>
|
||||
</div>
|
||||
<h3 className="font-serif-editorial text-lg font-semibold text-stone-950">JobsBoard Private Beta Report</h3>
|
||||
<h3 className="font-serif-editorial text-lg font-semibold text-stone-950">DirectWire Private Beta Report</h3>
|
||||
</div>
|
||||
<button
|
||||
onClick={() => setIsOpen(false)}
|
||||
|
|
|
|||
|
|
@ -7,14 +7,14 @@ export function Footer() {
|
|||
<div className="space-y-1">
|
||||
<div className="flex items-center space-x-2">
|
||||
<span className="font-serif-editorial text-sm font-semibold tracking-tight text-stone-950">
|
||||
JobsBoard
|
||||
DirectWire
|
||||
</span>
|
||||
<span className="text-[10px] font-mono uppercase bg-amber-100 text-amber-900 px-1.5 py-0.5 border border-amber-300">
|
||||
Private Beta
|
||||
</span>
|
||||
</div>
|
||||
<p className="text-[11px] text-stone-500">
|
||||
Editorial recruitment index · Verified primary sources · No recruiter syndication
|
||||
Direct-from-source career index · Verified primary ATS feeds · No ghost jobs · No recruiter syndication
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -58,10 +58,14 @@ export function Navbar() {
|
|||
<div className="flex items-center space-x-8">
|
||||
<Link
|
||||
href="/"
|
||||
className="flex items-baseline space-x-2 text-stone-900 group"
|
||||
className="flex items-center space-x-2 text-stone-900 group"
|
||||
aria-label="DirectWire Home"
|
||||
>
|
||||
<span className="w-5 h-5 rounded bg-stone-900 flex items-center justify-center text-amber-500 font-mono text-xs font-bold shadow-sm">
|
||||
//
|
||||
</span>
|
||||
<span className="font-serif-editorial text-xl font-bold tracking-tight text-stone-900">
|
||||
JobsBoard
|
||||
DirectWire
|
||||
</span>
|
||||
<span className="text-[10px] font-mono tracking-widest text-stone-400 uppercase">
|
||||
/ beta
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export async function sendEmail({
|
|||
html: string;
|
||||
}) {
|
||||
const apiKey = process.env.RESEND_API_KEY;
|
||||
const from = process.env.EMAIL_FROM || "JobsBoard <notifications@resend.dev>";
|
||||
const from = process.env.EMAIL_FROM || "DirectWire <notifications@resend.dev>";
|
||||
|
||||
if (!apiKey) {
|
||||
console.log("=========================================");
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ backgroundQueue.registerHandler("DISPATCH_NOTIFICATION_EMAIL", async (payload: {
|
|||
}) => {
|
||||
await sendEmail({
|
||||
to: payload.email,
|
||||
subject: `🔔 JobsBoard: ${payload.title}`,
|
||||
subject: `DirectWire: ${payload.title}`,
|
||||
html: `
|
||||
<div style="font-family: system-ui, -apple-system, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; border: 1px solid #e2e8f0; border-radius: 8px;">
|
||||
<div style="background-color: #111827; color: white; padding: 16px; text-align: center; border-radius: 6px 6px 0 0;">
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue