Describe what your business needs. ffinn ships it.
ffinn is a free, open-source foundation for business software. Sign-in, teams, roles, billing and admin are already built. On top sits an AI agent that turns plain-English requests into reviewed pull requests, staging deploys and production releases, on your cloud and with your AI keys.
Example: a request for online booking is typed into ffinn. The agent reads the codebase, plans the change, writes six files, fixes one architecture issue, opens pull request 48, deploys to staging, and then waits for a person to approve the production release.
$ git clone https://github.com/bplogan/ffinn.git && cd ffinn && docker compose upOne command for a working app on your machine. All you need is Git and Docker.
Works with the AI you already pay for, or models you run yourself
- OpenAI
- Claude
- Gemini
- Azure OpenAI
- GitHub Models
- Ollama
- OpenAI-compatible
Every business app starts by rebuilding the same things: sign-in, teams, roles, billing, an admin console. Months go by before a customer sees what makes you different. ffinn hands you that foundation on day one, then builds the rest with you, one reviewed change at a time.
How it works
From one sentence to production, with you signing off at every step.
Describe it
Write the feature the way you would brief a developer. ffinn reads your codebase first, so it knows the models, services and screens it is building next to.
- Plain-English requests
- Uses the AI model you choose
- Follow-ups refine earlier work
Add a Customer list with name, email and phone. Only admins can delete, and every deletion goes to the audit log.
Review it
Every request becomes one branch and one pull request in your repository, already checked against the architecture rules. Read the diff, approve it, or ask for changes.
- One feature, one pull request
- Architecture checked before commit
- Protected core never touched
Add customer list with admin-only delete
ai-agent/customer-list → main
- Architecture rules5 of 5 files pass
- Protected filesNone touched
- Tenant isolationEvery query scoped to the tenant
- domain/models/customer.py+52
- services/customer_service.py+96
- api/customers.py+61
- features/customers/page.tsx+118
- api/router.py+2
Ship it
Deploy to staging from the dashboard and watch the build stream in live. Try it with real data. When it is right, promote it to production. Changed your mind? Revert.
- Staging before production
- Live deploy status
- One-click revert
- Branchai-agent/customer-listMerged
- Stagingstaging.acme.appVerified
- Productionacme.appReady
Add a Customer list with name, email and phone. Only admins can delete, and every deletion goes to the audit log.
Already built
The parts every app needs, done properly.
These are the pieces that take months to get right and are dangerous to get wrong. In ffinn they are hand-written, tested, and protected from the AI agent, so new features always build on solid ground.
Multi-tenancy
Serve many customers from one deployment. Each tenant gets isolated data, its own branding and its own subscription.
Identity
JWT sessions with refresh tokens, two-factor sign-in, single sign-on and team invitations.
| permission | Admin | Staff | Viewer |
|---|---|---|---|
| customers.view | |||
| customers.edit | |||
| customers.delete |
Roles and permissions
Fine-grained permissions grouped into roles, plus delegation and admin impersonation for support.
Billing and paywall
Plans and editions with Stripe or PayPal. Gate any feature by plan without writing billing code.
- 09:41mariadeleted customer #1182
- 09:38saminvited jo@acme.co
- 09:12samchanged role → Staff
- 08:57mariaenabled 2FA
Audit trail
Who did what, and when, recorded for every sensitive action and searchable by admins.
Notifications
One service for every channel, configured per tenant.
- SMS
- Push
- In-app
- WebSockets
Admin console
Everything your operations team needs on day one, without building a back office.
- Users
- Roles
- Tenants
- Plans
- Feature flags
- Settings
Guardrails
AI that can't break what already works.
Generating code is easy. Trusting it is the hard part. ffinn checks every file against your architecture before anything is committed, and a person approves every release.
Protected core
Security, configuration, infrastructure and shared components are off-limits. The agent cannot write to them.
Layer rules
Routes call services and services own the logic. Shortcuts are caught before they reach your repository.
Tenant-scoped data
Every new model carries a tenant ID, so one customer never sees another’s records.
Self-correcting
Violations go back to the model with a targeted fix. Up to three tries, then a clear explanation instead of a broken commit.
You stay accountable. Nothing reaches production without a pull request you have reviewed and a release you have approved.
- ffinn check ai-agent/online-booking
- models/booking.py · tenant-scoped · SQLAlchemy 2.0 Mapped[]
- services/booking_service.py · no web-layer imports
- schemas/booking_schemas.py · Pydantic v2
- api/bookings.py · direct database query in route
- Sending a targeted fix to the model · attempt 2 of 3
- api/bookings.py · logic moved to BookingService
- 6 of 6 files pass · 0 protected files touched
- Pull request #48 opened for your review
AI assistants
Assistants for the rest of your team.
The same app can host chat assistants for everyday work, each with its own instructions, model and files. Think of the big chat apps, but inside your product and under your permissions.
- As many assistants as you need
- Upload documents and images
- Streaming replies, saved history
- A different model for each one
No lock-in
Yours. Every line, every key, every server.
MIT licensed, top to bottom.
Read every line, change anything, sell what you build. No paid tier and no feature held back.
Pay your AI provider directly.
Connect OpenAI, Claude, Gemini, Azure OpenAI, GitHub Models, Ollama or any compatible server. Keys are encrypted at rest.
Runs anywhere Docker runs.
Docker Compose locally, GitHub Actions for staging and production, and reference setups for AWS and Azure.
Compare
The foundation of a starter kit. The speed of an AI builder.
| ffinn | Paid starter kits | Hosted AI app builders | |
|---|---|---|---|
| Sign-in, teams, roles and billing built in | Yes | Yes | Varies |
| Multi-tenant from day one | Yes | Varies | — |
| AI builds new features for you | Yes | — | Yes |
| Every AI change reviewed as a pull request | Yes | n/a | Varies |
| Guardrails that keep AI out of core code | Yes | n/a | — |
| You own and host all of the code | Yes | Yes | Varies |
| Use any AI model with your own key | Yes | n/a | — |
| Price | Free, MIT | Paid licence | Monthly plan |
Typical of each category. Individual products vary.
What is ffinn, in one sentence?
ffinn is a free, open-source foundation for business software (sign-in, teams, roles, billing and admin already built) with an AI agent that turns plain-English requests into reviewed pull requests, staging deploys and production releases.
Who is it for?
Businesses and product teams who want software shaped around how they work, without spending months rebuilding the basics first. You describe the feature; ffinn builds it on top of a foundation that is already production-minded.
Do I need a developer?
You need someone comfortable reviewing a pull request and running a deployment. The agent writes the code, but a person approves every change before it ships. That is a deliberate design choice, not a limitation.
Is it really free?
Yes. ffinn is MIT licensed with no paid tier and nothing held back. You pay only for your own hosting and for the AI usage on your own provider account.
Which AI models can I use?
OpenAI, Anthropic Claude, Google Gemini, Azure OpenAI, GitHub Models, Ollama for fully local models, or any OpenAI-compatible server. You bring your own key, and ffinn tests the connection before you save it.
Can the AI break my app?
The agent cannot write to protected core files such as auth, security, configuration and infrastructure. Every file it generates is checked against the architecture rules, sent back for a fix if it fails (up to three attempts), and then lands as a pull request you review. Production deploys wait for you.
Where do my code, data and keys live?
On infrastructure you control. The code is in your own GitHub repository, data stays in your PostgreSQL database, and AI provider keys and repository tokens are encrypted at rest in that database.
Which git hosts and clouds are supported?
The build agent works with GitHub and GitHub Actions today; GitLab and Azure DevOps are on the roadmap. ffinn runs anywhere Docker runs, and the repository includes reference deployments for AWS and Azure.
Your next feature is one sentence away.
Clone it, run it, and describe the first thing your business needs. It is free, today and always.
$ git clone https://github.com/bplogan/ffinn.git && cd ffinn && docker compose up