Skip to main content

Django development

Django apps that are still easy to change in year three.

Acasa Labs builds Django and Django REST Framework applications: SaaS platforms, admin-heavy internal tools, and AI features added to existing Django apps. Our construction platform SigmaCPM runs several products on one Django REST Framework backend, with AI tender intake that cites the page for every value it extracts.

The problem

Your Django app works. Nobody wants to touch it.

Django is good at getting a product with real data and real permissions live. The trouble starts later: views that grew into thousand-line files, a job queue that is a cron and a hope, an upgrade nobody has scheduled, and a request to add AI that no one knows where to put. We build new Django apps so that does not happen, and we take over existing ones when it already has.

What we build with Django

  1. 01

    SaaS platforms on Django REST Framework

    Organizations, seats, roles, and per-module entitlements in one multi-tenant backend, with a Next.js or mobile frontend on top of the API.

  2. 02

    Internal tools and admin-heavy apps

    The Django admin, customized until your operations team can run the business from it, with audit trails and imports that handle the messy spreadsheet.

  3. 03

    AI inside an existing Django app

    Document extraction, summaries, and search over your own records, added as a module with its own jobs and cost tracking, not a rewrite.

  4. 04

    Takeovers, upgrades, and maintenance

    A short audit, then the fixes that matter: tests around the risky parts, the Django and Python upgrades, and a deploy you can repeat.

From production

How we build Django apps, from SigmaCPM.

  • One backend, several products

    SigmaCPM

    SigmaCPM's Django REST Framework backend is multi-tenant, with organizations, seats, and per-module entitlements. It is shared with a sibling password-sharing product and its Chrome extension, so a new product reuses accounts and billing instead of rebuilding them.

  • A job queue without another broker

    SigmaCPM

    Long work runs on a Postgres-backed job queue with leases, orphan reclaim, and skip-locked selection. It is one less service to run, and jobs survive a crashed worker.

  • AI that refuses to guess

    SigmaCPM

    Every value the model extracts from a tender must come with a quote, and that quote must be found on the cited page, or the value is dropped. Bond terms get a second, adversarial pass, and disagreements wait for a person.

  • Cost on every model call

    SigmaCPM

    Token use and cost are recorded on every LLM call, and candidate pages are retrieved before extraction so the model reads the right pages instead of the whole package.

Honest trade-offs

When we would not pick Django

If the backend is mainly a thin API for mobile apps, a streaming AI service, or a realtime gateway, FastAPI is lighter and faster to work with. We run four FastAPI systems for that reason. If you already have a Django app, though, the answer is almost never a rewrite. We add a FastAPI service next to it only when a part of the product really needs one.

What we reach for

  • Django, Django REST Framework
  • Postgres, Redis
  • Celery or a Postgres job queue
  • Django admin customization
  • OpenAI, Anthropic, Gemini via one client
  • OCR for scanned documents
  • Next.js or React Native on the API

Proof

Shipped, not pitched.

  1. 01Our product

    SigmaCPM

    Construction project management where AI reads the tender and shows its work.

    One project record for civil contractors, from tender to closeout: bids, contracts, RFIs, vendor quotes, and drawings. The AI pulls line items and bond terms out of tender PDFs and cites the page for every value.

    Web · API · Chrome extension

Questions

Django questions we get asked.

Is Django still a good choice for a new product?

Yes, when the product is mostly records, roles, and workflows. You get the ORM, migrations, auth, and the admin on day one, and the framework has been stable for a long time. For an API-only or realtime backend, we would look at FastAPI first.

Can you add AI features to our existing Django app?

Yes. We add it as its own module: background jobs for the model calls, a record of cost per call, and checks on what the model returns. SigmaCPM's tender extraction is built this way inside a Django REST Framework backend.

Do you upgrade old Django versions?

Yes. We put tests around the parts that matter, upgrade in steps through the supported releases, fix deprecations as we go, and keep the app deployable at each step.

Django or Django REST Framework?

Both. Django is the framework. Django REST Framework is the layer we use when a web frontend, a mobile app, or a partner needs an API, which is most products now.

Who owns the code?

You do. Repositories, cloud accounts, and credentials sit in your organization from the first day, and we document how to run it.

Django development

Show us the Django app nobody wants to touch.

A free review of your codebase or your plan: structure, tests, upgrade path, and where AI would fit. Written up, so you can use it with or without us.

Get a Django review

No pitch deck. You own the code from day one.

contact@acasalabs.com