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.
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:
- Describe your organisation once.
- Discover live grant opportunities matched to your mission.
- Understand each opportunity with an AI brief (eligibility, priorities, what's required).
- Apply with an AI-written proposal grounded in the grant's requirements.
- Budget with an AI-generated, editable line-item budget.
- Export a funder-ready document (Word, PDF) and budget (Excel).
- 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.
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.
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):
| Page | What it's for |
|---|---|
| Org Profile | Your organisation details — the lens for everything |
| Search Grants | Run live, multi-engine grant discovery |
| Matches | Scored results + AI "understand this grant" briefs |
| Applications | Your end-to-end application workspaces |
| Grant Pipeline | Track every application from "Identified" to "Won" |
| Readiness Checklist | A pre-flight audit of your funding readiness |
| Project Concepts | AI-generated fundable project ideas (Pro/Team) |
| AI Proposal Writer | Draft proposals with an AI coach (Pro/Team) |
| Plans & Pricing | View and change your subscription |
| Settings | AI 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.
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.
Grant discovery (search)
Where: sidebar → Search Grants (/dashboard/search). A saved profile is required.
How it works:
- Pick a search focus preset and a result limit (Top 5 / 10 / 20).
- Optionally add extra keywords (e.g. "solar pump", "irrigation").
- 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.
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.
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:
- Brief — the grant's requirements, eligibility/fit and a compliance checklist.
- 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.
- Budget — generate an editable, line-item budget grounded in the grant amount.
- 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.
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.
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.
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.
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.
Plans & what each includes
| Capability | Free | Starter ($10/mo) | Pro ($25/mo) | Team ($49/mo) |
|---|---|---|---|---|
| Matched grants | 5 | 50 | Unlimited | Unlimited |
| Pipeline tracker | 5 | Unlimited | Unlimited | Unlimited |
| Auto-refresh | — | Weekly | Daily | Daily |
| AI proposal writer + coach | — | — | ✓ | ✓ |
| AI project concepts | — | — | ✓ | ✓ |
| Document export (Word/PDF/Excel) | — | — | ✓ | ✓ |
| Collaborative seats | 1 | 1 | 1 | Up 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.
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.
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.
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.
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.
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.
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:
| Variable | Purpose |
|---|---|
MONGO_URI_DEV / MONGO_URI_PROD | Database connection (required) |
JWT_SECRET | Signs app sessions (≥ 32 chars, required) |
ENCRYPTION_KEY | 32-byte key that encrypts stored AI keys (required) |
FIREBASE_PROJECT_ID / FIREBASE_CLIENT_EMAIL / FIREBASE_PRIVATE_KEY | Firebase Admin (verifies sign-in) |
OPENROUTER_API_KEY | System default AI (preferred). OPENROUTER_MODEL / OPENROUTER_BASE_URL optional |
ANTHROPIC_API_KEY | Alternative system default AI |
EXA / SERPER / PERPLEXITY / TAVILY / BRAVE / FIRECRAWL _API_KEY | Search & enrichment engines (optional) |
STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET / `STRIPE_PRICE_STARTER | PRO |
PAYSTACK_SECRET_KEY / PAYSTACK_PUBLIC_KEY / `PAYSTACK_PLAN_STARTER | PRO |
FRONTEND_URL | Allowed origin + redirect targets |
REDIS_URL | Shared rate-limit store (optional) |
CRON_SECRET · SENTRY_DSN · PORT · NODE_ENV | Scheduled 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)
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_API_BASE_URL | Where the frontend reaches the backend API |
NEXT_PUBLIC_FIREBASE_* | Firebase web config (apiKey, authDomain, projectId, appId, etc.) |
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.
| Resource | Base path | Purpose |
|---|---|---|
| Auth | /auth | Exchange Firebase token → app session |
| Account | /account | Profile, AI settings, export, delete, start-trial |
| Reference data | /reference | Dropdown data (sectors, countries, …) |
| Plans | /plans | Plan catalogue + entitlements |
| Search presets | /search-presets | Saved search focuses |
| Search | /search | run (authed) and demo (public) discovery |
| AI | /ai | summary, proposal, budget, coach, ideas (SSE) |
| Proposals | /proposals | Saved applications (CRUD + versions) |
| Templates | /templates | Hosted proposal templates |
| Tracker | /tracker | Pipeline grants (CRUD) |
| Readiness | /readiness | Questions + snapshots |
| Billing | /billing | config, checkout, cancel + provider webhooks |
| Analytics | /analytics | Usage/admin metrics |
| Cron | /cron | Scheduled 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).
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.
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).