VixFlow Documentation

Everything you need to know about using VixFlow to manage your freelance business. From setting up your API key to creating AI-powered proposals.

Updated March 2026 15 min read

What is VixFlow?

VixFlow is a local-first freelance management platform. It helps you manage clients, create professional proposals, send invoices, and track projects — all powered by AI.

Privacy First. All your data is stored locally in your browser's localStorage. Nothing is sent to external servers. Your client data, invoices, and proposals stay on your device.

Key Concepts

Quick Start

Get up and running with VixFlow in under 5 minutes.

  1. Open the app — Visit vixflow.app in your browser. No sign-up required.
  2. Add your first client — Click "Clients" in the sidebar → "Add Client". Fill in name, email, and company.
  3. AI is ready to use — No setup needed. VixFlow AI is included in your plan. Open AI Writer and start generating proposals instantly.
  4. Create a proposal — Click "Proposals" → "New Proposal". Select your client, describe the project, and let AI write the first draft.
  5. Send an invoice — When work is done, go to "Invoices" → "New Invoice". Link it to a project and generate a professional PDF.

AI Features — Included in All Plans

VixFlow AI is fully bundled — no API key required, no setup, no extra cost. You don't need an Anthropic account or any third-party credentials. Just open the AI Writer and start generating.

No API Key Needed. VixFlow includes AI in every plan. Free users get 5 AI requests/day (Claude Haiku). Pro users get 50/day (Haiku + Sonnet). Agency users get 200/day including the most capable models. All powered by Anthropic's Claude — included at no extra charge.

AI models by plan

  1. Free plan — Claude Haiku · 5 requests/day · Fastest generation
  2. Starter plan — Claude Haiku · 20 requests/day
  3. Pro plan — Claude Haiku + Sonnet · 50 requests/day · Higher quality output
  4. Agency plan — All models including Opus · 200 requests/day · Maximum quality
Daily Limits: AI request limits reset every 24 hours. Limits are enforced to keep the service free and fair for all users. If you regularly hit limits, consider upgrading your plan.

Data & Storage

VixFlow stores all data locally in your browser using localStorage. Here's what gets stored and where:

localStorage Key Type Contains
vixflow_clientsArrayAll client records
vixflow_proposalsArrayAll proposals
vixflow_invoicesArrayAll invoices
vixflow_projectsArrayAll projects
vixflow_expensesArrayAll expenses
vixflow_settingsObjectUser preferences, API key, business profile
Important: Clearing your browser's cache or localStorage will permanently delete your VixFlow data. Export your data regularly using the Export feature in Settings.

Client Data Model

Each client record contains the following fields:

FieldTypeDescription
idstringUnique identifier (UUID)
namestringClient full name
emailstringClient email address
companystringCompany or organization name
phonestringPhone number (optional)
countrystringCountry code (e.g. "BD", "US")
currencystringPreferred currency (e.g. "USD")
tagsstring[]User-defined labels
notesstringPrivate notes about the client
createdAtISO dateWhen the client was added

AI Writer

The AI Writer uses Claude to generate professional proposals, invoice descriptions, and follow-up emails. Here's how it works:

javascript — AI proposal generation
async function generateProposal(projectDescription, clientName) {
  const apiKey = getStoredAPIKey();
  if (!apiKey) {
    toast('Please add your Claude API key in Settings', 'warning');
    return null;
  }

  const prompt = `Write a professional freelance proposal for:
Client: ${clientName}
Project: ${projectDescription}

Include: executive summary, scope of work,
timeline, and pricing section.`;

  const res = await fetch('https://api.anthropic.com/v1/messages', {
    method: 'POST',
    headers: {
      'x-api-key': apiKey,
      'anthropic-version': '2023-06-01',
      'content-type': 'application/json'
    },
    body: JSON.stringify({
      model: 'claude-haiku-20240307',
      max_tokens: 1024,
      messages: [{ role: 'user', content: prompt }]
    })
  });

  const data = await res.json();
  return data.content[0].text;
}

Proposals

Proposals are the core selling tool in VixFlow. Create polished, professional proposals with AI assistance and track their status in real time.

Proposal fields

FieldTypeDescription
idstringUUID
clientIdstringReference to a client record
titlestringProposal title
contentstringFull proposal text (Markdown supported)
statusenum"draft" | "sent" | "viewed" | "accepted" | "rejected"
valuenumberProposed project value
currencystringISO 4217 currency code
createdAtISO dateCreation timestamp
sentAtISO dateWhen the proposal was sent (optional)

Creating a proposal with AI

In the Proposals view, click New Proposal → select a client → enter a project description → click Generate with AI. Claude will write a complete proposal including an executive summary, scope of work, timeline, and pricing table. You can edit any section before sending.

