Custom CRMs and websites built around how your business actually runs

No templates. A CRM built around your pipeline, or a website built around your customers. See exactly how it gets built.

Start a Build
# Summit Roofing / Sales Pipeline
Pipeline Review
Today at 9:15 a.m.14 open dealsOn track
Needs attention
Proposal signed — Henderson re-roof
Rep: Marcus T.
Follow-up overdue — Northgate Plaza estimate
Rep: Priya S.

In production today

Not a demo. Real CRMs that real teams open every morning.

Every workday

in use since 2025, built from scratch around each company's process, and still shipping

6,000+

production updates shipped since 2025, in small increments the teams could see and react to

Web · iOS · Android

one codebase, on whatever device your team is actually holding

Process

How a build works

There's no big reveal at the end. You watch the CRM or website take shape as it's built, and you sign off on every screen before the code exists.

01

Discovery

A call about how your business actually runs: who sells, what a deal looks like, where the data lives today (spreadsheets, LMN, Jobber, inboxes), and what's slowing people down.

02

Written spec

Every screen is written down before it's built: exact copy, layout, behaviour and acceptance criteria, in plain English. You read it and approve it. No guessing what "a dashboard" means.

03

Build in the open

Small increments shipped continuously to a staging link you can click. If something feels wrong, it gets fixed while it's still cheap to fix.

04

Launch and keep going

Production hosting, your data in a properly structured Postgres database, and native iOS and Android apps when the team is in the field. Then it keeps evolving with the business.

How it's built

Specs, not guesses.

This is the actual shape of a build. Each feature starts as a written spec with exact strings and acceptance criteria. Then it's built to match, checked against the spec, and shipped.

neglected-accounts.spec.md
SCREEN   Neglected accounts
WHY      Surface accounts nobody has touched in 30+ days,
         before they go cold.

COPY (exact)
  Title        "Neglected accounts"
  Empty state  "Nothing neglected. Nice work."
  Row action   "Log a call"

ROWS
  Account name · last touch (relative, e.g. "41 days")
  · owner avatar · row action

BEHAVIOUR
  "Log a call" opens the interaction sheet, prefilled
  with account + type = call. Row leaves the list on save.

ACCEPTANCE
  Sidebar badge count == number of rows, always.
  List updates within 1s of logging an interaction.

Neglected accounts 3

30+ days · sorted by revenue
CR

Cedar Ridge Strata

41 days since last touch

Log a call
HP

Harbourview Properties

36 days since last touch

Log a call
NB

Northgate Business Park

31 days since last touch

Log a call

What it's built with, when it fits

  • React
  • Supabase · Postgres, auth, storage
  • Vercel
  • Capacitor · iOS & Android
  • WordPress
  • Squarespace
  • Gmail & Google Sheets
  • LMN
  • Slack
  • Meta / Instagram
  • Canva
  • AI assistants

Work

Built from scratch. Used every day.

Case study · Sales CRM

LECRM

A sales CRM for a landscaping and property-services company. It sits on top of LMN, their existing system of record, and adds the relationship, outreach and accountability layer the sales team was missing.

  • Accounts, contacts and jobsites synced from LMN
  • Multi-step outreach sequences
  • Neglected accounts, stalled proposals and outstanding RFPs surfaced automatically
  • Estimates inbox connected to Gmail
  • Rep scorecards and team-adoption tracking
  • AI chat assistant inside the CRM
  • Native iOS and Android apps for reps in the field
  • Since 2025
  • Updates shipped 4,900+
  • Platforms Web, iOS, Android
  • Stack React, Supabase, Vercel, Capacitor

Rep scorecard

This week · calls, touches, proposals
MT

Marcus T.

38 calls · 12 touches · 3 proposals

92%
PS

Priya S.

31 calls · 9 touches · 2 proposals

78%
DK

Dev K.

24 calls · 7 touches · 1 proposal

64%

Case study · Agency operations

Luxury Listings Portal

The operating system for a social-media marketing agency: client onboarding, content production, reporting and the team's HR in one place, replacing the spreadsheets it started on.

  • Client onboarding flow and a client portal with approvals
  • Content calendar with due-date tracking
  • Instagram reports with public share links
  • Sales pipeline and lead management
  • Graphic-design project tracker and workload planning
  • Time off, HR calendar and HR analytics
  • Canva, Slack and Meta integrations, plus an AI chatbot
  • Since 2025
  • Updates shipped 1,200+
  • Platform Web
  • Stack React, Supabase, Vercel

Content calendar

Week of Sep 7 · 4 clients

Mon7

ReelHarbour · 4 PM

Tue8

CarouselWestside · due
StoryHarbour

Wed9

ReelSkyline

Thu10

CarouselWestside · 11 AM
StorySkyline

Fri11

ReelMarina · 5 PM

Websites, too. The same approach works for a marketing site: a written spec, a custom design instead of a stock theme, hand-coded or on WordPress or Squarespace when that is the right fit, and a page that loads fast and looks like nobody else's. This site is one.

About

Hi, I'm Joshua.

I'm Joshua Schroeder, a developer in British Columbia, Canada. I build custom CRMs, websites and internal tools for small and mid-sized businesses, and I do the whole thing myself: discovery, spec, design, code, deployment, and the support afterwards.

You talk to the person writing the code, not an account manager. When I'm not building CRMs I'm usually building games and Minecraft mods, which is where the habit of shipping small and often comes from.

Based in
British Columbia, Canada
Working on
LECRM, Luxury Listings Portal
Stack
React, Supabase, Vercel, Capacitor, WordPress, Squarespace

FAQ

Questions people ask first

What makes it "custom"?

It's built from your process, not a template with your logo on it. Every screen is specced around how your team actually works: your stages, your fields, your words. If a feature doesn't earn its place, it doesn't get built, which is why these CRMs stay fast and people actually use them. The same goes for a website: designed for your business, whether it is hand-coded or built on WordPress or Squarespace.

Can it work with the tools we already use?

Usually. LMN, Google Sheets, Gmail, Slack, Instagram and Meta, and Canva have all been integrated in shipped builds. If your data is in a spreadsheet today, that's a normal starting point, not a problem.

Will it work on phones?

The web app is responsive from day one. When a team spends its day in the field, the same codebase ships as native iOS and Android apps, the way LECRM does.

How long does it take?

It depends on scope, and scope gets written down before anything is quoted. What's consistent is the shape: you'll see a working first version early, then continuous small releases rather than one long wait.

What does it cost?

The build is scoped in writing after the discovery call, then the software runs on a month-to-month subscription that covers hosting, support and ongoing improvements. Larger new features are scoped and quoted separately, so there are no hourly surprises.

What happens after launch?

Businesses change, so the CRM keeps changing with them. Ongoing improvements and support are part of the subscription, and both CRMs above are still shipping updates today.

Contact

Start a build.

Send a few lines about your business and what's not working. I'll come back with questions, not a pitch, and we'll go from there.

Or write directly: jrsschroeder@gmail.com