Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,6 @@ if you have any questions or need assistance, feel free to:

- [open an issue](https://github.com/apsinghdev/opensox/issues)
- join our [discord community](https://discord.gg/zbHzgMNBrm)
- email us at hi@opensox.ai
- email us at opensoxlabs@gmail.com

we're here to help! ❤️
12 changes: 6 additions & 6 deletions apps/api/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ app.get("/test", apiLimiter, (req: Request, res: Response) => {
res.status(200).json({ status: "ok", message: "Test endpoint is working" });
});

// Slack Community Invite Endpoint (Protected)
// Discord Community Invite Endpoint (Protected)
app.get("/join-community", apiLimiter, async (req: Request, res: Response) => {
try {
const authHeader = req.headers.authorization;
Expand Down Expand Up @@ -136,15 +136,15 @@ app.get("/join-community", apiLimiter, async (req: Request, res: Response) => {
});
}

// Get Slack invite URL from environment
const slackInviteUrl = process.env.SLACK_INVITE_URL;
if (!slackInviteUrl) {
console.error("SLACK_INVITE_URL not configured");
// Get Discord invite URL from environment
const discordInviteUrl = process.env.DISCORD_INVITE_URL;
if (!discordInviteUrl) {
console.error("DISCORD_INVITE_URL not configured");
return res.status(500).json({ error: "Community invite not configured" });
}

return res.status(200).json({
slackInviteUrl,
discordInviteUrl,
message: "Subscription verified. You can join the community.",
});
} catch (error: any) {
Expand Down
26 changes: 15 additions & 11 deletions apps/web/src/app/(main)/(landing)/pitch/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,10 @@ const Pitch = () => {
<ul className="space-y-3 [&>li]:flex [&>li]:items-start [&>li]:gap-4 [&>li]:text-text-secondary [&>li]:font-medium [&>li]:text-lg [&>li]:lowercase">
<li>
<CornerDownRight className="size-5 flex-shrink-0 text-brand-purple-light mt-1" />
<span>is a Single Consolidate Platform for Everything in Open Source</span>
<span>
is a Single Consolidate Platform for Everything in Open
Source
</span>
</li>
<li>
<CornerDownRight className="size-5 flex-shrink-0 text-brand-purple-light mt-1" />
Expand All @@ -270,8 +273,8 @@ const Pitch = () => {
<strong className="text-brand-purple-light">
the bottom line
</strong>{" "}
- my goal is to make you
achieve things in 1 year that took me 3.
- my goal is to make you achieve things in 1 year that took me
3.
</p>
</motion.div>
</div>
Expand Down Expand Up @@ -308,7 +311,7 @@ const Pitch = () => {
<strong className="text-text-primary">
for timely human feedback 24/7
</strong>{" "}
= a private slack channel
= a private discord channel
</span>
</li>
<li>
Expand Down Expand Up @@ -336,8 +339,8 @@ const Pitch = () => {
<strong className="text-text-primary">
for freedom to ask anything anytime
</strong>{" "}
= onboarding call + slack channel + pre-session 1:1 (every
week).
= onboarding call + discord channel + pre-session 1:1
(every week).
</span>
</li>
</ul>
Expand Down Expand Up @@ -627,9 +630,10 @@ const Pitch = () => {
<CornerDownRight className="size-4 flex-shrink-0 text-brand-purple-light mt-1" />
<span>
also, you&apos;ll receive the invitation to our
internal slack channel, there you&apos;ll receive all
the updates like weekly meets, resources, discussions,
etc. also, you can ping me there for any doubts.
internal discord channel, there you&apos;ll receive
all the updates like weekly meets, resources,
discussions, etc. also, you can ping me there for any
doubts.
</span>
</li>
<li className="flex items-start gap-3">
Expand Down Expand Up @@ -809,10 +813,10 @@ const Pitch = () => {
<p className="text-text-secondary font-medium text-lg lowercase">
my question isn&apos;t here? shoot it here:{" "}
<Link
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover underline"
>
hi@opensox.ai
opensoxlabs@gmail.com
</Link>{" "}
i&apos;ll reply within 24 hrs.
</p>
Expand Down
10 changes: 5 additions & 5 deletions apps/web/src/app/(main)/(landing)/pricing/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ const premiumPlanCard = {
"1:1 session on finding remote jobs and internships in open-source companies.",
"Quick doubts resolution.",
"Personalized guidance for GSoC, LFX, Outreachy, etc",
"Access to Pro Slack where you can ask anything anytime.",
"Access to Pro Discord where you can ask anything anytime.",
"Support to enhance skills for open source",
"GSOC proposal, resume reviews, etc.",
"Upcoming Pro features",
Expand Down Expand Up @@ -208,7 +208,7 @@ const Pricing = () => {
<p key={sentenceIndex} className="mb-2">
{sentence}
</p>
)
),
)}
</div>
) : (
Expand Down Expand Up @@ -269,7 +269,7 @@ const Pricing = () => {
<p key={sentenceIndex} className="mb-2">
{sentence}
</p>
)
),
)}
</div>
) : (
Expand Down Expand Up @@ -366,10 +366,10 @@ const Pricing = () => {
<div className=" border-b border-[#252525] text-center py-4 font-bold px-4">
For any doubts or queries, feel free to ping us at{" "}
<Link
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="hover:underline bg-gradient-to-b from-[#a472ea] via-[#a472ea]/80 to-[#432ba0] bg-clip-text text-transparent"
>
hi@opensox.ai
opensoxlabs@gmail.com
</Link>
</div>
</div>
Expand Down
6 changes: 3 additions & 3 deletions apps/web/src/app/(main)/contact/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export const revalidate = 86400;
export const metadata: Metadata = {
title: "Contact Us - Opensox AI",
description:
"Get in touch with Opensox AI. Email hi@opensox.ai or call +91 844-7500-346 for support and inquiries.",
"Get in touch with Opensox AI. Email opensoxlabs@gmail.com or call +91 844-7500-346 for support and inquiries.",
};

export default function ContactPage() {
Expand Down Expand Up @@ -50,10 +50,10 @@ export default function ContactPage() {
Email
</h3>
<a
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover transition-colors text-lg break-all"
>
hi@opensox.ai
opensoxlabs@gmail.com
</a>
<p className="text-sm text-text-tertiary mt-2">
General inquiries, support, and feedback
Expand Down
20 changes: 10 additions & 10 deletions apps/web/src/app/(main)/dashboard/pro/dashboard/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export default function ProDashboardPage() {
}
}, [isPaidUser, isLoading, router]);

const handleJoinSlack: () => Promise<void> = async () => {
const handleJoinDiscord: () => Promise<void> = async () => {
if (isJoining) return;

setIsJoining(true);
Expand Down Expand Up @@ -59,30 +59,30 @@ export default function ProDashboardPage() {
return;
}

let responseData: { slackInviteUrl?: string };
let responseData: { discordInviteUrl?: string };
try {
responseData = await response.json();
} catch {
setError("Invalid response from server");
return;
}

const { slackInviteUrl } = responseData;
const { discordInviteUrl } = responseData;

if (!slackInviteUrl || typeof slackInviteUrl !== "string") {
setError("Invalid Slack invite URL received");
if (!discordInviteUrl || typeof discordInviteUrl !== "string") {
setError("Invalid Discord invite URL received");
return;
}

// validate url format
try {
new URL(slackInviteUrl);
new URL(discordInviteUrl);
} catch {
setError("Invalid Slack invite URL format");
setError("Invalid Discord invite URL format");
return;
}

window.location.href = slackInviteUrl;
window.location.href = discordInviteUrl;
} catch (err) {
console.error("Failed to join community:", err);
setError("Failed to connect to server");
Expand Down Expand Up @@ -120,11 +120,11 @@ export default function ProDashboardPage() {
Pro Sessions
</Link>
<button
onClick={handleJoinSlack}
onClick={handleJoinDiscord}
disabled={isJoining}
className="px-4 py-2 bg-dash-surface border border-dash-border hover:border-brand-purple/50 text-text-primary font-medium rounded-lg transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed text-sm"
>
{isJoining ? "Joining..." : "Join Slack"}
{isJoining ? "Joining..." : "Join Discord"}
</button>
</div>
)}
Expand Down
20 changes: 10 additions & 10 deletions apps/web/src/app/(main)/legal/privacy/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -679,10 +679,10 @@ export default function PrivacyPolicyPage() {
as possible. If you believe that a child under 13 years of age may
have provided Personal Data to us, please contact us at{" "}
<a
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover transition-colors"
>
hi@opensox.ai
opensoxlabs@gmail.com
</a>
.
</p>
Expand All @@ -704,10 +704,10 @@ export default function PrivacyPolicyPage() {
marketing purposes; in order to submit such a request, please
contact us at{" "}
<a
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover transition-colors"
>
hi@opensox.ai
opensoxlabs@gmail.com
</a>
.
</p>
Expand All @@ -721,10 +721,10 @@ export default function PrivacyPolicyPage() {
license or sell that Personal Data. You can exercise this right by
contacting us at{" "}
<a
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover transition-colors"
>
hi@opensox.ai
opensoxlabs@gmail.com
</a>{" "}
with the subject line "Nevada Do Not Sell Request" and providing
us with your name and the email address associated with your
Expand Down Expand Up @@ -828,10 +828,10 @@ export default function PrivacyPolicyPage() {
including those set forth below. For more information about these
rights, or to submit a request, please email us at{" "}
<a
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover transition-colors"
>
hi@opensox.ai
opensoxlabs@gmail.com
</a>
. Please note that in some circumstances, we may not be able to
fully comply with your request, such as if it is frivolous or
Expand Down Expand Up @@ -943,10 +943,10 @@ export default function PrivacyPolicyPage() {
<p>
<strong>Email:</strong>{" "}
<a
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover transition-colors"
>
hi@opensox.ai
opensoxlabs@gmail.com
</a>
</p>
<p>
Expand Down
10 changes: 5 additions & 5 deletions apps/web/src/app/(main)/legal/terms/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ export default function TermsOfServicePage() {
For questions or concerns regarding these Terms, please contact us
at:{" "}
<a
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover transition-colors"
>
hi@opensox.ai
opensoxlabs@gmail.com
</a>
</p>
</section>
Expand Down Expand Up @@ -458,7 +458,7 @@ export default function TermsOfServicePage() {
<ol className="list-decimal list-inside space-y-2 ml-4">
<li>
<strong>Informal Resolution:</strong> Contact us at
hi@opensox.ai to attempt good-faith resolution
opensoxlabs@gmail.com to attempt good-faith resolution
</li>
<li>
<strong>Binding Arbitration:</strong> If informal resolution
Expand Down Expand Up @@ -507,10 +507,10 @@ export default function TermsOfServicePage() {
<p>
<strong>Email:</strong>{" "}
<a
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover transition-colors"
>
hi@opensox.ai
opensoxlabs@gmail.com
</a>
</p>
<p>
Expand Down
8 changes: 5 additions & 3 deletions apps/web/src/components/checkout/checkout-confirmation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ const CheckoutConfirmation: React.FC<CheckoutConfirmationProps> = ({
return;
}

const { slackInviteUrl } = await response.json();
window.open(slackInviteUrl, "_blank", "noopener,noreferrer");
const { discordInviteUrl } = await response.json();
window.open(discordInviteUrl, "_blank", "noopener,noreferrer");
} catch (err) {
console.error("Failed to join community:", err);
setError("Failed to connect to server");
Expand Down Expand Up @@ -89,7 +89,9 @@ const CheckoutConfirmation: React.FC<CheckoutConfirmationProps> = ({

<p className="text-lg lg:text-xl text-white/90 leading-relaxed font-light max-w-3xl mx-auto">
If you have any doubts, feel free to ping us here:{" "}
<span className="text-brand-purple-light">hi@opensox.ai</span>
<span className="text-brand-purple-light">
opensoxlabs@gmail.com
</span>
</p>

{/* Action Buttons - Only shown when logged in */}
Expand Down
4 changes: 2 additions & 2 deletions apps/web/src/components/landing-sections/footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ const Footer = () => {
const { trackLinkClick } = useAnalytics();

const handleEmailClick = () => {
trackLinkClick("mailto:hi@opensox.ai", "Email", "footer", true);
trackLinkClick("mailto:opensoxlabs@gmail.com", "Email", "footer", true);
const emailSubject = encodeURIComponent("[Inquiry about Opensox AI]");
const emailBody = encodeURIComponent("Heyyo,\n\nwanna chat?");
const mailtoLink = `mailto:hi@opensox.ai?subject=${emailSubject}&body=${emailBody}`;
const mailtoLink = `mailto:opensoxlabs@gmail.com?subject=${emailSubject}&body=${emailBody}`;
window.open(mailtoLink, "_blank");
};

Expand Down
8 changes: 3 additions & 5 deletions apps/web/src/components/legal/ContactInfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,17 @@ export function ContactInfo({
return (
<>
{showTitle && (
<h2 className="text-2xl lg:text-3xl font-semibold mb-4">
{titleText}
</h2>
<h2 className="text-2xl lg:text-3xl font-semibold mb-4">{titleText}</h2>
)}
{description && <p className="mb-4">{description}</p>}
<div className="space-y-2">
<p>
<strong>Email:</strong>{" "}
<a
href="mailto:hi@opensox.ai"
href="mailto:opensoxlabs@gmail.com"
className="text-link hover:text-link-hover transition-colors"
>
hi@opensox.ai
opensoxlabs@gmail.com
</a>
</p>
<p>
Expand Down