001 — Documentation

The Proxifund handbook.

Everything the product does, in plain English — from your first search to a funder-ready export — followed by a technical reference for developers. Use the contents to jump around.

001

Overview

Proxifund helps mission-driven teams — NGOs, social enterprises and research groups — find the funding their work deserves. It turns the slow, scattered grant cycle into one connected workflow:

  1. Describe your organisation once.
  2. Discover live grant opportunities matched to your mission.
  3. Understand each opportunity with an AI brief (eligibility, priorities, what's required).
  4. Apply with an AI-written proposal grounded in the grant's requirements.
  5. Budget with an AI-generated, editable line-item budget.
  6. Export a funder-ready document (Word, PDF) and budget (Excel).
  7. Track every application through a pipeline to submission and result.

Who it's for: anyone who applies for grants and wants to spend less time searching and formatting, and more time writing strong applications.

What makes it different: semantic search across multiple engines (not just keywords), AI that is grounded in your profile and the grant's requirements, support for your own AI model and key, and an end-to-end workspace so nothing falls through the cracks.

002

Getting started

1. Create an account. Go to Start free trial / Register. You can sign up with Google or with email + password. During email sign-up you'll add your name, organisation and country.

2. Sign in. Use the same method next time at Sign in. Your session lasts about 8 hours before you're asked to sign in again.

3. Complete your profile. The very first thing to do inside the app is fill in your Organisation profile — it powers every match and every AI draft (see section 004).

4. Run your first search. With a saved profile, open Search Grants and run a discovery search (see section 005).

Just want to look first? You don't need an account to try a search. Visit Try to run a live demo search and preview the top results.

003

Your dashboard

After signing in you land in the dashboard. The left sidebar is your map; each item is its own page (you can bookmark or share the URL):

PageWhat it's for
Org ProfileYour organisation details — the lens for everything
Search GrantsRun live, multi-engine grant discovery
MatchesScored results + AI "understand this grant" briefs
ApplicationsYour end-to-end application workspaces
Grant PipelineTrack every application from "Identified" to "Won"
Readiness ChecklistA pre-flight audit of your funding readiness
Project ConceptsAI-generated fundable project ideas (Pro/Team)
AI Proposal WriterDraft proposals with an AI coach (Pro/Team)
Plans & PricingView and change your subscription
SettingsAI keys, theme, data export, account

The top bar has a theme switcher, a deadline bell (jumps to your pipeline), and your account menu. Some pages are locked on lower plans and show an upgrade prompt instead.

004

Organisation profile

Your profile is the single most important thing you'll set up — it's the "lens" Proxifund uses to score matches and ground every AI draft.

Where: sidebar → Org Profile (/dashboard/profile).

What to fill in:

  • Organisation name, type, country, year founded, website
  • About / description — a few sentences on what you do
  • Sectors (e.g. Climate, Education, Health)
  • Beneficiaries (e.g. smallholder farmers, women, youth)
  • Geographic focus (regions/countries you work in)
  • Strengths (e.g. community relationships, technical expertise)
  • Annual budget, team size, target grant size, grant experience

How to save: edit the fields and click Save. Your changes apply immediately to matching and AI drafts. You can update them any time — richer, more specific profiles produce noticeably better matches and proposals.

005

Grant discovery (search)

Where: sidebar → Search Grants (/dashboard/search). A saved profile is required.

How it works:

  1. Pick a search focus preset and a result limit (Top 5 / 10 / 20).
  2. Optionally add extra keywords (e.g. "solar pump", "irrigation").
  3. Click Orchestrate Live Grant Search.

Behind the scenes there are two search modes. Classic builds smart queries from your profile and fans out across multiple search engines plus the live Grants.gov registry, scoring each result against your sectors, geography and beneficiaries — fast and unlimited. Agent deep search goes further: the AI plans targeted queries from your profile, reads the strongest grant pages in full, and scores every candidate on real mission fit with a grounded reason — metered per month by your plan. A live log shows the orchestration as it runs; when it finishes you're taken to Matches, and your latest results are saved so they're still there next session (paid plans also get automatic refreshes on their plan's schedule).

Tips: the better your profile, the better the results. Use extra keywords to steer toward a specific programme or theme.

006

Matches & grant briefs

Where: sidebar → Matches (/dashboard/matches).

Each result is a card showing a fit score (high / medium / low), the funder, amount, deadline, a short description, and why it matched. Filter by fit, and open the funder's page directly.

Two key actions per card:

  • Understand — generates an AI Grant Brief: a plain-English summary, eligibility, funder priorities, required documents, evaluation criteria, a fit assessment, and a compliance checklist of what you'd need to apply. Use it to decide quickly whether a grant is worth pursuing.
  • Start application — snapshots the grant, adds it to your pipeline, and opens its Application Workspace (section 007).

You can also just Track a grant to revisit later. On free/lower plans the number of matches shown is limited; upgrade to see them all.

007

Application workspace

The workspace is where an opportunity becomes a submission. It's saved, so you can leave and come back any time.

Where: sidebar → Applications (/dashboard/applications) lists everything in progress; open one to enter its workspace (/dashboard/applications/[id]).

The four steps:

  1. Brief — the grant's requirements, eligibility/fit and a compliance checklist.
  2. Proposal — generate a draft that is grounded in the requirements and follows either a hosted template (pick by sector/funder type) or your own uploaded sample (the AI mimics its structure and tone). Save versions as you iterate.
  3. Budget — generate an editable, line-item budget grounded in the grant amount.
  4. Export — download the proposal as Word (.docx) or PDF, and the budget as Excel (.xlsx).

Everything stays linked to the matching entry in your Pipeline, so the status you set follows the application through to a result.

008

Proposal writer & AI coach

Where: sidebar → AI Proposal Writer (/dashboard/writer). Available on Pro and Team.

Generate a draft: choose a matched grant, give your project a title and an optional focus angle, and (optionally) attach the funder's guidelines or a sample (.txt, .docx, .pdf — read and used as guidance). Click generate and the proposal streams in live as structured Markdown: headings, tables, even charts where useful.

AI coach: a chat panel on the side gives concrete, funder-aware feedback. Use the quick prompts (Executive Summary, Problem Statement, Impact Metrics, Sustainability) or ask anything.

Output: copy the draft, or export it (Word/PDF). Always review and tailor AI output before submitting — it's a strong first draft, not a final submission.

009

Project concepts

Where: sidebar → Project Concepts (/dashboard/ideas). Available on Pro and Team.

Stuck on what to propose? Proxifund generates fundable project concepts tailored to your sectors and focus. Each concept includes a title, a target grant type, a description, an estimated budget, a timeframe, and its core innovation.

For any concept you can send it to the Writer (to draft a full proposal) or track it in your pipeline.

010

Grant pipeline tracker

Where: sidebar → Grant Pipeline (/dashboard/tracker).

A simple board for every application you're pursuing. Each entry has a name, funder, amount, deadline, status, reminder window, notes and a link.

Stages: Identified → In Progress → Submitted → Won / Unsuccessful. The page shows totals, active drafts, wins and your success rate. Deadlines are colour-coded by urgency, and the top-bar bell flags anything due within ~14 days.

Adding grants: quick-track from Matches, auto-create via Start application, or add one manually. Open any entry to change its status (a win triggers a little celebration), edit notes, or jump to its application workspace.

011

Readiness checklist

Where: sidebar → Readiness Checklist (/dashboard/readiness).

An honest, pre-flight audit of the things funders quietly check — governance, finance, policies and track record. Answer the short questionnaire and Proxifund scores your readiness and highlights the gaps to fix before they cost you a rejection. Your snapshots are saved so you can see progress over time, and you can export a report.

012

Plans & what each includes

CapabilityFreeStarter ($10/mo)Pro ($25/mo)Team ($49/mo)
Matched grants550UnlimitedUnlimited
Pipeline tracker5UnlimitedUnlimitedUnlimited
Auto-refreshWeeklyDailyDaily
AI proposal writer + coach
AI project concepts
Document export (Word/PDF/Excel)
Collaborative seats111Up to 5
Shared pipeline boards & team notes
Priority infrastructure
Custom portal API integrations

In short: Starter removes match/tracker limits; Pro unlocks the AI writer, concepts and exports; Team adds everything in Pro plus multi-seat collaboration and shared boards. All paid plans start with a 5-day free trial and can be cancelled any time.

013

Billing, upgrades & cancellation

Where: sidebar → Plans & Pricing (/dashboard/plans).

Upgrading: pick a plan and click Get [plan]. If live payments are configured you're sent to a secure checkout; otherwise (e.g. a demo environment) the plan switches instantly.

Payment providers — routed by region:

  • Paystack for African regions (Nigeria, Ghana, South Africa, Kenya, Côte d'Ivoire, Egypt, Rwanda).
  • Stripe for everywhere else. You're routed to the right one automatically based on your country.

Cancelling / downgrading: choose Free (it reads Cancel plan when you're on a paid tier). On live billing this cancels your subscription at the provider and downgrades you; otherwise it just switches you back.

Reliability: payment confirmations arrive via provider webhooks that are signature-verified and idempotent (a repeated notification is never double-applied), and failures are retried safely — so a successful payment reliably becomes an upgrade.

Heads-up: if a plan's price isn't configured yet in the environment, the app treats billing as "not live" and lets you switch plans directly — so demos and local setups still work.

014

AI & your own keys

Proxifund's AI features (briefs, proposals, budgets, coach, concepts) work out of the box. You have two options:

1. Use the built-in default. The managed Proxifund AI — you don't have to configure anything.

2. Bring your own key (BYO). In Settings → AI Provider & Key you can connect Anthropic, OpenAI, OpenRouter, or any compatible endpoint and paste your key — everything else is handled automatically behind the scenes. Your key is encrypted at rest and never shown again; you can test it before saving, and revert to the default any time. When you bring your own key, it always takes priority over the system default.

Responses are streamed (you see them appear live) and rendered richly — text, lists, tables, and charts — so AI output is organised, not a wall of text. If no key is configured anywhere, AI features run in a limited demo mode.

015

Settings, data & privacy

Where: sidebar → Settings (/dashboard/settings).

  • AI Model & Key — connect/test/remove your own AI provider (section 014).
  • Export your data — download everything we hold for you (profile, pipeline, readiness history, search history, AI usage, activity, and your saved applications) as a single JSON file.
  • Delete your account — request deletion. There's a 14-day grace period during which you can cancel and restore your account; after that your data is permanently removed.

Your data is yours: we don't sell it, API keys are encrypted, and you can leave with your data at any time.

016

Appearance & themes

Proxifund ships with four themes you can switch from the theme picker in the top bar (and on the marketing/sign-in pages too):

  • Forest — deep forest green (the default)
  • Ivory — warm light paper
  • Charcoal — dark, high-contrast
  • Sepia — warm light, richer paper

Your choice is remembered on your device and synced to your account, and it's applied instantly with no flash of the wrong colours on reload. The design respects your system's reduced-motion setting.

017

Architecture & directories (developers)

Proxifund is two apps in one repository:

  • proxifund/ — the frontend: Next.js 16 (App Router), React 19, Tailwind CSS v4, Zustand for state, Firebase client auth, framer-motion. It calls only the backend API.
  • backend/ — the API: Express + MongoDB (Mongoose), Firebase Admin for auth, server-sent events (SSE) for AI streaming. It owns all business logic.

Repository layout

proxi-fund/
├─ proxifund/                      # Frontend (Next.js)
│  ├─ app/
│  │  ├─ (marketing)/              # Public site: home, pricing, try, faq, terms, privacy, docs
│  │  ├─ (auth)/                   # login, register (shared split layout)
│  │  ├─ dashboard/
│  │  │  ├─ [tab]/                 # profile, search, matches, tracker, readiness, ideas, writer, plans, settings
│  │  │  └─ applications/[id]/     # the application workspace
│  │  ├─ layout.tsx · globals.css  # root layout, fonts, design tokens
│  ├─ components/
│  │  ├─ dashboard/                # one component per dashboard tab
│  │  ├─ ui/                       # Brand, RichContent, ChartBlock, MermaidBlock, Modals, Motion, ThemeSelector…
│  │  ├─ auth/ · landing/          # AuthForm, DemoSearch
│  ├─ lib/
│  │  ├─ api-client.ts             # apiFetch / apiJSON / apiStream (SSE)
│  │  ├─ export/                   # proposalToDocx, nodeToPdf, budgetToXlsx, sampleToText
│  │  ├─ hooks/                    # usePlans, useReferenceData, useProposalTemplates
│  │  ├─ firebase.ts · types/      # client auth, shared types
│  ├─ store/useGrantStore.ts       # global app state (Zustand)
│  └─ public/brand/                # logo & wordmark
└─ backend/
   └─ v1/src/
      ├─ app.js · server.js · db.js # express app, entrypoint, mongo connection
      ├─ models/                    # Mongoose schemas (user, plan, tracker-grant, proposal, …)
      ├─ services/                  # business logic (ai, search, billing, analytics, activity)
      │  └─ ai/providers/           # anthropic / openai-compatible adapters + SSE parser
      ├─ controllers/ · routes/     # HTTP layer (one pair per resource)
      ├─ validations/               # Joi request schemas
      ├─ middlewares/               # auth, entitlement (plan gates), validation, errors
      ├─ utils/                     # crypto, firebase admin, logger, env validation, serialize
      ├─ data/seed-data.json        # plans, reference data, presets, templates, readiness questions
      └─ scripts/seed.js            # seeds the database

Key models: user, plan, tracker-grant, proposal, proposal-template, match-history, search-run, readiness-question, readiness-snapshot, reference-data, search-preset, ai-usage, activity-log, webhook-event.

018

Configuration (environment)

Secrets live in .env files and must never be committed to version control. If a key is ever exposed, rotate it.

Backend (backend/.env) — common variables:

VariablePurpose
MONGO_URI_DEV / MONGO_URI_PRODDatabase connection (required)
JWT_SECRETSigns app sessions (≥ 32 chars, required)
ENCRYPTION_KEY32-byte key that encrypts stored AI keys (required)
FIREBASE_PROJECT_ID / FIREBASE_CLIENT_EMAIL / FIREBASE_PRIVATE_KEYFirebase Admin (verifies sign-in)
OPENROUTER_API_KEYSystem default AI (preferred). OPENROUTER_MODEL / OPENROUTER_BASE_URL optional
ANTHROPIC_API_KEYAlternative system default AI
EXA / SERPER / PERPLEXITY / TAVILY / BRAVE / FIRECRAWL _API_KEYSearch & enrichment engines (optional)
STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET / `STRIPE_PRICE_STARTERPRO
PAYSTACK_SECRET_KEY / PAYSTACK_PUBLIC_KEY / `PAYSTACK_PLAN_STARTERPRO
FRONTEND_URLAllowed origin + redirect targets
REDIS_URLShared rate-limit store (optional)
CRON_SECRET · SENTRY_DSN · PORT · NODE_ENVScheduled jobs · error tracking · server

Billing is treated as live only when a provider has both a secret key and at least one plan price/code set. Otherwise the app falls back to instant plan switching (useful for demos).

Frontend (proxifund/.env / .env.local)

VariablePurpose
NEXT_PUBLIC_API_BASE_URLWhere the frontend reaches the backend API
NEXT_PUBLIC_FIREBASE_*Firebase web config (apiKey, authDomain, projectId, appId, etc.)
019

API overview (developers)

All endpoints are versioned under /api/v1. Most require a Bearer token (obtained by exchanging a Firebase ID token at /auth). Responses use a consistent { success, data } envelope; AI endpoints stream via SSE.

ResourceBase pathPurpose
Auth/authExchange Firebase token → app session
Account/accountProfile, AI settings, export, delete, start-trial
Reference data/referenceDropdown data (sectors, countries, …)
Plans/plansPlan catalogue + entitlements
Search presets/search-presetsSaved search focuses
Search/searchrun (authed) and demo (public) discovery
AI/aisummary, proposal, budget, coach, ideas (SSE)
Proposals/proposalsSaved applications (CRUD + versions)
Templates/templatesHosted proposal templates
Tracker/trackerPipeline grants (CRUD)
Readiness/readinessQuestions + snapshots
Billing/billingconfig, checkout, cancel + provider webhooks
Analytics/analyticsUsage/admin metrics
Cron/cronScheduled maintenance (secret-protected)

Cross-cutting: Firebase-verified auth, plan-gated features (entitlement middleware), Joi validation, rate limiting, encrypted AI keys, and an activity log. Interactive API docs are served at /api-docs (Swagger).

020

Running & deploying (developers)

Prerequisites: Node.js, a MongoDB database, and a Firebase project. Copy the example env files and fill them in.

Backend

cd backend
npm install
npm run seed     # load plans, reference data, presets, templates
npm run dev      # start the API (nodemon)
npm test         # unit tests (node:test)

Frontend

cd proxifund
npm install
npm run dev      # http://localhost:3000
npm run build    # production build

Deployment: the frontend is built for Vercel-style hosting; the backend runs as a Node service (serverless-friendly — it lazily reuses a cached DB connection). Set the same environment variables in your hosting provider, point NEXT_PUBLIC_API_BASE_URL at your deployed API, and register the billing webhook URLs with Stripe/Paystack.

021

FAQ & troubleshooting

Search says "complete your profile first." Save your Organisation profile (section 004) — discovery needs it.

The AI writer / project concepts are locked. Those are Pro/Team features. Upgrade in Plans & Pricing.

My upgrade didn't take. If live billing is configured, upgrades go through a provider checkout and apply once payment is confirmed. If you saw an error, your plan's price may not be configured yet — in that case the app lets you switch plans directly instead.

AI replies look generic or say "demo mode." No AI key is active. Add your own key in Settings → AI Model & Key, or have an administrator configure the system default.

My AI key — is it safe? Yes. Keys are encrypted at rest and never displayed again after saving.

Results aren't relevant. Make your profile more specific (sectors, beneficiaries, geography) and add focused keywords to your search.

I want to leave. Export your data and/or delete your account from Settings (14-day grace period before permanent deletion).