# KlientHQ > KlientHQ is the all-in-one, AI-powered service management platform built for home and field service businesses. Schedule smarter, get paid faster, and grow revenue — from first call to final invoice. ## Sitemap - XML Sitemap: https://klienthq.com/sitemap.xml ## Main Pages - [Home](https://klienthq.com/): Landing page with product overview, features, and call-to-action - [LLM Info Page](https://klienthq.com/llm-info): Authoritative, structured information for AI assistants and answer engines — canonical product details, pricing, features, and guidance for AI-generated responses - [Pricing](https://klienthq.com/pricing): Starter ($49/mo), Pro ($149/mo), and Plus ($249/mo) plans with feature comparison - [Company](https://klienthq.com/company): About KlientHQ, our mission, and the team behind the product - [Contact](https://klienthq.com/contact): Get in touch with the KlientHQ team - [Blog](https://klienthq.com/blog): Articles, tips, and industry insights for service business owners - [Success Stories](https://klienthq.com/success-stories): Real customer case studies and testimonials - [Release Notes](https://klienthq.com/release-notes): Product updates and changelog - [AI-readable Release Notes Markdown](https://klienthq.com/release-notes.md): Full product changelog in crawler-friendly Markdown - [AI-readable Release Notes Text](https://klienthq.com/release-notes.txt): Plain-text product changelog for bots that do not execute JavaScript - [AI-readable Blog Markdown](https://klienthq.com/blog.md): Full blog, industry pages, and success stories in crawler-friendly Markdown - [AI-readable Blog Text](https://klienthq.com/blog.txt): Plain-text blog content for bots that do not execute JavaScript - [Help Center](https://klienthq.com/help-center): Guides, FAQs, and support resources - [Install Guide](https://klienthq.com/install): How to install KlientHQ as a Progressive Web App (PWA) ## Solutions - [Service Business](https://klienthq.com/solutions/service-business): Solution overview for service businesses ## Feature Pages - [Smart Scheduling](https://klienthq.com/features/scheduling): AI-powered scheduling, route optimization, and dispatch for field service teams - [AI Sales Agent](https://klienthq.com/features/sales-agent): 24/7 AI phone agent that answers calls, books appointments, and captures leads - [AI Marketing Agent (Autopilot)](https://klienthq.com/features/marketing-agent): AI-driven outreach that fills schedule gaps, prevents churn, and runs loyalty campaigns - [Buddy](https://klienthq.com/features/buddy): Contextual in-app AI assistant for service business operations - [Reports](https://klienthq.com/features/reports): Revenue, jobs, and team performance reporting with export - [Client Portal](https://klienthq.com/features/client-portal): Branded self-service portal where customers view jobs, invoices, contracts, and pay - [Book More Jobs](https://klienthq.com/bookmorejobs): Online booking, AI receptionist, and automated outreach to fill your calendar ## Comparisons - [KlientHQ vs Jobber](https://klienthq.com/compare/jobber): Side-by-side comparison for general field service businesses - [KlientHQ vs ZenMaid](https://klienthq.com/compare/zenmaid): Side-by-side comparison for cleaning businesses ## Featured Success Stories - [Maid In Cleaning — Ginger 3×'d her business in 4 months](https://klienthq.com/success-stories/maid-in-cleaning): Residential cleaning business owner Ginger tripled revenue in 4 months using KlientHQ scheduling, AI outreach, and automated invoicing - [EverFocus Construction — getting paid weeks faster](https://klienthq.com/success-stories/everfocus-construction): How a construction company stopped chasing invoices and accelerated cash flow with KlientHQ contracts, e-signatures, and automated payment workflows ## Industry Pages - [Cleaning](https://klienthq.com/industries/cleaning): KlientHQ for cleaning businesses — scheduling, invoicing, and customer management tailored for residential and commercial cleaning companies - [Landscaping](https://klienthq.com/industries/landscaping): KlientHQ for lawn care and landscaping businesses — routing, recurring service plans, and crew dispatch built for landscapers - [Plumbing](https://klienthq.com/industries/plumbing): KlientHQ for plumbing businesses — dispatch, job tracking, and payments built for plumbing contractors ## Key Features - **Smart Scheduling & Dispatch**: AI-powered scheduling that optimizes routes, reduces drive time, and fits more jobs into your day - **Online Booking**: Customizable booking page that lets customers self-schedule 24/7 - **Customer Management (CRM)**: Complete customer profiles with service history, preferences, and automated communication workflows - **Invoicing & Payments**: Create and send invoices, accept payments online via Stripe and Square, and automate billing cycles - **Recurring Jobs**: Set up and manage recurring service appointments with automatic scheduling - **Team Management**: Role-based permissions, technician assignment, and payroll tracking - **Contracts & E-Signatures**: Send professional contracts with legally binding electronic signatures - **Automated Notifications**: Email and SMS reminders, confirmations, and follow-ups sent automatically - **Territory Management**: Define service areas using zip codes, radius, or geofencing and assign team members to zones - **Coupons & Promotions**: Create discount codes, referral programs, and seasonal promotions - **AI Phone Agent**: 24/7 AI-powered phone assistant that answers calls, books appointments, and handles customer inquiries - **Client Portal**: Branded self-service portal where customers can view jobs, invoices, contracts, and make payments - **QuickBooks Integration**: Two-way sync with QuickBooks for seamless accounting - **Autopilot**: AI-driven outreach engine that automatically fills schedule gaps, re-engages inactive customers, reduces churn, and runs loyalty campaigns — learning and improving over time - **AI Outreach Agents**: Two-way SMS and email agents that qualify leads, answer questions, book jobs directly into the calendar, and escalate to the owner only when needed - **Buddy**: Contextual in-app AI assistant that surfaces insights, flags at-risk clients, and recommends actions based on the owner's current workflow ## Integrations - Stripe (payments) - Square (payments) - QuickBooks (accounting) - Twilio (SMS & voice) - Google Maps (routing & territory management) - Resend (transactional & marketing email delivery) - Grok / xAI (AI-powered features including receptionist, autopilot, and smart suggestions) ## Legal - [Privacy Policy](https://klienthq.com/privacy): Privacy policy - [Terms of Service](https://klienthq.com/terms): Terms of service - [Data Processing Agreement](https://klienthq.com/dpa): DPA for data protection compliance ## AI-Readable Release Notes - Full release notes markdown: https://klienthq.com/release-notes.md - Plain text release notes: https://klienthq.com/release-notes.txt # KlientHQ Release Notes Canonical page: https://klienthq.com/release-notes This file is generated at build time from the published release notes database so AI crawlers can read the changelog without executing JavaScript. ## Service Pricing Rules & Quote Workflow Enhancements — v2026.02.03 — 2026-04-09 This release introduces dynamic service pricing rules and improves the quote-to-job conversion workflow with mandatory scheduling requirements. ### New Features - Dynamic Service Price Rules - Configure timeslot-based, lead-time, and territory pricing adjustments that stack automatically - Price Rule Management - Full CRUD support with percentage or fixed adjustments that increase or decrease base prices - Quote Conversion Scheduling - Mandatory date and time selection when converting quotes to jobs with territory-aware time slots - Arrival Window Support - Quote conversions now respect territory timeslot formats (exact times vs. arrival windows) ### Improvements - Team Notification Resend - Added ability to resend job notifications to assigned team members - Quote Expiration Display - Changed from relative dates to exact expiration dates for clarity - Scheduling Consistency - Quote conversion now uses the same date/time picker as job creation - Price Adjustment Display - Real-time price rule calculations shown in booking and job creation flows ### Bug Fixes - Fixed quote conversion allowing jobs without scheduled dates - Resolved time slot generation for territories with custom hours ## AI Outreach, Online Booking & Payment Enhancements — v2026.02.02 — 2026-04-09 Comprehensive update featuring AI-powered outreach automation, enhanced online booking with flexible payment timing, and improved payment processor integration. ### New Features - Scheduled outreach runner: Automated daily AI agent missions at 9 AM UTC with operating hours and daily limits - Two-way SMS conversations: Inbound Twilio webhook for real-time customer reply handling - Two-way Email conversations: Inbound Resend webhook for email reply processing - AI-powered reply generation: Intelligent responses via outreach-agent-reply edge function - Delete conversations: Remove entire conversation threads from the Outreach Agents tab - Service-level payment timing: Configure job creation before or after payment per service - Pending bookings staging: Jobs with after-payment timing are staged until payment confirmation - Dynamic payment method types: Customizable payment methods (Card, Cash, Check, etc.) per business ### Improvements - Online booking customer lookup: Find-or-create pattern matching by email then phone - Payment method sync: Recording payments now updates job payment method for accurate revenue reporting - Per-business payment processor isolation: Booking checkout uses tenant-specific Stripe/Square keys - Public payment provider detection: Booking page initializes correct SDK based on business configuration - Arrival windows and exact times: Enhanced scheduling with territory-specific time slot formats - Centralized communication history with sent/received status tracking - Streamlined conversation list UI with integrated delete action - Confirmation dialogs for destructive actions ### Bug Fixes - Fixed payment settings RLS: Added anon policy for non-sensitive fields needed by public booking - Fixed subscription portal access: Trial users now route to pricing page instead of erroring on portal access - Fixed RLS policy for conversation deletion scoped to business owner ## Revenue Report Refinements — v2026.02.01 — 2026-03-18 Improved payment tracking accuracy and streamlined the Revenue Report interface for a cleaner analytics experience. ### New Features - Payment method sync: Recording a payment now updates the job's payment method for accurate reporting ### Improvements - Renamed "AI Insights" to "Key Insights" for clearer terminology - Removed Forecast Methodology card to simplify the Revenue Report layout - Cleaned up unused code and interfaces for better maintainability ## v1.4.0 — Security Hardening, Invoice PDF Fix & Timezone Corrections — v1.4.0 — 2026-03-04 Security hardening for contracts and outreach, rebuilt invoice PDFs with jsPDF, fixed timezone parsing, scheduling recalculation, and quantity modifier improvements. ### New Features - Quantity modifier — users can now adjust quantities for each modifier option in a group - Stripe Checkout Customization — businesses can now customize their Stripe checkout experience with branded payment links and configurable success/cancel URLs - AI Outreach Agents — automated two-way communication through Twilio (SMS) and Resend (Email) with AI-powered responses, opt-out handling, human escalation, and conversation-level management ### Improvements - Completely replaced PDF download with jsPDF + jspdf-autotable for programmatic invoice generation, eliminating sandbox screenshot failures - Quantity-type modifier overrides now correctly store per-unit values by dividing by quantity before comparison ### Bug Fixes - Fixed timezone bug in Blog.tsx and BlogPost.tsx — dates parsed as midnight UTC were shifting back a day in western timezones - Fixed send-invoice-email passing total in dollars instead of cents - Fixed useCallback scheduling bug — converted scheduledDate to ISO string primitive for proper dependency tracking - Fixed RLS policy on job_contracts — replaced permissive USING(true) with business_id validation via jobs table join - Fixed run-outreach-agents edge function — added JWT authentication to prevent unauthenticated outreach triggers ## Role Naming, Permission Audit & PWA Install Prompt — v2026.02.24 — 2026-02-24 This release introduces a mobile PWA install prompt after sign-in, renames "Account Owner" to "Business Owner" for clarity, and includes a full audit of all role-based permission toggles. ### New Features - PWA Install Prompt After Sign-In — Mobile users are now prompted to install the app to their home screen immediately after signing in. Android/Chrome gets a native one-tap install, iOS Safari shows a step-by-step Add to Home Screen guide, and iOS non-Safari browsers guide users to open in Safari first. Dismissed prompts are remembered. ### Improvements - Role Naming Consistency — "Account Owner" has been renamed to "Business Owner" across the entire platform — team lists, detail pages, role selectors, and filter dropdowns. - Role Persistence for Invited Members — Roles assigned during invitation now display as pending (e.g. "Business Owner (Pending)") before account creation. Once the member signs in, their role is automatically activated. - Business Owner Identification — The primary account holder now correctly displays as "Business Owner" instead of "No Role". - Full Permissions Audit — All role-based permission toggles verified working across three enforcement layers (UI visibility, route guards, and database RLS) for Service Provider, Team Lead, and Manager roles. ## Contract Compliance, Mobile UX & PWA Install Prompt — v2026.02.21 — 2026-02-21 This release focuses on contract lifecycle accuracy, mobile usability improvements, and a new PWA install experience for mobile users signing in. ### New Features - PWA Install Prompt — After signing in on a mobile device, users are now prompted to install KlientHQ to their home screen. On Android/Chrome the native install fires automatically; on iOS Safari users see step-by-step instructions; on iOS Chrome/Firefox they're guided to open in Safari first. - Electronic Signature Disclosure — The e-signature disclosure text is now captured from the contract template and persisted directly on the work order/contract record at creation time, ensuring the exact legal terms shown to the customer are preserved as evidence. ### Improvements - Team Member Page Mobile Tabs — The tab bar on the Team Member detail page no longer overflows on small screens. Tabs now scroll horizontally within a contained area, verified at 390px width. - iOS Chrome PWA Guidance — iOS Chrome, Firefox, and Edge users are shown tailored instructions to open in Safari for home screen installation, since all iOS browsers use WebKit and don't support the native install prompt. ### Bug Fixes - Contract Expiration Override — The resend-contract function was hardcoding a 7-day expiration, which overwrote the correct expires_at when auto-sending contracts after job creation. The fix now respects the priority: template expiration_days → business default_expiration_days → 7-day fallback. Contracts will now correctly honor your configured expiration (e.g. 30 days). - Duplicate Release Note Entry — Resolved an issue where the same contract expiration fix was appearing twice in the previous release notes. ## Dispute Evidence, Address Validation & Payment Integrity — v2026.02.18 — 2026-02-18 Major updates to job creation validation, dispute documentation, payment card enforcement, and communication rendering. ### New Features - Qbug2: Added address validation in job creation — submit is disabled without a service address for scheduled jobs, while quotes can still proceed without one - Expanded 'View Signed Work Order' into a comprehensive Evidence Viewer consolidating ID photos, categorized job photos (Pre/During/Post), work order & completion signatures, and signed contracts — purpose-built for chargeback dispute evidence packages - Customer IP address now displayed on signed contracts beneath the signed date for stronger dispute evidence - Card details (last 4 digits) now rendered on contracts by looking up the customer's default payment method - Added Taxable toggle for custom services on the Job Details page — when enabled, the custom service is included in tax calculations; when disabled (default), it's excluded - Non-marketing templates (Appointment Confirmation, Service Reminder, Feedback, Payment Request) filtered out of the Marketing Templates tab while remaining functional for automated notifications ### Improvements - Added a partial unique database constraint enforcing only one primary card per customer per business, preventing data integrity issues with automated charging ### Bug Fixes - Fixed raw HTML rendering in Job Detail communications panel — email previews now show clean text via a stripHtml helper - Fixed customer communications display issues ## Job Assignment Automation, Multi-Tenant Security & Onboarding Overhaul — v2026.02.14 — 2026-02-15 Major release featuring real-time auto-assign/auto-offer job logic, RLS security overhaul across 26+ tables, streamlined onboarding, and auto-payment support in customer profiles. ### New Features - Auto-assign & auto-offer logic at job creation — selects first-available qualified technician or broadcasts offers to all qualified providers - Broadcast notifications, Job Board widget, and SMS/Email offers with tokenized accept/decline links - Skill tag bulk assignment — creating a new skill tag from Services > Team now triggers a follow-up dialog to assign to active providers - Auto-payments enabled in customer billing cycle settings, gated to Pro and Plus tiers - Manager subscription permission (can_manage_subscription) added with default off, allowing owners to delegate billing access - Removed plan limits for Team Members and Services — now unlimited across all tiers ### Improvements - Updated RLS policies across 26+ tables to use get_user_business_id() for strict multi-tenant isolation - Added rate limiting on territory creation - Updated modifier template suggestions with industry-based filtering - Streamlined onboarding from ~25+ clicks to ~8 clicks to reach the dashboard ### Bug Fixes - Fixed Spanish (ES-419) and Russian (RU) translation keys across multiple modules - Fixed Stripe placeholder keys and related RLS policies - Fixed service refresh invalidation — resolved stale cache after edits - Fixed team calendar data access for non-primary owners - Fixed mock data in Booking Preview — now uses live service data - Fixed dead refresh handler in Referral Codes - Fixed hardcoded English strings in ProfileDetailsTab ## Service Provider Experience & Team Permissions Overhaul — v2026.02.12 — 2026-02-15 A major update focused on the service provider workflow, granular team permissions, and communication enhancements across the platform. ### New Features - Service Provider Action Buttons — field staff now follow a guided workflow with Start En Route and Start Work Order Sign-Off actions, replacing manual status changes - En-Route Email Automation — starting en route automatically sends a branded email notification to the customer with the technician's name, honoring notification preferences - Reopen Completed Jobs — owners and authorized managers can now revert completed jobs back to scheduled status via a new can_reopen_completed_jobs permission - Standardized Template Variables — a centralized variable library with categorized groups (Customer, Job, Service, Payment, Business, Contract) now powers Contract, SMS, and Email editors with a consistent {{variable}} format - Service Document Email Attachments — service-linked documents can be flagged to auto-attach to appointment confirmation emails - Team Permissions UI — new collapsible permission sections for Service Providers, Team Leads, and Managers with granular toggle controls ### Improvements - Service Provider Visibility — field staff are now restricted from viewing jobs in prospect, pending, or cancelled status across calendar and detail views - Service Provider Status Control — manual status transitions via breadcrumb and status rail are disabled for service providers, enforcing the button-driven workflow - RBAC Permission Mapping — streamlined permission flags with logical equivalents: canViewDashboardMetrics → can_view_reports, canDeleteNotes → can_add_internal_notes, canDeleteDocuments → can_upload_documents, canViewOwnEarnings → can_view_job_pricing - Settings & Reports Access — team leads are now properly excluded from Settings and Reports pages; only owners, super admins, admins, and managers have access - Export Data Permissions — can_export_data flag is now the single authoritative controller for all data export functions - Email Preview Updates — improved email template preview rendering and variable insertion experience - Persistent Settings — business-level configurations are now properly scoped by business_id for multi-tenant collaboration across team members ### Bug Fixes - Qbug1: Select All with Filters — fixed an issue where Select All in the jobs table selected items outside the current filter and page, now correctly scopes to only visible filtered results - Fixed pagination and selection state sync between the jobs table internal filtering and parent hook state ## Performance, Security & Tenant Isolation Hardening — v2026.02.09 — 2026-02-09 ### New Features - Lazy-loaded Google Maps SDK — @vis.gl/react-google-maps (~120KB) now loads on-demand across all 11 map components, keeping the main bundle lean - Lazy-loaded PDF generation — jspdf and html2pdf.js are dynamically imported only when a user triggers an export action, eliminating ~100KB from initial load - Async i18n translation loading — translation JSON files now load in the background without blocking the initial render for all 3 supported languages - Expanded Vite manual chunk splitting — heavy libraries (recharts, framer-motion, date-fns, @tiptap, dompurify, Google Maps, PDF libs) are now isolated into 14 dedicated chunks for better browser caching ### Improvements - Strict tenant isolation enforced across 7 edge functions — all customer, job, and payment queries now include explicit business_id scoping - Business payment processor isolation — all payment flows (Stripe and Square) now exclusively use business-specific API keys retrieved via get_api_key_by_name RPC - Team member support standardized — all payment and invoice edge functions resolve business_id via get_user_business_id RPC before any data access - Payment provider validation — payment link and invoice emails now check the business's configured payment provider and reject mismatched operations - Removed 15+ unused frontend components (RevenueOptimizer, SmartTeamSuggestion, BookingChatbot, etc.) and ~20 orphaned edge functions to reduce codebase surface area - LazyBigCalendar wrapper — react-big-calendar (~80KB) only loads when calendar view is active - LazyGoogleMap utility created — centralized lazy-loading wrapper for APIProvider, Map, Marker, and AdvancedMarker components ### Bug Fixes - Fixed send-payment-link-email using platform Stripe key instead of business-specific credentials — customer payments were routed to the platform account instead of the business - Fixed send-invoice-email using platform Stripe key — same critical payment routing issue as payment links - Fixed generate-consolidated-invoice using user.id instead of resolved business_id — team members could not generate invoices on behalf of their business - Fixed stripe-connect-dashboard not resolving business_id for team members — team members were blocked from accessing the Stripe dashboard - Fixed charge-customer calling get_decrypted_api_keys with unsupported parameter — Square payment flows were broken for team members - Fixed charge-saved-card querying customers and jobs without business_id filter — data from other tenants could leak when using service role key - Fixed process-square-job-charge querying customers and jobs without business_id filter — same cross-tenant data leak risk ## Customer Reports & Communication Insights — v2026.02.06 — 2026-02-06 Refined the customer report dashboard with cleaner metrics, improved communication engagement tracking, and removed legacy dead code for a leaner codebase. ### New Features - Accurate email delivery rate calculation combining delivered, opened, and clicked statuses - SMS delivery rate now aggregates all post-delivery states for reliability - Click rate tracking via provider webhook events ### Improvements - Streamlined customer report dashboard — removed legacy churn risk, health scores, and revenue concentration cards - Consolidated acquisition and tenure visualizations into a denser side-by-side grid layout - Replaced pie charts with Treemap for payment method distribution - Added Top Customers by LTV leaderboard with job-share percentages - Batch-processing pagination for datasets exceeding 100k records - Cleaned up unused barrel exports in reports hooks ### Bug Fixes - Fixed email open rate label — now correctly displays as Delivery Rate - Removed stale Agent Report and Coupon Report hooks that were no longer referenced ## Payment Processing Improvements — v2026.02.05 — 2026-02-05 This update focuses on payment accuracy, multi-tenant security, and rounding precision across all payment flows. ### Improvements - Added $0.015 rounding tolerance for Paid status comparisons across all payment flows (Stripe and Square) - Standardized dollar-based communication between frontend and edge functions with cents conversion occurring only at the provider API layer - Verified strict isolation between KlientHQ platform subscriptions and business payment processing — businesses cannot use the platform Stripe key to bill customers - Confirmed online booking and quote payment flows correctly update payment_status and invoice_status upon successful payment - Edge functions now use server-side business_id resolution via get_user_business_id RPC for secure multi-tenant team member support ### Bug Fixes - Fixed floating-point rounding errors that could prevent jobs from showing as Paid after successful payment - Fixed job total column displaying incorrect amounts by prioritizing final_price as the source of truth - Fixed breadcrumb Paid badge not appearing due to sub-cent rounding discrepancies - Fixed amount_paid precision in charge-saved-card and process-square-job-charge edge functions to use exact cent-to-dollar conversion ## Payment Processing Improvements — v2026.02.05 — 2026-02-05 This update focuses on payment accuracy, multi-tenant security, and rounding precision across all payment flows. ### Improvements - Added $0.015 rounding tolerance for Paid status comparisons across all payment flows (Stripe and Square) - Standardized dollar-based communication between frontend and edge functions with cents conversion occurring only at the provider API layer - Verified strict isolation between KlientHQ platform subscriptions and business payment processing — businesses cannot use the platform Stripe key to bill customers - Confirmed online booking and quote payment flows correctly update payment_status and invoice_status upon successful payment - Edge functions now use server-side business_id resolution via get_user_business_id RPC for secure multi-tenant team member support ### Bug Fixes - Fixed floating-point rounding errors that could prevent jobs from showing as Paid after successful payment - Fixed job total column displaying incorrect amounts by prioritizing final_price as the source of truth - Fixed breadcrumb Paid badge not appearing due to sub-cent rounding discrepancies - Fixed amount_paid precision in charge-saved-card and process-square-job-charge edge functions to use exact cent-to-dollar conversion ## Payments, Contracts & Booking Enhancements — v2026.02.07 — Unscheduled ### New Features - Square online booking payments now atomically update job status, payment records, and invoice in a single transaction — eliminating race conditions - Primary card system — default payment method is highlighted, sorted first, and protected from deletion until changed - Save card toggle during manual charges persists card metadata for future use - Service-level online booking toggle — control which services appear on your public booking page - Customer service contracts with recurring billing support - Recurring job improvements with better scheduling and status management ### Improvements - Cleaned up 7 dead legacy components from the jobs module (JobPaymentCard, JobDetailsCard, JobAddressCard, JobDateTimeCard, JobCustomerCard, JobServicesCard, JobMapCard) - Consolidated quote-to-job conversion logic into the payment function for atomic state transitions - Enhanced payment transaction metadata to include card brand, last four digits, and payment method details - Reports module updates with improved data visualization and accuracy ### Bug Fixes - Fixed quote email delivery — emails now send reliably with correct itemized pricing breakdown - Fixed Square booking payments not recording in payment_transactions table (amount was stored in dollars instead of cents) - Fixed card brand logo not displaying on payment history — card details now captured from Square response - Fixed race condition where schedule-quote overwrote successful payment status before database write completed - Fixed contract sending and signing workflow edge cases ## AI-Readable Blog & Content - Full blog markdown: https://klienthq.com/blog.md - Plain text blog: https://klienthq.com/blog.txt