cod3VIKING App Studio Serious code for serious business.

You describe the job. We ship the tool.

Apps, websites, and the systems behind them, for mortgage, real estate, and the businesses that run on them. Built the way we build our own.

Step one, the job

Describe the job

The best briefs name the pain, who feels it, and what today's workaround looks like.

0 of 1500

Step two, the shape of the build

The shape of the build

Four taps. It helps us come in ready.

What does it replace?

What do you run?

Who uses it?

How soon?

What kind of work? (optional)

Step three, where to reach you

Where to reach you

Required only if you choose to receive text messages.

Budget (optional)

Working drawing Desktop
A wireframe that redraws itself from the job you describe tools1440 JOBuntitled SHEET01 DATE DRAWNcod3VIKING

A first cut, drawn from your words. Not the finished tool.

What we build

Six things, built the same way.

The work

Three tools DataNinja runs its own businesses on.

Press 1, 2, or 3 to move between them.

three products, all in use

Case 01

Beauty Salon Operations

A phone first operating dashboard built for a working salon. It reads the booking system's numbers. It does not schedule appointments, run payroll, or replace the tools the staff already uses.

The constraint
The salon's numbers live in the booking system's reports, not on the manager's phone at 3pm.
The decision
Read the operation, do not replace it. One phone screen per role, pulling what the booking system already knows.
What shipped
  • Surfaces the booking system's daily sales, appointment counts, and revenue by role on one screen
  • Delivers a different view by login so the owner, the manager, and each stylist see only what applies to them
  • Tracks daily targets against the booking system's live figures without manual entry
  • Built for the size of a phone in a working salon, controls sized for a thumb, readable in a lit room
What it replaced
Pulling end of day reports from the booking system by hand and texting a summary to the manager.
Status
Built for the salon we own, on its real booking numbers.
Read the full decision.

The constraint

A working salon generates real data all day: appointments booked, services sold, chair revenue by stylist. That data lives inside the booking system's own reports, not on the manager's phone at 3pm when she needs to know how the floor is tracking. Daily targets, closing numbers, and role specific information travel by text message or stay inside somebody's head. A floor with multiple revenue producing chairs needs one screen that shows what is happening, not a separate tab for each thing.

The decision

Build a surface that reads the operation, not one that replaces it. The obvious move when you start building a salon tool is to rebuild the whole operation: scheduling, commissions, payroll, all in one place. That bet loses. The staff already knows the booking system. The vendors integrate with it. Rebuilding it takes years and lands wrong. The right call was to leave those systems in place and build a phone sized screen that pulls what the booking system already knows and organizes it by who is looking. A stylist sees her chair. The manager sees the whole floor. If the dashboard cannot verify who opened it, it shows nothing and asks you to sign in.

Case 02

LeadAXE

A CRM and outreach engine for mortgage and real estate operators. It runs the pipeline, surfaces conversations with full contact context, and generates outreach drafts for past clients, referral partners, and aged leads. Every outbound message stops at a human before it sends.

The constraint
An aged database is an asset sitting idle, and reaching it at scale usually sounds like software.
The decision
Every outbound message stops in an approval queue and a human taps send. That hold is the architecture, not a feature.
What shipped
  • Routes inbound and outbound conversations in one surface, organized by lead stage and contact history
  • Generates outreach drafts for past client touches, six month check in campaigns, and pipeline follow ups, then holds each draft for human approval before sending
  • Operates a referral partner desk with stage counts, response time tracking, and missing next action flags per partner
  • Tracks consent status, opt out history, and channel eligibility before creating any draft
What it replaced
Individual texts sent from personal phones, a shared spreadsheet for pipeline stages, and no structured process for staying in contact with past clients after closing.
Status
Running the branch's pipeline today.
Read the full decision.

The constraint

A mortgage operation with an aged contact database has a real asset sitting idle. Past clients, closed referrals, leads who went somewhere else, a year of incoming inquiries that never converted: they are not gone, they are just out of contact. The gap is not the idea of reaching them. The gap is reaching them at scale without one person becoming a full time list manager, and without the outreach sounding like it came from software instead of a person.

The decision

Every outbound message stops in an approval queue and a human taps send. The obvious architecture for an outreach engine is autopilot: write sequences, set schedules, let them fire overnight. That path was rejected at the design level, not after launch. The reason is plain: these messages go out in your name, from your phone number, to people you know or once knew. A message sent without a human eye on it is a message you sent. Direct channel sends cannot bypass the queue. Sequences are held as drafts only. A human approves each touch before it moves. That is not a product feature. It is the architecture the rest of the product is built around.

