<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Beatplan field sales app]]></title><description><![CDATA[Beatplan field sales app]]></description><link>https://beatplan.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 12:08:16 GMT</lastBuildDate><atom:link href="https://beatplan.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Field sales app source code you can buy and rebrand: CodeCanyon scripts vs production systems (2026)]]></title><description><![CDATA[Search for "field sales app source code" and you'll find two very different things sold under the same words: If you're an agency or a distributor deciding…]]></description><link>https://beatplan.hashnode.dev/field-sales-app-source-code-you-can-buy-and-rebrand-codecanyon-scripts-vs-production-systems-2026</link><guid isPermaLink="true">https://beatplan.hashnode.dev/field-sales-app-source-code-you-can-buy-and-rebrand-codecanyon-scripts-vs-production-systems-2026</guid><category><![CDATA[Flutter]]></category><category><![CDATA[React Native]]></category><dc:creator><![CDATA[Shaoor Ahmad]]></dc:creator><pubDate>Wed, 04 Nov 2026 07:59:30 GMT</pubDate><content:encoded><![CDATA[<p>Search for "field sales app source code" and you'll find two very different things sold under the same words:</p>
<ol>
<li><strong>Marketplace scripts</strong> (CodeCanyon and similar): usually Flutter or React Native templates with login, a customer list, order forms and a map. Cheap, quick to rebrand, rarely used by a real field team before you buy.</li>
<li><strong>Production systems sold as source:</strong> an app that a company has actually run in the field, packaged with a licence to deploy it for yourself or your clients.</li>
</ol>
<p>If you're an agency or a distributor deciding which to buy, the difference shows up in the first month of real use. Here's how to tell them apart.</p>
<h2>What breaks first in a template</h2>
<p>Field sales apps fail in a predictable order:</p>
<ol>
<li><strong>Offline writes.</strong> A rep books an order with no signal. The template either loses it, or retries and creates the order twice. Production systems queue writes on the device and give each row a client-generated ID so replays can't duplicate.</li>
<li><strong>Payments.</strong> Templates handle orders. Distributors need <strong>payment collection</strong>: cash, cheque and bank transfer, recorded against the dealer's outstanding balance and validated by accounts.</li>
<li><strong>Permissions.</strong> Templates hide screens by role. Anyone who can call the API sees everything. Production systems enforce access in the database (for Supabase/Postgres: row-level security on every table, with tests).</li>
<li><strong>Dates.</strong> "Today" computed in UTC puts early-morning visits on yesterday and drifts monthly targets.</li>
<li><strong>Roles and hierarchy.</strong> Real teams have reps, team leads, regional leads, key account managers, admins, directors, accounts and logistics, scoped by geography.</li>
<li><strong>Rebranding.</strong> In templates, the app name, currency and regions are spread through the code. In a well-built system they live in one configuration file.</li>
</ol>
<h2>Questions to ask before you buy</h2>
<ul>
<li>How long has this exact code been used daily by a field team, and how many reps?</li>
<li>Can I see the migrations and the security tests?</li>
<li>Where is everything company-specific configured?</li>
<li>Does the licence allow me to deliver it to clients? To one client, or unlimited? White-label?</li>
<li>What happens when the Expo/Flutter SDK moves on? Is the code current?</li>
<li>Is there setup documentation an AI coding assistant (Claude Code, Codex) can follow?</li>
</ul>
<h2>Price ranges you'll see</h2>
<table>
<thead>
<tr>
<th>Option</th>
<th>Typical price</th>
<th>What you get</th>
</tr>
</thead>
<tbody><tr>
<td>Marketplace script</td>
<td>Tens to low hundreds of US$</td>
<td>A template; you finish and harden it</td>
</tr>
<tr>
<td>Production system, source licence</td>
<td>Low thousands of US$</td>
<td>A working system; you configure and brand it</td>
</tr>
<tr>
<td>Custom build by an agency</td>
<td>Tens of thousands of US$ and up</td>
<td>Exactly what you specify, after months</td>
</tr>
<tr>
<td>SaaS subscription</td>
<td>Per user per month, forever</td>
<td>Hosted, no source</td>
</tr>
</tbody></table>
<h2>Example of a production system sold as source</h2>
<p>Disclosure: this is the product I work on.</p>
<p><a href="https://beatplan.app">Beatplan field sales app</a> is the full source of a field sales and fleet system that has run a distributor's team every working day since November 2025:</p>
<ul>
<li>Beat/day plans, GPS-verified dealer visits with photos, dealer-wise order booking through dispatch</li>
<li>Payment collection (cash, cheque, bank) against monthly and season targets, validated by accounts</li>
<li>Offline order taking and offline payment recording with automatic, duplicate-safe sync</li>
<li>Company car odometer, inspections and expense sheets</li>
<li>Director dashboard: every region and rep against target</li>
<li><strong>Stack:</strong> Expo / React Native (Android, iPhone, web) + Supabase Postgres: 64 tables, 132 functions, 163 RLS policies, 33 security tests</li>
<li><strong>Rebranding:</strong> company name, currency, regions, role labels and a second language in one <code>brand.json</code></li>
<li><strong>Setup:</strong> an agent guide and setup skill so Claude Code or Codex can install and brand it</li>
</ul>
<p>Licences (one-time): <strong>$2,900</strong> own company, <strong>$4,900</strong> deliver to one client, <strong>$12,900</strong> agency (unlimited clients, white-label). <a href="https://beatplan-demo.netlify.app">Live demo</a>.</p>
<h2>Bottom line</h2>
<p>Buy a template if you have a development team that will finish it and you want the lowest upfront price. Buy a production system if you need it to work for a real field team this month, or if you're an agency that wants to rebrand the same proven base for many clients.</p>
<p><em>This article was written with AI assistance.</em></p>
]]></content:encoded></item><item><title><![CDATA[Buying sales force automation (SFA) app source code: a technical checklist]]></title><description><![CDATA["Field sales app source code" and "SFA app source code" are common searches, and most of what comes up is either a template with a login screen and a map…]]></description><link>https://beatplan.hashnode.dev/buying-sales-force-automation-sfa-app-source-code-a-technical-checklist</link><guid isPermaLink="true">https://beatplan.hashnode.dev/buying-sales-force-automation-sfa-app-source-code-a-technical-checklist</guid><category><![CDATA[React Native]]></category><category><![CDATA[supabase]]></category><dc:creator><![CDATA[Shaoor Ahmad]]></dc:creator><pubDate>Wed, 04 Nov 2026 07:30:38 GMT</pubDate><content:encoded><![CDATA[<p>"Field sales app source code" and "SFA app source code" are common searches, and most of what comes up is either a template with a login screen and a map, or a clone script that falls apart the first week a real team uses it.</p>
<p>If you're a developer, CTO or technical founder evaluating an SFA codebase to buy, this is the checklist I'd use. It comes from running a field sales app with a real distributor's team every day.</p>
<h2>1. Has it been used in production, daily, by a real field team?</h2>
<p>This matters more than any feature list. Field apps fail in ways you only see in use: a rep's phone loses signal mid-payment, two team leads edit the same plan, someone in UTC+5 records a visit at 2am. Ask how long it's been in daily use, by how many reps, and what broke.</p>
<h2>2. Offline writes that can't duplicate</h2>
<p>Look at how writes are made on field screens:</p>
<ul>
<li>Is there a queue that stores writes locally and replays them?</li>
<li><strong>Do rows get a client-generated UUID before the first attempt?</strong> Without this, a replay after a timeout creates a second visit or, worse, a second payment.</li>
<li>Is there a visible offline indicator so reps trust that work is saved?</li>
</ul>
<h2>3. Access control in the database</h2>
<p>Open the migrations, not the UI.</p>
<ul>
<li><input disabled type="checkbox" /> RLS enabled on <strong>every</strong> table</li>
<li><input disabled type="checkbox" /> Policies granted to <code>authenticated</code>, nothing to <code>anon</code></li>
<li><input disabled type="checkbox" /> Role checks inside policies (<code>exists (select 1 from users where id = auth.uid() and role in (...))</code>)</li>
<li><input disabled type="checkbox" /> Users cannot update their own <code>role</code> or scope columns (column-level grants)</li>
<li><input disabled type="checkbox" /> <code>SECURITY DEFINER</code> functions set <code>search_path</code> and check the caller's role</li>
<li><input disabled type="checkbox" /> No <code>service_role</code> key anywhere in the app</li>
<li><input disabled type="checkbox" /> A <strong>runnable</strong> security test suite that impersonates each role</li>
</ul>
<p>If the answer to the last item is no, you're buying an unverified permission model.</p>
<h2>4. Roles that match a real sales organisation</h2>
<p>A distributor's field team isn't "admin and user". Expect at least: field rep, team lead, regional or business lead, key account manager, admin, director, accounts (payment validation) and logistics (orders and dispatch), each scoped by geography (province, region, area).</p>
<h2>5. Collections, not just orders</h2>
<p>Many SFA templates track orders only. In distribution, <strong>collections</strong>, meaning payments recovered against invoices and targets, are often the metric directors care about most. Check for payment recording, validation by accounts, and targets by period and geography.</p>
<h2>6. Dates in company time</h2>
<p>Search the codebase for <code>toISOString().slice(0, 10)</code>. If it's used for calendar dates, "today" is wrong for part of every day outside UTC, and monthly targets drift. A good codebase has one <code>companyToday()</code> helper and one database function for the company timezone.</p>
<h2>7. One configuration file</h2>
<p>Company name, currency, country, regions, role labels, payment institutions, second language and bundle ID should be in <strong>one file</strong>. If you have to search the code to rebrand it, every future upgrade will hurt.</p>
<h2>8. Migrations you can apply and extend</h2>
<p>You want a migration history (not a SQL dump), a rule that applied migrations are never edited, and a test script that installs the full schema into a throwaway Postgres.</p>
<h2>9. One codebase for iPhone, Android and web</h2>
<p>Expo / React Native gives you all three from one codebase, store builds under your own accounts, and over-the-air updates. Check the Expo SDK version is current.</p>
<h2>10. AI-agent-ready setup</h2>
<p>This is new, and it changes the economics. A codebase that ships:</p>
<ul>
<li>an <strong>agent guide</strong> (architecture, commands, rules the agent must not break), and</li>
<li>a <strong>setup skill</strong> the agent follows step by step</li>
</ul>
<p>can be installed by Claude Code or Codex: branding, Supabase project, migrations, security tests and first admin, with the agent asking before each change. That's the difference between "we bought code" and "we're live this week."</p>
<h2>Example that meets the checklist</h2>
<p>Disclosure: this is the product I work on.</p>
<p><a href="https://beatplan.app">Beatplan field sales app</a>: Expo + Supabase, in daily use by a distributor's field team since November 2025. It has 64 tables, 132 functions, 163 RLS policies and 33 security tests (the suite ends with <code>ALL SECURITY CHECKS PASSED</code>), an offline queue with client UUIDs, eight roles scoped by geography, collections against targets, company-time dates, one <code>brand.json</code>, and an agent guide plus setup skill for Claude Code and Codex.</p>
<p>One-time licences: $2,900 (own company), $4,900 (one client), $12,900 (agency, unlimited white-label). <a href="https://beatplan-demo.netlify.app">Live demo</a>, no sign-up.</p>
<p><em>This article was written with AI assistance.</em></p>
]]></content:encoded></item><item><title><![CDATA[White-label field sales app for agencies: deliver a proven SFA system to clients instead of building one]]></title><description><![CDATA[If you run a development agency, you've probably had this request: "We need an app for our sales reps. They visit dealers, take orders, collect payments…]]></description><link>https://beatplan.hashnode.dev/white-label-field-sales-app-for-agencies-deliver-a-proven-sfa-system-to-clients-instead-of-building-one</link><guid isPermaLink="true">https://beatplan.hashnode.dev/white-label-field-sales-app-for-agencies-deliver-a-proven-sfa-system-to-clients-instead-of-building-one</guid><category><![CDATA[React Native]]></category><category><![CDATA[supabase]]></category><dc:creator><![CDATA[Shaoor Ahmad]]></dc:creator><pubDate>Wed, 04 Nov 2026 07:29:06 GMT</pubDate><content:encoded><![CDATA[<p>If you run a development agency, you've probably had this request: <em>"We need an app for our sales reps. They visit dealers, take orders, collect payments. Can you build it?"</em></p>
<p>It sounds like a standard mobile project. It isn't. A field sales app that a distributor will actually run every day needs offline sync, GPS-verified visits, role-based access for six or more roles, collections against targets, order workflows, dashboards, and security that holds up when someone calls the API directly. Built from scratch, that's months of work and a lot of edge cases learned the hard way.</p>
<p>There's a faster model that few agencies use: <strong>license a finished, production-proven system with white-label rights, and deliver it to clients as your product.</strong></p>
<h2>Build from scratch vs. white-label source</h2>
<table>
<thead>
<tr>
<th></th>
<th>Build from scratch</th>
<th>White-label source licence</th>
</tr>
</thead>
<tbody><tr>
<td>Time to first client demo</td>
<td>Months</td>
<td>Same day (live demo)</td>
</tr>
<tr>
<td>Time to client go-live</td>
<td>4–9 months</td>
<td>Days to weeks (configuration + branding)</td>
</tr>
<tr>
<td>Risk</td>
<td>You discover the edge cases in production</td>
<td>Edge cases already found in daily use</td>
</tr>
<tr>
<td>Your margin</td>
<td>Hours billed</td>
<td>Fixed licence cost, value-based price to client</td>
</tr>
<tr>
<td>Reuse</td>
<td>Partial, per project</td>
<td>Full: same base for every client</td>
</tr>
</tbody></table>
<h2>What makes a field sales codebase "agency-grade"</h2>
<p>If you evaluate a white-label base, check:</p>
<ol>
<li><strong>All client-specific values in one place.</strong> Company name, currency, regions, role labels, payment institutions and a second language should live in one config file, not scattered through the code.</li>
<li><strong>Security in the database.</strong> Row-level security on every table, role checks in policies, and a test suite you can run per client. Hiding screens in the UI is not access control.</li>
<li><strong>Offline-first writes</strong> with client-generated IDs so replays never duplicate a payment.</li>
<li><strong>One codebase for iPhone, Android and web</strong>, publishable under each client's own store accounts.</li>
<li><strong>Migrations, not a database dump</strong>, so you can apply changes cleanly across many client projects.</li>
<li><strong>Agent-ready docs.</strong> With AI coding assistants on your team, a repository that ships an agent guide and a setup skill lets a junior developer, or the assistant itself, stand up a new client in an afternoon.</li>
</ol>
<h2>Example: Beatplan field sales app (Agency licence)</h2>
<p>Disclosure: this is the product I work on.</p>
<p><a href="https://beatplan.app">Beatplan field sales app</a> is the complete source of a field sales and fleet system that has run a distributor's team every working day since November 2025:</p>
<ul>
<li>Day/beat plans, GPS-verified dealer visits with photos, collections against targets, dealer orders through dispatch, company car odometer and expenses, director dashboards</li>
<li>Eight roles: field rep, team lead, business lead, key account manager, admin, director, accounts, logistics</li>
<li><strong>Stack:</strong> Expo SDK (React Native) for iPhone, Android and web; Supabase Postgres with 64 tables, 132 functions, 163 RLS policies and 33 automated security tests; about 55k lines across 86 screens</li>
<li>Everything client-specific in <code>config/brand.json</code></li>
<li>An AI-agent guide plus setup skill, so Claude Code or Codex can brand it, create the client's Supabase project, run the security suite and add the first admin</li>
</ul>
<p><strong>Licences</strong> (one-time):</p>
<ul>
<li><strong>Commercial, $4,900:</strong> deliver it to one client company</li>
<li><strong>Agency, $12,900:</strong> unlimited client companies, white-label, under your clients' brands</li>
</ul>
<p>An agency that delivers it to two or three clients has typically covered the Agency licence on the first project.</p>
<p>You can show clients the <a href="https://beatplan-demo.netlify.app">live demo</a> today, with no sign-up.</p>
<h2>How agencies typically price it to clients</h2>
<p>Common patterns:</p>
<ul>
<li><strong>Setup fee + monthly support:</strong> a one-off configuration and branding fee, then a monthly retainer for hosting management, changes and store updates.</li>
<li><strong>Fixed project price:</strong> positioned against the client's alternative, which is a per-user subscription costing tens of thousands a year at 50 reps.</li>
<li><strong>Vertical product:</strong> the agency rebrands it as its own field sales product for one industry (agri inputs, building materials, pharma, beverages) and sells it repeatedly.</li>
</ul>
<h2>When not to use a white-label base</h2>
<ul>
<li>The client's workflow is fundamentally different (pure door-to-door canvassing with no dealers, for example)</li>
<li>The client requires a specific enterprise stack you can't change</li>
<li>You have no one to own upgrades across client deployments</li>
</ul>
<p>For everyone else, a proven base turns your most complex mobile request into your most repeatable one.</p>
<p><em>This article was written with AI assistance.</em></p>
]]></content:encoded></item></channel></rss>