12 KiB
Platform features
Catalog of public-site and client-portal capabilities for Django-based client apps. Use this when scoping proposals and building UX mockups (monica_site-style hub with a card per screen).
Stack: Django · custom client portal (not Django admin as the primary UI) · Stripe · Ollama (local LLM)
Pricing notes: Build cost = one-time setup. Monthly = ongoing platform/addon fee. Amounts below are draft placeholders — replace before sending a client quote. Third-party usage (Stripe fees, SMS segments, postcard print/postage, email sends) is billed separately unless noted.
Feature map
Public site (base)
├── Landing
├── About
└── Contact
Client portal (base — every client)
├── Login / session
├── Dashboard
├── Leads / contacts (from public forms)
└── UTM tracking & analytics ← included with every portal
Add-ons
├── Email & SMS
├── Direct mail
├── Blog
├── Payments (Stripe) ← requires Email
├── Social consolidation ← accounts, scheduling, automation
└── AI social generator ← requires Social; uses Ollama
Base (included)
1. Public site
What visitors see. Marketing surface for the business.
| Page | Purpose |
|---|---|
| Landing / home | Brand-forward hero, services/offerings, primary CTA |
| About | Story, trust, team or credentials |
| Contact | Lead capture form → creates lead/contact in portal |
System pages (recommended in mocks): 404, under construction / pre-launch.
| Build cost | Included in base project |
| Monthly | Included in base hosting / platform fee |
| Depends on | — |
UX mocks to build
| Card label | File hint | Notes |
|---|---|---|
| Public · Landing | public-home.html |
Hero, services, CTA |
| Public · About | public-about.html |
Story + trust |
| Public · Contact | public-contact.html |
Form, consent, success state |
| Public · 404 | public-404.html |
Branded error |
| Public · Under construction | public-under-construction.html |
Optional holding page |
2. Client portal + UTM tracking
Private UI the client logs into. Replaces day-to-day use of raw Django admin. UTM tracking ships with every client portal — not an add-on.
| Area | Purpose |
|---|---|
| Login | Auth for the client user |
| Dashboard | Snapshot: new leads, recent activity, health of enabled add-ons |
| Lead inbox | List/filter leads from contact form and other sources |
| Lead detail | Notes, status, UTM attribution, linked contact |
| UTM analytics | Leads by source / medium / campaign over time |
| Build cost | Included in base project |
| Monthly | Included in base platform fee |
| Depends on | Public site (for lead capture) |
UX mocks to build
| Card label | File hint | Notes |
|---|---|---|
| Portal · Login | portal-login.html |
Auth |
| Portal · Dashboard | portal-dashboard.html |
Widgets; hide/show by enabled features |
| Portal · Lead inbox | portal-leads.html |
Status, source, filters |
| Portal · Lead detail | portal-lead-detail.html |
Notes + UTM |
| Portal · UTM analytics | portal-analytics.html |
Charts by campaign/source |
Add-ons
Each add-on: one-time build + monthly fee. Mock a screen set per feature. Pricing page should let someone toggle add-ons and see totals.
3. Email & SMS integration
Transactional and marketing email; SMS campaigns / notifications. Needed by Payments for invoice/payment emails.
| Capability | Notes |
|---|---|
| Contact / mailing list | Per-channel consent (email / SMS) |
| Campaign composer | Email or SMS; recipients, schedule, send |
| Engagement reporting | Opens, clicks, bounces, unsubscribes (email) |
| Opt-out / unsubscribe | Public one-click + preference page |
| Draft | |
|---|---|
| Build cost | $___ |
| Monthly | $___ |
| Depends on | Client portal |
| Required by | Payments |
UX mocks to build
| Card label | File hint |
|---|---|
| Portal · Mailing list | portal-contacts.html |
| Portal · Import contacts | portal-contacts-import.html |
| Portal · Campaign composer | portal-campaign.html |
| Portal · Email engagement | portal-campaign-report.html |
| Public · Unsubscribe | public-unsubscribe.html |
4. Direct mail integration
Physical mail (postcards / letters): design, recipient lists, print/send vendor handoff.
| Capability | Notes |
|---|---|
| Postcard / piece designer | Sizes, front/back preview, media library |
| Recipient selection | From contacts with postcard consent |
| Send / schedule | Vendor or API integration |
| Draft | |
|---|---|
| Build cost | $___ |
| Monthly | $___ |
| Depends on | Client portal (mailing list / contacts recommended) |
| Usage | Print + postage pass-through |
UX mocks to build
| Card label | File hint |
|---|---|
| Portal · Postcard designer | portal-postcard-designer.html |
| Portal · Direct mail campaign | portal-direct-mail.html (or fold into campaign composer) |
5. Blog
Public readers view posts; client manages posts in the portal.
| Surface | Pages |
|---|---|
| Public | Blog index, post detail |
| Portal | Post list, create/edit, publish / draft |
| Draft | |
|---|---|
| Build cost | $___ |
| Monthly | $___ |
| Depends on | Public site + client portal |
UX mocks to build
| Card label | File hint |
|---|---|
| Public · Blog index | public-blog.html |
| Public · Blog post | public-blog-post.html |
| Portal · Blog list | portal-blog.html |
| Portal · Blog editor | portal-blog-edit.html |
6. Payments (Stripe)
Client creates invoices; payer gets email with pay link; Stripe handles charge. Requires Email & SMS add-on for notifications.
| Capability | Notes |
|---|---|
| Create invoice | Amount, line items, customer email |
| Email notification | Pay link / receipt via email add-on |
| Payment status | Paid / open / past due in portal |
| Stripe Customer Portal / checkout | Hosted Stripe where appropriate |
| Draft | |
|---|---|
| Build cost | $___ |
| Monthly | $___ |
| Depends on | Email & SMS (required), client portal |
| Usage | Stripe processing fees (separate) |
UX mocks to build
| Card label | File hint |
|---|---|
| Portal · Invoices | portal-invoices.html |
| Portal · Create invoice | portal-invoice-create.html |
| Portal · Invoice detail | portal-invoice-detail.html |
| Public · Pay invoice | public-pay.html (Stripe checkout / confirmation states) |
7. Social media consolidation & automation
Connect accounts, compose once, schedule/publish across networks, monitor health.
| Capability | Notes |
|---|---|
| Connected accounts | OAuth connect / reconnect / disconnect |
| Composer + live previews | FB / IG / LinkedIn (as applicable) |
| Schedule & queue | Calendar / upcoming posts |
| Automation rules | Optional: recurring or trigger-based posts |
| Draft | |
|---|---|
| Build cost | $___ |
| Monthly | $___ |
| Depends on | Client portal |
| Required by | AI social generator |
UX mocks to build
| Card label | File hint |
|---|---|
| Portal · Social accounts | portal-social-accounts.html |
| Portal · Social composer / preview | portal-social.html |
| Portal · Social calendar | portal-social-calendar.html |
8. AI social media generator
Draft captions / post variants from prompts. Runs against local LLM via Ollama. Builds on social consolidation (compose → preview → schedule on connected accounts).
| Capability | Notes |
|---|---|
| Prompt → draft | Tone, length, hashtags, variants |
| Send to composer | Hand off into social preview / schedule flow |
| Model note in UI | “Generated via local AI” (Ollama) — no cloud LLM required |
| Draft | |
|---|---|
| Build cost | $___ |
| Monthly | $___ |
| Depends on | Social media consolidation (required), Ollama available on host |
UX mocks to build
| Card label | File hint |
|---|---|
| Portal · AI social generator | portal-social-ai.html (chat assist + insert into composer) |
Pricing summary (draft)
Fill amounts before client-facing use. Interactive proposal pricing page should sum selected rows.
| Feature | Type | Build (one-time) | Monthly |
|---|---|---|---|
| Public site | Base | $300 |
$30 |
| Client portal + UTM | Base | $300 |
$30 |
| Email & SMS | Add-on | $500 |
$10 |
| Direct mail | Add-on | $500 |
$5 |
| Blog | Add-on | $500 |
$10 |
| Payments (Stripe) | Add-on | $500 |
$20 |
| Social consolidation | Add-on | $500 |
$20 |
| AI social generator | Add-on | $300 |
$20 |
| Selected add-ons | sum | sum | |
| Grand total | build + add-ons | monthly + add-ons |
Dependency rules for the pricing picker
- Selecting Payments auto-selects (or requires) Email & SMS.
- Selecting AI social generator auto-selects (or requires) Social consolidation.
- Base public site + portal + UTM always on (not toggleable off).
UX gallery structure
Mirror monica_site proposal UX hub: one hub index.html with cards grouped by feature, each card linking a click-through mock.
Suggested hub sections (eyebrows on cards):
| Section | Eyebrow pattern |
|---|---|
| Public site | Public · base |
| Client portal + UTM | Portal · base |
| Email & SMS | Portal · Email/SMS / Public · Email/SMS |
| Direct mail | Portal · Direct mail |
| Blog | Public · Blog / Portal · Blog |
| Payments | Portal · Payments / Public · Payments |
| Social | Portal · Social |
| AI social | Portal · AI Social |
| Proposal meta | Proposal · Pricing |
Proposal / sales mocks
| Card label | File hint | Notes |
|---|---|---|
| Proposal · Feature pricing | pricing.html |
Interactive checklist: toggle add-ons, enforce deps, live total (build + monthly) |
Pricing page behavior (mock)
- Always show base package line (public + portal + UTM).
- Checkboxes for each add-on with build + monthly next to label.
- Disable or auto-check dependent features with short helper text (“Requires Email & SMS”).
- Sticky or summary panel: one-time total · monthly total.
- Optional: “usage not included” disclaimer for Stripe / SMS / postage.
Mockup checklist (by feature)
Use when expanding a client proposals/<client>/mockup/ or a reusable template.
- Public: home, about, contact (+ 404 / under construction as needed)
- Portal base: login, dashboard, leads, lead detail, UTM analytics
- Email & SMS: contacts, import, campaign, report, public unsubscribe
- Direct mail: designer (+ campaign if separate)
- Blog: public index + post; portal list + editor
- Payments: invoice list/create/detail; public pay
- Social: accounts, composer/preview, calendar
- AI social: generator → composer handoff
- Hub:
index.htmlcard gallery broken out by feature - Pricing: interactive feature picker
Per-proposal layout reminder
proposals/<client-name>/
├── mockup/ # static UX screens + hub index
│ ├── index.html # feature card gallery
│ ├── pricing.html
│ ├── public-*.html
│ ├── portal-*.html
│ └── ...
└── proposal/ # written estimate; copy numbers from this file after filling $___