Case 03

VikingPOS

A mortgage point of sale engine where each loan product is its own template. DSCR Investor Ninja is template 01. New products are new templates, not new applications.

The constraint
A generic application asks a DSCR investor for pay stubs. The form was built for someone else.
The decision
One engine, one template per product. DSCR Investor Ninja is template 01. The next product only writes its questions.
What shipped
  • Opens the DSCR investor workflow with property type, location, use, and economics before anything else
  • Handles purchase and cash out refinance as separate question branches with different logic for each
  • Saves a session draft so an investor can return and pick up where they left off
  • One version that fits phone, tablet, and desktop
What it replaced
Directing investors to a generic application designed for salaried W2 borrowers, or sending a PDF that gets printed, filled out, scanned, and emailed back.
Status
Built and working. First product template: DSCR Investor Ninja.
Read the full decision.

The constraint

A mortgage branch that works across product types faces a presentation problem that most point of sale tools do not solve. A DSCR investor is buying a property whose rent covers the debt service. Their income is irrelevant to the underwrite. Asking them for pay stubs and an employer phone number is not just friction, it signals that the form was built for someone else. A generic application asks every borrower everything. For most of the products in a modern mortgage lineup, that is the wrong form for the person sitting in front of it.

The decision

One engine, one template per product. The alternative is a separate application for each loan type, which means duplicating the rendering logic, the session handling, the validation, and the review step every time a new product comes out. The architecture chosen here was to build the engine once and add products as templates. DSCR Investor Ninja is built on that engine as the first template. The questions in that template are about the property: type, location, use, rent, purchase or refinance, timing. The form asks nothing about the person's income, employment, identity documents, or credit history, because none of those facts are how a DSCR loan is underwritten. The next product gets the engine for free and only writes the questions.

How we build

Three moves. You see something running early.

  1. 01

    The brief

    You describe the job in your own words. We come back with the shape of it: what it does, what it touches, what it leaves alone.

    You get a brief.

  2. 02

    The first cut

    A running screen, not a slide. You click it, you break it, you tell us where it is wrong while it is still cheap to change.

    You get a running screen.

  3. 03

    Tighten and ship

    We take the notes, cut what nobody used, and put it in front of the people who have to work in it every day.

    You get a changelog.

Shipped

  1. cod3VIKING App Studio
  2. Mortgage Viking LinkedIn banner
  3. LendingNinja recruiting room in production
  4. VikingPOS shipped, DSCR Investor Ninja template 01
  5. LeadAXE marketing set rebuilt, client data protected
  6. NY condo, co op, and condotel campaign
  7. Mortgage Viking niche campaign, two flyer series
  8. LeadAXE digital field manual, version 1
  9. DataNinja live on its own domain
  10. LeadAXE in production, action first CRM
  11. DataNinja site, built from scratch
  12. Beauty Salon Operations, phone first dashboard in the salon

Portfolio

Interfaces, campaigns, and marks we drew ourselves.

all ours

The bar

Serious code for serious businesses.

  1. 01

    Human in the loop.

    Every automated message waits for a human. That is how LeadAXE was built, not a policy added on top of it. Direct sends cannot bypass the approval queue. The hold is architectural.

    LeadAXE

  2. 02

    Verified against real data.

    The tools run on real data before they ship. Beauty Salon Operations was verified against the booking system's actual figures, not a simulation. If the numbers were wrong, the dashboard was wrong and the build was not done.

    Beauty Salon Operations

  3. 03

    Runs without us.

    The tools are built to run without us. Beauty Salon Operations runs inside the salon's own accounts. VikingPOS runs on infrastructure DataNinja controls. The operation does not depend on DataNinja staying in the room.

    Beauty Salon Operations

  4. 04

    One team, start to finish.

    One team writes the engine and the first product. VikingPOS was not handed to a different group once the engine was standing. The same build that designed the rendering logic also wrote DSCR Investor Ninja. That is why the template fits the product instead of adapting the product to the template.

    VikingPOS

  5. 05

    We run what we ship.

    DataNinja runs these tools on its own businesses. LeadAXE runs the pipeline. Beauty Salon Operations runs at the salon. The bar for shipping is whether we would run it ourselves, not whether a demo holds together for twenty minutes.

    All three

Start a brief.

Start a brief.