When I heard MiniMax released a model that offers "near Claude-level quality" at a fraction of the cost I was more than excited to give it a spin. My initial few tests with it weren't great. But I thought it was only fair to give it a proper go, with a real project, E2E.
I'd been wanting to build a backend REST API for my agents to use to store server logs and issues for a while, I thought this would be a good project to let MiniMax M2.5 build E2E.
I've already done a few tests with M2.5 and definitely wasn't blown away. I found that it really struggled to use Gitea, which is annoying because I use that more than I use GitHub nowadays. Still, I wanted to give M2.5 a fighting change, so I opted to build this with GitHub as the main Git server.
I didn't have high hopes, but nothing could prepare me for the battle I was about to endure. I really wanted the hype to be true, and I REALLY wanted to like this model. But we failed hard at the first hurdle. Milestone 0 was about getting the repo set up:
Milestone 0
For the first milestone we started with the foundation setup:
- Initial repo structure
- Python project setup (
api/) - Dashboard project setup (
dashboard/) - Docker setup
- Makefile / DX Shortcuts
- CI-ready structure
I had MiniMax M2.5 open a PR for the first milestone.
And it wasn't a good start.
"1. `make dev` cannot succeed: API image build fails because `api/Dockerfile` copies `pyproject.toml` to `/app/pyproject.toml` but installs from non-existent `api/pyproject.toml` (`api/Dockerfile:7-8`). Confirmed with `docker build -f api/Dockerfile .` failing on file not found.
- Dashboard production image build is broken: `dashboard/Dockerfile` tries `COPY Caddyfile /etc/caddy/Caddyfile` while build context is repo root and file is at `dashboard/Caddyfile` (`dashboard/Dockerfile:14`). Confirmed build failure.
- Dashboard dev image build is broken under compose: `docker-compose.dev.yml` uses context `./dashboard`, but `dashboard/Dockerfile.dev` uses `COPY dashboard/...` paths (`dashboard/Dockerfile.dev:5,8-10`), which do not exist in that context. This blocks hot-reload path required by Milestone 0.
- Node install path is not reproducible: both dashboard Dockerfiles run `npm ci` (`dashboard/Dockerfile:6`, `dashboard/Dockerfile.dev:6`) but PR does not include `dashboard/package-lock.json`. `npm ci` fails immediately (`EUSAGE`).
- `make test` exit criteria are not satisfied by this PR as submitted: `test-dash` has no working dependency bootstrap path and the API test suite is mostly placeholders (`api/tests/test_auth.py`, `test_events.py`, `test_idempotency.py`, `test_issues.py`, `test_pagination.py`, `test_servers.py` all contain only placeholder comments)."
Near-Claude Level Coding?
Absolutely not! Not even close.