Invoices

Create professional invoices, track payment status, and generate PDF exports for your clients. Invoices can be linked to proposals and projects for complete project tracking.

Invoice fields

FieldTypeDescription
idstringUUID
invoiceNumberstringAuto-generated (e.g. "INV-0042")
clientIdstringLinked client reference
projectIdstringLinked project (optional)
itemsLineItem[]Array of {description, qty, unitPrice, total}
subtotalnumberSum before tax
taxRatenumberTax percentage (e.g. 15 for 15%)
totalnumberFinal amount due
statusenum"draft" | "sent" | "viewed" | "paid" | "overdue"
dueDateISO datePayment due date

Projects

Projects help you organise work across multiple clients and track progress. Link proposals and invoices to a project for a complete view of your income pipeline.

Project fields

FieldTypeDescription
idstringUUID
clientIdstringLinked client
namestringProject name
descriptionstringProject details
statusenum"active" | "completed" | "paused" | "cancelled"
budgetnumberAgreed project budget
startDateISO dateProject start
deadlineISO dateDelivery deadline (optional)
tagsstring[]User-defined tags

Expenses

Track your business expenses to understand your true profit margin. Expenses can be linked to a project for per-project P&L analysis.

FieldTypeDescription
idstringUUID
projectIdstringLinked project (optional)
categorystringe.g. "Software", "Design Assets", "Travel"
descriptionstringExpense description
amountnumberCost in the selected currency
currencystringISO 4217 code
dateISO dateWhen the expense occurred
receiptstringURL or note about the receipt (optional)

AI Proposal Generation

VixFlow's AI proposal writer uses Claude to create complete, professional proposals in seconds. Here's how the prompt is structured internally:

javascript — proposal prompt
const systemPrompt = `You are an expert freelance proposal writer.
Write professional, persuasive proposals that win clients.
Format output in clean Markdown.`;

const userPrompt = `Write a detailed freelance proposal for:
Client: ${clientName}
Project: ${projectDescription}
Budget: ${budget}
Timeline: ${timeline}

Include:
1. Executive Summary (2-3 sentences)
2. About Me / Why Choose Me
3. Scope of Work (bullet points)
4. Project Timeline (with milestones)
5. Investment (pricing breakdown)
6. Terms & Next Steps`;

const result = await generateAIContent(userPrompt, {
  system: systemPrompt,
  maxTokens: 2048
});
Pro tip: The more detail you provide in the project description, the better the AI output. Include the client's industry, specific deliverables, and any special requirements.

AI Invoice Descriptions

When creating invoice line items, use the AI to generate professional descriptions for your services. Click the ✨ AI button next to any line item to get suggestions based on the project context.

javascript — invoice item description
const prompt = `Generate a professional invoice line item description for:
Service: ${serviceType}
Project: ${projectName}
Client: ${clientName}

Write 1-2 sentences. Be specific and professional.
Example: "UI/UX design and prototyping for the mobile checkout flow, including 3 revision rounds and Figma source files."`;

const description = await generateAIContent(prompt, { maxTokens: 150 });

Import Data

You can import a previously exported VixFlow JSON backup to restore your data. Go to Settings → Import Data and select your backup file.

Warning: Importing data will merge with your existing records, not replace them. Duplicate IDs will be skipped. Always export your current data before importing.

The import function validates your JSON file structure before writing to localStorage:

javascript — import validation
function importData(jsonFile) {
  const data = JSON.parse(jsonFile);
  const required = ['version', 'clients', 'proposals', 'invoices'];
  if (!required.every(k => k in data)) {
    throw new Error('Invalid VixFlow backup file');
  }
  // Merge each entity type
  ['clients', 'proposals', 'invoices', 'projects', 'expenses'].forEach(key => {
    const existing = getEntity(`vixflow_${key}`);
    const existingIds = new Set(existing.map(e => e.id));
    const newItems = data[key].filter(i => !existingIds.has(i.id));
    const merged = [...existing, ...newItems];
    localStorage.setItem(`vixflow_${key}`, JSON.stringify(merged));
  });
  toast('Data imported successfully', 'success');
}

Privacy & Security

VixFlow is designed to be privacy-first by architecture. Since there is no server, there is no data breach risk from our side. All the risk management is in your hands.

Read our full Privacy Policy for more details.

Export & Backup

Export all your VixFlow data from Settings → Export. This creates a JSON file containing all clients, proposals, invoices, and projects. Keep this file backed up to avoid data loss.

Tip: Set a reminder to export your data once a week. Store the backup on Google Drive, Dropbox, or a USB stick.