diff --git a/apps/desktop/src/onboarding/index.tsx b/apps/desktop/src/onboarding/index.tsx index 4566f2d108..3c44bab4e0 100644 --- a/apps/desktop/src/onboarding/index.tsx +++ b/apps/desktop/src/onboarding/index.tsx @@ -155,7 +155,7 @@ export function TabContentOnboarding({
{trimmedQuery.length > 0 ? ( -

No results found.

+

No results found

) : hasIgnoredOptions ? ( -

No models ready to use.

+

No models ready to use

) : ( -

No models available.

+

No models available

)}
diff --git a/apps/desktop/src/settings/ai/stt/health.tsx b/apps/desktop/src/settings/ai/stt/health.tsx index f0f60c4f7b..dc03f08adb 100644 --- a/apps/desktop/src/settings/ai/stt/health.tsx +++ b/apps/desktop/src/settings/ai/stt/health.tsx @@ -64,7 +64,7 @@ export function useConnectionHealth(): HealthStatus { if (serverStatus === "not_downloaded") { return { status: "error", - message: "Selected model is not downloaded.", + message: "Selected model is not downloaded", }; } if (serverStatus === "loading") { @@ -78,12 +78,12 @@ export function useConnectionHealth(): HealthStatus { } return { status: "error", - message: "Could not connect to the local speech-to-text model.", + message: "Could not connect to the local speech-to-text model", }; } if (!conn) { - return { status: "error", message: "Provider not configured." }; + return { status: "error", message: "Provider not configured" }; } if (isDeepgram) { diff --git a/apps/desktop/src/settings/general/account.tsx b/apps/desktop/src/settings/general/account.tsx index 07b3f638f5..d4b06f82fb 100644 --- a/apps/desktop/src/settings/general/account.tsx +++ b/apps/desktop/src/settings/general/account.tsx @@ -202,7 +202,7 @@ export function AccountSettings() {

Sign in to Char

- Get started without an account. Sign in to unlock more. + No account needed. Sign in for sync and Pro features

diff --git a/apps/desktop/src/settings/general/audio.tsx b/apps/desktop/src/settings/general/audio.tsx index 4f3db3ee86..6bb1701d5e 100644 --- a/apps/desktop/src/settings/general/audio.tsx +++ b/apps/desktop/src/settings/general/audio.tsx @@ -124,8 +124,8 @@ function DeviceList({ direction }: { direction: "input" | "output" }) {

{direction === "input" - ? "Drag to set microphone priority. Top device will be auto-selected." - : "Drag to set speaker priority. Top device will be auto-selected."} + ? "Drag to set microphone priority. Top device will be auto-selected" + : "Drag to set speaker priority. Top device will be auto-selected"}

), - title: "Keep the magic going", + title: "Like Char so far?", description: - "Transcription stays free. Pro unlocks other magic you'll love.", + "Transcription stays free. Pro adds more models and features.", primaryAction: { label: "Upgrade to Pro", onClick: onSignIn, diff --git a/apps/web/src/routes/__root.tsx b/apps/web/src/routes/__root.tsx index 673b8bbe49..0010f236e8 100644 --- a/apps/web/src/routes/__root.tsx +++ b/apps/web/src/routes/__root.tsx @@ -16,7 +16,7 @@ interface RouterContext { const TITLE = "Char - AI notepad for private meetings"; const DESCRIPTION = - "Char is a private, on-device AI notepad that enhances your own notes—without bots, cloud recording, or meeting intrusion. Stay engaged, build your personal knowledge base, and export to tools like Notion on your terms."; + "Char is a private, on-device AI notepad that improves your notes—without bots, cloud recording, or meeting intrusion. Stay engaged, build your personal knowledge base, and export to tools like Notion on your terms."; const KEYWORDS = "AI notepad, privacy-first AI, on-device AI, local AI, edge AI, meeting notes, personal knowledge base, AI notetaking, AI notetaker, Argmax, Deepgram, secure transcription, notepad app, notetaking app"; diff --git a/apps/web/src/routes/_view/enterprise.tsx b/apps/web/src/routes/_view/enterprise.tsx index 1c72f8b8a0..76c997548f 100644 --- a/apps/web/src/routes/_view/enterprise.tsx +++ b/apps/web/src/routes/_view/enterprise.tsx @@ -7,15 +7,15 @@ export const Route = createFileRoute("/_view/enterprise")({ component: Component, head: () => ({ meta: [ - { title: "Meeting AI Configured For Your Organization - Char" }, + { title: "Meeting AI configured for your organization - Char" }, { name: "description", content: - "Deploy meeting AI on your infrastructure with full control over deployment, security, compliance, and access. Open source architecture you can verify and audit.", + "Run meeting AI on your servers. Open source, auditable, and built so your data never leaves your network.", }, { property: "og:title", - content: "Meeting AI Configured For Your Organization - Char", + content: "Meeting AI configured for your organization - Char", }, { property: "og:description", @@ -33,55 +33,55 @@ export const Route = createFileRoute("/_view/enterprise")({ const deploymentFeatures = [ { - text: "On-premise servers, private cloud (AWS VPC, Azure VNet, GCP VPC), or hybrid deployments", + text: "On-premise, private cloud (AWS VPC, Azure VNet, GCP VPC), or hybrid", }, { - text: "Air-gap compatible, works without internet connectivity in isolated networks", + text: "Air-gap compatible. Works without internet in isolated networks", }, { - text: "Desktop apps (macOS now, Windows/Linux coming), web interface, mobile, or bot integration", + text: "Desktop app (macOS now, Windows/Linux coming), web, mobile, or bot integration", }, { - text: "Bring your own models, swap STT and LLM providers anytime (local or cloud)", + text: "Swap STT and LLM providers anytime. Bring your own models, local or cloud", }, { - text: "No vendor lock-in, open source architecture you can fork if needed", + text: "Open source. Fork it if you want", }, ]; const securityFeatures = [ { - text: "Encryption at rest (AES-256) with end-to-end encryption in development", + text: "AES-256 encryption at rest. End-to-end encryption in development", }, { - text: "Zero-knowledge architecture. We can't access your unencrypted data", + text: "Zero-knowledge architecture. We can't read your data", }, { - text: "SSO integration (SAML, OAuth) with multi-factor authentication", + text: "SSO (SAML, OAuth) and MFA", }, { - text: "Network traffic you can inspect yourself, no black box processing", + text: "All network traffic is inspectable. No black box", }, { - text: "Open source codebase your security team can audit", + text: "Open source. Your security team can audit every line", }, ]; const complianceFeatures = [ { - text: "HIPAA-compatible deployment options for healthcare environments", + text: "HIPAA-compatible deployment for healthcare", }, { - text: "Data residency controls, keep recordings in your geography (EU, US, custom regions)", + text: "Data residency controls. Keep recordings in your geography (EU, US, custom regions)", }, { - text: "Multiple consent workflows: voice-activated, pre-meeting links, explicit prompts", + text: "Consent workflows: voice-activated, pre-meeting links, or explicit prompts", }, { - text: "Configurable retention policies with automated deletion schedules", + text: "Configurable retention policies with automated deletion", }, { - text: "Comprehensive audit logging for compliance reporting", + text: "Audit logging for compliance reporting", }, { text: "SOC 2 Type II certification in progress", @@ -90,52 +90,50 @@ const complianceFeatures = [ const accessFeatures = [ { - text: "Role-based access control (admin, user, viewer) with custom role creation", + text: "Role-based access (admin, user, viewer) with custom roles", }, { text: "Team workspaces with isolated data boundaries", }, { - text: "Directory service integration (LDAP, Active Directory) for user provisioning", + text: "LDAP and Active Directory integration for user provisioning", }, { - text: "Organization-wide policy enforcement (recording defaults, AI features, retention)", + text: "Org-wide policy enforcement: recording defaults, AI features, retention", }, { - text: "Individual note-level permissions for sensitive meetings", + text: "Note-level permissions for sensitive meetings", }, { - text: "Access audit logs showing who viewed what and when", + text: "Audit logs showing who viewed what and when", }, ]; const faqs = [ { - question: - "How can I boost my team's productivity while ensuring data sovereignty?", + question: "How does Char handle data sovereignty?", answer: - "Deploy Char on your own infrastructure to maintain complete control over your data. Your meeting recordings and transcripts never leave your network, ensuring full compliance with data residency requirements.", + "Your data stays on your network. Recordings and transcripts don't leave it. Deploy on your own infrastructure and you're in full compliance with data residency requirements.", }, { - question: - "Is there a way to ensure consents are properly granted and managed?", + question: "How does recording consent work?", answer: - "Char provides multiple consent options including voice-activated consent during meetings, pre-meeting consent links, and explicit consent prompts when joining. We prioritize transparency and respect in every recording scenario.", + "Participants always know when recording is on. You can use voice-activated consent, pre-meeting consent links, or explicit prompts when joining.", }, { question: "How secure is the platform?", answer: - "We deeply prioritize security. We're working on end-to-end encryption, seamless SSO and MFA integration, and are actively pursuing SOC 2 Type II certification. All enterprise deployments meet industry-standard security requirements.", + "Security is the reason we built it this way. AES-256 encryption at rest, SSO and MFA, SOC 2 Type II certification in progress. The codebase is open source so your team can audit it directly.", }, { question: "How do you manage access control?", answer: - "Administrators have granular control over permissions, team workspaces, and user access. Set role-based permissions, manage team structures, and maintain centralized oversight across your entire organization.", + "Admins set who can access what. Role-based permissions, team workspaces, and you can scope access down to individual notes if needed.", }, { question: "What deployment options are available?", answer: - "Char adapts to your workflow with multiple form factors: native desktop applications (currently available for macOS), web interface, mobile apps, or even bot integration for remote meeting capture. Choose the deployment method that works best for your team.", + "Desktop app (macOS now, Windows and Linux coming), web interface, mobile apps, or bot integration for remote meetings. Pick what works for your team.", }, ]; @@ -166,9 +164,9 @@ function HeroSection() { For Enterprise

- Meeting AI Configured + Meeting AI configured
- For Your Organization + for your organization

Other AI note-takers ask you to trust their infrastructure, their @@ -217,7 +215,7 @@ function FeaturesSection() { icon="mdi:server" number="1" title="Deployment" - subtitle="Your infrastructure, your rules" + subtitle="Run it on your servers" features={deploymentFeatures} /> @@ -350,8 +348,7 @@ function CTASection() { Deploy meeting AI on your terms

- Let's walk through your deployment, security, and compliance - requirements. + Tell us what you need and we'll figure out the setup.

without the price tag

- Record meetings, get AI transcriptions, and generate smart summaries. - All for free, with no usage limits and complete privacy. + Record meetings, transcribe them, get summaries. Free, no limits, runs + on your device.

- Everything you need, free + Free. Actually free.

- No hidden costs, no premium tiers for essential features + No catch. The free version does real work.

@@ -227,10 +227,10 @@ function ComparisonSection() {

- More value than paid alternatives + Better than what you're paying for

- See how Char compares to other meeting note tools + How Char stacks up against paid meeting note tools

@@ -297,10 +297,10 @@ function UseCasesSection() {

- Built for every conversation + Works for more than just meetings

- From sales calls to lectures, Char adapts to your needs + Sales calls, lectures, 1-on-1s, whatever.

@@ -341,9 +341,8 @@ function OpenSourceSection() { Transparent by design

- Char is fully open source. Inspect the code, contribute - improvements, or self-host on your own infrastructure. No vendor - lock-in, no hidden data collection. + Char is fully open source. Read the code, contribute to it, or + self-host on your own servers. Nothing hidden.

- Download now and start capturing better meeting notes in minutes. No - signup required. + Download it. No account needed.

- Ready to transform your meetings? + Try these templates now

Download Char and start using these templates and shortcuts to capture diff --git a/apps/web/src/routes/_view/index.tsx b/apps/web/src/routes/_view/index.tsx index 28e825d3c0..686438b1b3 100644 --- a/apps/web/src/routes/_view/index.tsx +++ b/apps/web/src/routes/_view/index.tsx @@ -1478,8 +1478,7 @@ export function TemplatesSection() { A template for every meeting

- Char adapts to how you work with customizable templates for any - meeting type + Pick a template. Tweak it. Or start from scratch.

@@ -1615,9 +1614,9 @@ function FAQSection() { - Plain markdown files instead of proprietary databases. System audio - capture instead of meeting bots. Your choice of AI provider instead - of vendor lock-in. Open source instead of a black box. + Your notes are plain markdown files, not locked in a database. We + capture system audio instead of sending bots into your calls. You + pick your AI provider. And the whole thing is open source.
@@ -1658,10 +1657,7 @@ function ManifestoSection() { tools that amplify human agency, not replace it. No ghost bots. No silent note lurkers. Just people, thinking together.

-

- We stand with those who value real connection and purposeful - collaboration. -

+

That's who we build for.

@@ -1729,7 +1725,7 @@ function BlogSection() { Latest from our blog

- Insights, updates, and stories from the Char team + What we're building and why

diff --git a/apps/web/src/routes/_view/opensource.tsx b/apps/web/src/routes/_view/opensource.tsx index 154586b5d0..5887d21056 100644 --- a/apps/web/src/routes/_view/opensource.tsx +++ b/apps/web/src/routes/_view/opensource.tsx @@ -25,13 +25,13 @@ export const Route = createFileRoute("/_view/opensource")({ { name: "description", content: - "Char is fully open source under GPL-3.0. Inspect every line of code, contribute to development, and build on a transparent foundation. No black boxes, no hidden data collection.", + "Char is open source under GPL-3.0. Read every line, run it yourself, or fork it. The code is the proof.", }, { property: "og:title", content: "Open Source - Char" }, { property: "og:description", content: - "AI-powered meeting notes built in the open. Fully auditable codebase, community-driven development, and complete transparency. Join thousands of developers building the future of private meeting notes.", + "Meeting notes built in the open. The whole codebase is on GitHub. Read it, audit it, fork it.", }, { property: "og:type", content: "website" }, { @@ -43,7 +43,7 @@ export const Route = createFileRoute("/_view/opensource")({ { name: "twitter:description", content: - "AI-powered meeting notes built in the open. Fully auditable codebase and community-driven development.", + "Meeting notes built in the open. The whole codebase is on GitHub.", }, { name: "keywords", @@ -148,9 +148,8 @@ function HeroSection() { for everyone

- Char is fully open source under GPL-3.0. Every line of code is - auditable, every decision is transparent, and every user has the - freedom to inspect, modify, and contribute. + Char is open source under GPL-3.0. The whole codebase is on GitHub. + Read it, audit it, fork it, contribute to it.

If an AI tool captures your voice, your discussions, your strategy, you should be able to see exactly what it does with that - information. Not a PDF saying "we care about privacy." Not a - privacy policy written by lawyers. Actual code. + information. The code should be right there for you to read.

@@ -223,13 +221,13 @@ function LetterSection() {

In the age of AI, blind trust is basically an attack vector.

-

Open source flips the power dynamic:

+

Open source changes the dynamic:

  • You can verify claims instead of believing them.
  • -
  • Security researchers can inspect, not speculate.
  • -
  • Teams can self-host, extend, or fork when needed.
  • -
  • The product outlives the company that built it.
  • +
  • Security researchers can inspect the code, not guess.
  • +
  • Teams can self-host or fork when they need to.
  • +
  • If we disappear, the product doesn't.

That's why we built Char in the open.

@@ -250,15 +248,8 @@ function LetterSection() {

Open source survives all of that.

- What AI is capable of today demands a different contract between - software and the people who rely on it. That contract should be - inspectable, forkable, and owned by its users, not hidden behind - opaque servers. -

- -

- If AI ends up shaping how we work, think, and communicate, then - the people using it deserve transparency—not promises. + AI is going to shape how we work and think. The people using it + deserve to see how it works. Not a promise. The code.

@@ -429,8 +420,7 @@ function TechStackSection() { Our Tech Stack

- Built with modern, privacy-respecting technologies that run locally - on your device. + What Char is built on.

@@ -522,8 +512,7 @@ function SponsorsSection() { Paying It Forward

- We love giving back to the community that makes Char possible. As we - grow, we hope to sponsor even more projects and creators. + We sponsor projects we depend on and people doing good work.

@@ -580,8 +569,7 @@ function SponsorsSection() { We Appreciate Your Support

- Your sponsorship keeps Char free, open source, and independent - for everyone. + Sponsorships help keep Char free and independent.

- Our progress is measured by the community we're building together. + Numbers as of today.

@@ -838,11 +826,10 @@ function JoinMovementSection() {

- Be Part of the Movement + Get Involved

- Every contribution, no matter how small, helps build a more private - future for AI. + Ways to help out.

diff --git a/apps/web/src/routes/_view/pricing.tsx b/apps/web/src/routes/_view/pricing.tsx index 44a7383719..d4f9d56187 100644 --- a/apps/web/src/routes/_view/pricing.tsx +++ b/apps/web/src/routes/_view/pricing.tsx @@ -307,7 +307,7 @@ function FAQSection() { { question: "What does on-device transcription mean?", answer: - "All transcription happens on your device. Your audio never leaves your computer, ensuring complete privacy.", + "All transcription happens on your device. Your audio never leaves your computer.", }, { question: "What is local-first data architecture?", @@ -317,7 +317,7 @@ function FAQSection() { { question: "What is BYOK (Bring Your Own Key)?", answer: - "BYOK allows you to connect your own LLM provider (like OpenAI, Anthropic, or self-hosted models) for AI features while maintaining full control over your data.", + "BYOK lets you plug in your own LLM provider (OpenAI, Anthropic, or self-hosted models) for AI features. Your data stays yours.", }, { question: "What's included in shareable links?", @@ -385,7 +385,7 @@ function CTASection() {

Need a team plan?

- Book a call to discuss custom team pricing and enterprise solutions + Book a call and we'll figure out pricing for your team

Share notes

- Collaborate seamlessly by sharing meeting notes, transcripts, and - summaries with your team. + Share meeting notes, transcripts, and summaries with your team.

@@ -2439,7 +2438,7 @@ function CTASection() {

From live meetings to archived recordings, handle all your audio - transcription and AI summary needs with one powerful tool + transcription and AI summary needs with one app

Connect Char with your favorite tools. Automate repetitive tasks - with powerful workflows. No coding required. + with custom workflows. No coding required.

@@ -379,7 +378,7 @@ function ModelsSection() {

OpenAI's Whisper model running locally on your device. Best-in-class accuracy for speech recognition with support for - 100+ languages and robust handling of accents and background + 100+ languages and reliable handling of accents and background noise.

@@ -392,7 +391,7 @@ function ModelsSection() {

Optimized language models for summarization, extraction, and - analysis. Powerful enough for enterprise-grade results, efficient + analysis. Capable enough for enterprise-grade results, efficient enough to run on your laptop.

diff --git a/apps/web/src/routes/_view/security.tsx b/apps/web/src/routes/_view/security.tsx index 730bc4209f..b832dbc4a1 100644 --- a/apps/web/src/routes/_view/security.tsx +++ b/apps/web/src/routes/_view/security.tsx @@ -13,7 +13,7 @@ export const Route = createFileRoute("/_view/security")({ { name: "description", content: - "Char is built with security at its core. Local-first architecture, end-to-end encryption, and open source transparency ensure your meeting data stays protected.", + "Char is built around security from the start. Local-first architecture, end-to-end encryption, and open source transparency ensure your meeting data stays protected.", }, { property: "og:title", content: "Security - Char" }, { @@ -381,13 +381,13 @@ function EnterpriseSecuritySection() { icon: "mdi:shield-account", title: "SSO integration", description: - "Integrate with your existing identity provider for seamless and secure authentication.", + "Integrate with your existing identity provider for simple, secure authentication.", }, { icon: "mdi:clipboard-check", title: "Compliance ready", description: - "Built to support GDPR, HIPAA, and SOC 2 compliance requirements with comprehensive audit logging.", + "Built to support GDPR, HIPAA, and SOC 2 compliance requirements with full audit logging.", }, { icon: "mdi:account-lock", diff --git a/apps/web/src/routes/_view/solution/coaching.tsx b/apps/web/src/routes/_view/solution/coaching.tsx index d39f0e2857..990a7ffca2 100644 --- a/apps/web/src/routes/_view/solution/coaching.tsx +++ b/apps/web/src/routes/_view/solution/coaching.tsx @@ -196,8 +196,8 @@ function UseCasesSection() { For every coaching practice

- Whatever your coaching specialty, Char helps you capture and leverage - every client session. + Whatever your coaching specialty, Char helps you capture and use every + client session.

{useCases.map((useCase) => ( @@ -224,10 +224,10 @@ function CTASection() {

- Ready to amplify your impact? + Try it in your next session

- Join coaches who are transforming lives with AI-powered meeting notes. + Free to download. Runs on your device.

- From discovery to delivery, Char helps you capture and leverage every + From discovery to delivery, Char helps you capture and use every client interaction.

@@ -223,11 +223,10 @@ function CTASection() {

- Ready to elevate your consulting? + Try it on your next client call

- Join consultants who are delivering better insights with AI-powered - meeting notes. + Free to download. No account required.

- Ready to improve customer retention? + Never miss a detail in customer calls

- Join customer success teams who are driving retention with AI-powered - meeting notes. + Free to download. No account required.

- Ready to improve field documentation? + Capture every detail on-site

- Join field engineers who are capturing every technical detail with - AI-powered meeting notes. + Works offline. No internet required.

- Ready to improve government documentation? + Better meeting records, less overhead

- Join government agencies who are improving meeting documentation while - maintaining security. + Runs locally. No data leaves your network.

- Ready to streamline clinical documentation? + Less time documenting, more time with patients

- Join healthcare teams who are saving time on documentation while - maintaining patient privacy. + Runs locally. No patient data leaves your device.

- Ready to report with confidence? + Accurate notes for every interview

- Join journalists who are telling better stories with AI-powered - meeting notes. + Free to download. Your sources stay private.

- Ready to transform your meetings? + Get more from every meeting

- Join knowledge workers who are getting more done with AI-powered - meeting notes. + Free to download. No account required.

- Ready to streamline legal documentation? + Better records, less manual work

- Join legal teams who are saving time on documentation while - maintaining client confidentiality. + Runs locally. Client conversations stay on your device.

- Ready to streamline your creative workflow? + Try it on your next production meeting

- Join media teams who are capturing every creative idea with AI-powered - meeting notes. + Free to download. Works offline.

- Ready to transform your meetings? + Try it on your next meeting

Start capturing every detail with AI-powered meeting notes that diff --git a/apps/web/src/routes/_view/solution/project-management.tsx b/apps/web/src/routes/_view/solution/project-management.tsx index dbd0cb1d98..3d0045b142 100644 --- a/apps/web/src/routes/_view/solution/project-management.tsx +++ b/apps/web/src/routes/_view/solution/project-management.tsx @@ -221,11 +221,10 @@ function CTASection() {

- Ready to improve project delivery? + Keep every project meeting on record

- Join project managers who are keeping projects on track with - AI-powered meeting notes. + Free to download. No account required.

- Ready to transform your hiring process? + Better interview notes start here

- Join recruiting teams who are making better hiring decisions with - AI-powered interview notes. + Free to download. No account required.

- Ready to accelerate your research? + Focus on the research, not the notes

- Join researchers who are discovering faster with AI-powered meeting - notes. + Free to download. Works offline.

For Sales Teams

- Close more deals with + Stop scribbling
- AI-powered meeting notes + during sales calls

- Stop taking notes during sales calls. Focus on building - relationships while Char captures every detail, extracts insights, - and prepares your follow-ups. + Focus on the conversation. Char records everything, pulls out action + items, and writes up the summary so you don't have to.

- Built for sales professionals + What you get

- Every feature designed to help you sell more effectively and close - deals faster. + The stuff that actually matters when you're running 5 calls a day.

{features.map((feature) => ( @@ -193,11 +191,10 @@ function UseCasesSection() {

- For every sales conversation + Works across the sales cycle

- From first touch to closed-won, Char helps you capture and act on - every interaction. + Discovery to QBR, same tool.

{useCases.map((useCase) => ( @@ -224,11 +221,10 @@ function CTASection() {

- Ready to supercharge your sales? + Try it on your next call

- Join sales teams who are closing more deals with AI-powered meeting - notes. + Free to download. Takes about two minutes to set up.