Majus · software studio · est. 2010
We build the boring software
that quietly runs other businesses.
§ 01 · How we work
Three principles, one studio.
- 01
Transparency
Every project runs in a shared task tracker. You see what we see — tickets, branches, blockers, the lot. No status-update theatre.
- 02
Conversation
Async-first writing, sync when it matters. Decisions are written down so they outlive the meeting.
- 03
Architecture
What you ship in week two decides what's possible in year two. We design for the second year, not the second sprint.
§ 02 · What we do
Four practices, one team.
- 01
Requirements & analysis
The cheapest stage to find an expensive mistake. We treat discovery as engineering, not a deck.
- 02
Software development
Headless services, web apps, chat bots — whatever shape the work needs. We write the boring layer well.
- 03
Automated testing
Test infrastructure that actually catches regressions in year three. The point isn't coverage — it's confidence.
- 04
Long-tail support
The bugs in production at 3am, the migrations on the legacy box, the integrations nobody documented. We keep things alive.
§ 03 · Tools we trust
An honest stack.
JavaScript
Where most of our delivery time is spent. Node on the server, TS at the contract layer.
Node.js
Long-lived services, queues, integration shims, internal tools.
MongoDB
For document-shaped data and rapid product iteration. Postgres when the shape is known.
React
Where end-to-end reactivity earns its keep — internal tools and bespoke admin UIs.
Supabase
Postgres with auth, storage, and edge functions wired up on day one. Where a project needs a backend yesterday.
Pulumi
Infrastructure as TypeScript. Drift you can review in a pull request.
Linux
Where everything we ship runs. Ubuntu on the desk, Debian / Alpine on the box.
Git
The default, the only. Trunk-based, signed, with conventional commits.
Claude Code
The pair-programmer that doesn't tire. Docs, tests, refactors — the parts of the week nobody volunteers for.
OpenAI
Inference, embeddings, voice in and out. Where the model is the dependency, not the framework.
LangChain
When an agent has to do six things in order and we need logs when one breaks. Orchestration, traces, retries.
OpenSpec
Spec before code, even when the code is generated. Keeps long agent runs honest and the deliverables boring.
§ 04 · Selected work
Things we built.
- TopicVote 2020
Knowledge base in a question-answer format
- My Tripster 2020
Travel recommendation service
- Selbstauskunft 2019
Form builder for collecting tenant data
- PropAgg 2019
Real estate ad aggregator
- Airoko 2018
Booking service for a travel agency
- UTail 2016
Vital social marketing tool
- Estetic 2016
Online booking service for a beauty salon
- KetBilietas 2016
Online driving exam testing
§ 05 · Latest from the journal
Recent entries.
§ 06 · Talk to us
Got something boring that needs to work?
Tell us what you're trying to ship. We respond within two working days, in writing, with questions before quotes.