Why Indie Arms Exists
Back to Indie Arms -- Features -- Use Cases -- Themes
Your Storefront, Not Ours
Most e-commerce platforms rent you a storefront. Shopify charges monthly. Gumroad takes a cut. Every marketplace sits between you and your customer, skimming margin and owning the relationship.
Indie Arms is different. You buy it, deploy it on your server, and it's yours. Your domain, your brand, your customer data. The storefront is a single binary that talks to your Indie Legs server -- no external dependencies, no third-party JavaScript, no analytics beacons phoning home.
Every Decision Is a Customer Advantage
Per-Customer Database Isolation
Every customer gets their own SQLite database file. Not a shared table with a customer_id column -- a completely separate database identified by a hashed filename. If one customer's data gets corrupted (it won't, but if), the other customers are unaffected. If you need to export a single customer's data for a GDPR request, it's one file.
This is slower than a shared database for aggregate queries. We made that tradeoff deliberately. Privacy by architecture beats privacy by policy.
Single Binary, Everything Embedded
Templates, CSS, JavaScript, images, content -- it's all compiled into the binary. No runtime dependencies on a node_modules folder, no CDN, no build step on deploy. Copy the binary to your server, set a few environment variables, and start it. That's the deployment.
Upgrades are the same: stop the old binary, copy the new one, start it. No migration scripts, no database schema changes to worry about (SQLite handles that internally on startup).
White-Label Without Compromise
Indie Arms is designed to be your storefront, not an Aequo Labs storefront. Encrypted customization overlays let you replace any template, any page, any asset. Your customers see your brand, your content, your domain. There's no "Powered by" footer, no watermark, no forced branding.
Six homepage themes, two catalog layouts, three content page themes, customizable navbar and accent colors, logo and favicon upload, and a homepage content editor with live preview -- all configurable from the admin panel without touching code.
We sell the tool. What you build with it is entirely yours.
Built-In Compliance
CCPA/CPRA (Do Not Sell, data deletion), CAN-SPAM dashboard, CASL consent tracking, and VAT/GST tax calculation for digital products. Privacy compliance is built in, not bolted on.
Perpetual License
Same model as Indie Legs. Buy once, deploy forever. 2 years of updates included. If we stop making Indie Arms better, you stop paying for updates. Your storefront keeps running regardless.
The Stack
graph TD
subgraph Customer Facing
A[Web Browser] -->|HTTPS| B[Caddy Reverse Proxy]
B --> C[Indie Arms - Storefront Port]
end
subgraph Admin
D[Admin Browser] -->|HTTPS| B
B --> E[Indie Arms - Admin Port]
end
subgraph Backend
C -->|REST API| F[Indie Legs Server]
C -->|Per-Customer SQLite| G[Customer Databases]
C -->|Stripe API| H[Stripe Checkout]
end
E -->|Manage| G
F -->|License Data| I[License Store]
Indie Arms separates the customer-facing storefront and admin panel onto different ports (9184 and 9185 by default). The storefront port handles product browsing, cart, checkout, customer accounts, documentation, support tickets, and downloads. The admin port handles customer management, content editing, discount configuration, support ticket responses, and order fulfillment. An API explorer is available on the admin panel.
Both ports run from the same binary. Caddy (or any reverse proxy) routes traffic to the right port based on subdomain or path.
Compliance Built In
Self-hosted storefronts that take customer data need compliance plumbing -- not a footer disclaimer:
- GDPR -- Account-level data wipe on deletion, consent tracking with source/method/page, no third-party trackers required.
- CCPA -- Consumer deletion-request workflow built in.
- CASL -- Canadian Anti-Spam consent tracking, audited per record.
- PCI scope reduction -- Stripe Checkout handles card data; nothing sensitive lands on your server.
Who It's For
Indie Arms is built for software vendors who want to own their sales channel. If you're selling 1-5 products and you don't want to hand 30% to an app store or pay monthly for a storefront you don't control, this is your tool.
It pairs with Indie Legs for the complete stack: license generation, validation, and distribution on the backend; product catalog, checkout, and customer portal on the frontend. Both self-hosted, both perpetual, both yours.
Content for this section has not been authored yet.
Who Uses Indie Arms?
Indie Arms is the customer-facing storefront that turns Indie Legs into a complete sales channel. If you have software to sell and you want your customers to buy it from your domain, see your branding, and never leave your site -- this is your tool.
Back to Indie Arms -- Features -- Themes
The Solo Developer Who Just Wants to Sell Their Software
You finished the product. People are asking how to buy it. You don't want to point them to a Gumroad page that looks like everyone else's, and you don't want to spend three months building your own e-commerce site.
Indie Arms gives you a real storefront in an afternoon. Pick a theme, add your logo, write your homepage in markdown, point Stripe at your webhook URL, and start selling.
You'll use:
- One of six homepage themes
- Custom logo and accent colors
- Markdown content pages for About, Terms, Privacy
- Stripe Checkout integration
- Customer accounts with self-service license retrieval
The Bootstrapped SaaS-Replacement Vendor
Your product is a downloadable alternative to a SaaS tool. Your customers want the privacy of running it themselves. They expect a professional buying experience anyway -- nobody trusts a half-built checkout page with their credit card.
Indie Arms gives you the polished checkout experience customers expect, with the self-hosted ethos that matches your product positioning. Same trust signals as a major SaaS, none of the hosted dependencies.
You'll use:
- Stripe Checkout (the most-trusted checkout flow in the world)
- Custom domain with TLS via Caddy
- Customer accounts with OAuth (Google / GitHub / Microsoft)
- Product documentation hosted alongside the storefront
- Dark mode for your developer-heavy customer base
The Multi-Product Software Studio
You sell several related products. You want them in one storefront, with shared customer accounts, cross-product discounts, and a unified support inbox.
Indie Arms shows your full Indie Legs catalog as one storefront. Customers create one account, see all their licenses across all your products, and access documentation for everything in one place.
You'll use:
- Catalog grid layout for browsing multiple products
- Customer accounts that span all your products
- Discount codes that apply across products
- Per-product documentation in one doc browser
- Support tickets routed to the right team
The Open Source Project With a Commercial Edition
You ship an open source product and a commercial edition with extras. You want a clean storefront for the commercial side without breaking the trust your OSS users have in your project.
Indie Arms supports both modes simultaneously. The OSS download is unauthenticated and free. The commercial edition is gated by purchase. Same product page, different paths for different customers.
You'll use:
allow_unlicensed_downloadtoggle in the product catalog- Free downloads for OSS users
- Paid checkout flow for commercial customers
- Differentiated documentation for each tier
The Privacy-First Vendor
Your customers care about privacy. Maybe you sell to journalists, security researchers, or activists. Maybe you sell into regulated industries. The standard e-commerce stack is not OK -- third-party JavaScript, tracking pixels, and customer data flowing to a half-dozen vendors are dealbreakers.
Indie Arms is the e-commerce platform you actually want. No third-party JavaScript. No tracking beacons. Per-customer database isolation so one customer's data is physically separated from another's. GDPR account deletion is removing one file.
You'll use:
- Per-customer SQLite databases (your isolation guarantee)
- No CORS, no third-party scripts (architectural, not a setting)
- GDPR data export and deletion built in
- CCPA / CPRA Do Not Sell page
- Cookie consent management
- Self-hosted deployment on infrastructure you control
The B2B Vendor Selling to Procurement Teams
Your enterprise customers want invoices, purchase orders, and federated login so their employees aren't managing another password.
Indie Arms supports federated login via Google, GitHub, Microsoft, Amazon, and a generic OAuth provider for custom IdPs. Combined with Indie Legs Enterprise (with EDI and 810 invoice generation), you cover most of what a B2B procurement team needs.
You'll use:
- OAuth-based customer sign-in (Google / GitHub / Microsoft / Amazon / custom)
- Per-customer account isolation
- EDI in/out from the Indie Legs backend
The Hardware + Software Vendor
You sell a physical device and the software that runs on it. Customers need to order the hardware, get a tracking number, and have the software license waiting for them when the device arrives.
Indie Arms Professional handles hybrid product fulfillment alongside Indie Legs Professional. The same checkout that ships the hardware generates the software license. Customers see their order status, tracking number, and license key in one customer portal.
You'll use:
- Hybrid product type support (physical + license)
- Order tracking with shipping status
- License keys delivered when hardware ships
- Customer support tickets for hardware questions
- Documentation hosted alongside the product
Where Indie Arms Doesn't Fit
Honest about the limits:
- You want a SaaS storefront with no infrastructure to run. Indie Arms is self-hosted. Use Shopify or Gumroad.
- You're selling thousands of SKUs across multiple categories. Indie Arms is built for software vendors with a focused catalog (1-50 products). For high-SKU general retail, use a dedicated e-commerce platform.
- You need built-in physical inventory management at warehouse scale. Indie Arms does fulfillment workflow but not warehouse management. For pallet-level inventory, use a WMS.
- Your business model requires a marketplace with multiple sellers. Indie Arms is single-vendor.
Content for this section has not been authored yet.
Content for this section has not been authored yet.
Themes & Customization
Indie Arms is built to be your storefront, not an Aequo Labs storefront. Every visual element can be configured from the admin panel without touching code. When you need to go further, encrypted customization overlays let you replace any template, asset, or page entirely.
Back to Indie Arms -- Features -- Use Cases
Six Homepage Themes
Each theme is a different take on what a software storefront homepage should look like. Pick one in the admin panel; switch any time without losing content.
| Theme | Best For |
|---|---|
| Classic | Traditional layout with hero, featured products, and footer. The default. Works for almost everything. |
| Hero | Large hero image / video, single product or use case in focus. Best for one flagship product. |
| Magazine | Editorial layout with article-style product introductions. Best for content-heavy positioning. |
| Throwback | Mid-2000s software vendor aesthetic. For when the vibe is "this is serious software." |
| Showcase | Image-forward layout that puts product visuals first. Best for tools with strong visual identity. |
| Landing | Single long-scroll landing page with sections for features, testimonials, pricing, FAQ. Best for a focused conversion funnel. |
Switching themes never breaks your content. Markdown pages, products, and customizations carry over.
Two Catalog Layouts
Browse-the-catalog pages have two layout options:
| Layout | Best For |
|---|---|
| List | Detailed product entries with longer descriptions. Best for B2B buyers who read before clicking. |
| Grid | Compact card-based layout with images and short descriptions. Best for browsing and comparison. |
Three Content Page Themes
Markdown content pages (About, Terms, Privacy, custom pages) get their own theme system:
| Theme | Best For |
|---|---|
| Classic | Traditional document layout with sidebar navigation. Best for documentation-heavy content. |
| Clean | Centered single-column with generous whitespace. Best for marketing and brand pages. |
| Hero | Large header image with content below. Best for visually-driven pages like product launches. |
Branding Controls
Every theme respects your brand:
| Setting | Where |
|---|---|
| Logo upload | Admin panel -- supports SVG, PNG, JPEG |
| Favicon upload | Admin panel -- supports ICO, PNG |
| Navbar color | Choose from presets or any custom hex |
| Accent color | Used for buttons, links, focus states |
| Dark mode | Automatic via system preference + manual toggle for users |
| Font family | Choose from a curated set of self-hosted fonts (no Google Fonts requests) |
All branding is applied without page reloads. Preview in the admin panel before publishing.
Live Homepage Editor
Edit your homepage content in markdown with live preview. Save publishes immediately.
The editor supports:
- Standard markdown (headings, lists, links, emphasis)
- Mermaid diagrams for architecture / flow visualization
- Code blocks with syntax highlighting
- Embedded product cards (auto-rendered from your Indie Legs catalog)
- Template variables (
{{ "{{" }} .StoreName {{ "}}" }},{{ "{{" }} .SupportEmail {{ "}}" }}, etc.) - Custom CSS classes for advanced layouts
Encrypted Customization Overlays
For deeper customization than the admin panel allows, Indie Arms supports encrypted customization bundles -- ZIP files containing branding assets, content pages, and template overrides.
What you can override:
- Any HTML template (header, footer, product page, checkout, customer portal)
- Any CSS file
- Any image asset
- Any markdown content page
- Configuration values like store name, contact emails, footer links
How it works:
- Build your overlay locally as a ZIP file
- Encrypt it with your storefront password
- Deploy the encrypted bundle alongside your Indie Arms binary
- Indie Arms decrypts and loads the overlay on startup
The encryption keeps your branding portable but private -- the bundle can sit in source control or pass through CI without exposing the contents to anyone without the decryption key.
See the deployment guide for the build and deployment workflow.
What You Can't Customize
Honest about the limits:
- Core checkout flow. The Stripe Checkout integration uses Stripe's hosted checkout page. You can theme it through the Stripe dashboard but the page itself is on Stripe's domain.
- Customer authentication flow. OAuth providers (Google, GitHub, Microsoft) use their own consent pages. You can't theme those.
- Email delivery infrastructure. You configure SMTP or a transactional email provider; we don't reimplement SendGrid or Postmark.
Everything else is yours to change.
White-Label Deployment
Standard, Professional, and Enterprise editions include white-label deployment -- there is no "Powered by Aequo Labs" footer, no watermark, no forced branding anywhere. Your customers see your store, not our store.
The product is designed for this. We don't sell visibility on customer storefronts.
Custom HTML Templates (Professional+)
When the built-in themes aren't enough, Professional and Enterprise editions allow custom HTML template overrides. Replace any template in the system -- the homepage, the product page, the customer portal, the email layouts -- with your own.
Custom templates use Go's html/template syntax with full access to:
- Product data from Indie Legs
- Customer data (in customer-facing templates)
- Order data (in checkout and account templates)
- Theme configuration values
- Localization functions
Template overrides ship in your customization overlay and are loaded on startup.
Custom JavaScript (Professional+)
For interactive features beyond what built-in components provide, Professional and Enterprise editions support custom JavaScript injection. The injection points are explicit -- you choose where in the page lifecycle your code runs.
Important: No third-party JavaScript by default. Indie Arms doesn't include analytics scripts, fonts loaded from external CDNs, or tracking beacons. If you add custom JavaScript, it's your code from your domain. Your privacy promises stay intact.
Multi-Language Content (Professional+)
Professional and Enterprise editions support multi-language content for international audiences. Provide markdown files for each supported language; Indie Arms serves the right one based on the visitor's Accept-Language header or an explicit language switcher.
Translation is your responsibility -- we don't auto-translate. But the infrastructure for serving translated content is built in.