TechsityAll work

Case study, marketing

LobeStack.

A marketing platform that studies a brand, publishes for it, and learns from what the posts actually did.

StatusLive, lobestack.com
Built byTechsity Labs, in house
ShapeWeb app, PWA, background worker
Core stackNext.js 15, Supabase, Claude

The problem

A proven market with no quality leader.

Before writing any code we tore down five products in this category: pricing pages, feature docs, funding data, and every review we could find on G2, Trustpilot, AppSumo and the BBB. Small teams in this space were already at $0.7M to $3.6M in annual revenue. Their customers were visibly unhappy. Saturation looks like happy customers and price wars, and this looked like demand outrunning quality.

The same five complaints turned up in all five products, so the market wrote our roadmap for us: generic AI content that never improves, posts that fail to publish silently, billing dark patterns, credit meters that run out mid month, and support that goes dark.

The one complaint we built the whole product around: nothing in this category learns. A tool generates the same quality of content in month eighteen as it did on day one, because nothing feeds performance back into what gets written next.

What we built

A brand goes in as a URL. What comes out is a month of posts, published on schedule, measured against revenue.

Brand study

Two minutes from a URL

Scrape the site, read the socials, pull competitor feeds, mine customer reviews for the words customers actually use. The output is a structured brand profile: voice, rules, archetype, audience, products, content pillars. Every later step reads from it, so nobody re-briefs a tool.

Swipe to approve

Approve, reject, edit, save

A deck of generated posts, each showing its target platforms and the slot it would take. Approving one assigns the next free queue slot. Rejecting one is not a delete: it is a signal, stored as a structured preference that changes the next batch.

Publishing

Eight platforms, one queue

LinkedIn, X, Instagram, Facebook, TikTok, Pinterest, Reddit and Bluesky. Calendar with drag to reschedule, approval gates before anything goes out, per platform validation on length and media before the post is ever accepted.

Measurement

Tied to money, not vanity

Daily metrics per post, best time learned from a brand's own results, tracked links and Shopify conversions so a post can be traced to revenue rather than to impressions.

Eva

The marketer in the product

A prompt bar on every screen with real control of the product, plus a comment inbox that drafts replies in the brand's register behind an approval gate. It answers questions about performance using the same data the dashboard shows.

The close

Results write the next brief

Performance and every edit or rejection are written back into the brand profile as the brief for the next batch, and pending suggestions the new signal affects get flagged for regeneration. This is the part nothing else in the category does, and it is the only reason the product gets better with use.

Inside the content engine

Nine agents, each with one job and a written contract. A post has to survive all of them.

Step one

Brand analyst and competitor scout

Builds the brand profile and reads what rivals are actually posting, so the strategy has something real to sit against.

Step two

Creative director and content engine

Plans concepts across pillars and formats, then writes each one platform native, with the awareness stage of the reader as an input.

Step three

Image designer

Most visuals are branded HTML templates typeset in the brand's own fonts and rendered to PNG. Deterministic, on brand, cheap. Photography goes through a diffusion model only when a photo is the right answer.

Step four, the review board

A marketing council sits over every batch, with a designated dissenter.

Four advisor lenses critique each post through their own documented frameworks, and one seat is required to disagree so the board cannot become a mirror. The council reports a single most valuable finding per post with the exact line to change. A flag only blocks the post when the flaw is material: wrong awareness stage, no stakes, generic and invisible, or hype that spends trust. Taste is not grounds to block.

Step five, the tell filter

One contract stops the writing from sounding generated.

A single set of hard rules is injected into every prompt that writes customer facing words: no dashes, a banned vocabulary list, no "not just this, it's that" constructions, no rule of three padding, varied sentence length, and a number or an object instead of an adjective. A post scorer runs after it. The rules apply to us too, including this page.

How we worked

Five milestones, two weeks each. Techsity was customer zero before anyone paid.

Weeks 1 to 2

Skeleton

Monorepo, auth, workspaces, design system, brand ingestion.

Weeks 3 to 4

Generate

Strategist, copywriter, template renderer, swipe deck, content grid.

Weeks 5 to 6

Publish

Provider layer, connect flows, scheduler worker, calendar. Platform app reviews started here because they are the long pole.

Weeks 7 to 8

Learn

Metrics sync, dashboard, best time learning, feedback to regeneration, Eva.

Then

Harden

Billing, failed post handling, multi workspace, white label, direct platform APIs landing one at a time.

The rule that saved us weeks

We ran Techsity's own publishing on the prototype before selling it. If it could not hold our voice, it was not shippable. Two features died that way.

The decision we would not outsource

Scheduling state stays in our database. Providers only ever hear "publish now". That single line of ownership is why a provider swap is not a customer facing event.

Stack and architecture

Everything above the attribution layer is replaceable. That was a design goal, not an accident.

Application

Next.js 15 and TypeScript

App Router, Tailwind v4, a restyled shadcn base in a shared design system package, installable as a PWA with push.

Data

Supabase Postgres, Drizzle, RLS

Row level security keyed to workspace on every table, so tenancy is enforced by the database rather than by remembering to filter a query.

Models

Claude, two tiers

The stronger model for strategy and copy, the cheap one for classification, batched where latency allows. Visuals are typeset renders rather than image prompts wherever a template will do.

Publishing

One provider interface, four backends

Connect, publish, fetch analytics, validate. An aggregator runs in production today, a second is implemented behind a flag, and direct platform APIs land one platform at a time with no UI change.

The part we own outright

The scheduler, because it is the thing customers lose trust over.

A cron tick every minute claims due posts with a locking select that skips rows another worker already holds, so two workers can never publish the same post. Every post carries an idempotency key. Failures retry three times with backoff, then surface to the user as a failed post rather than disappearing. Queue slots start as sensible per platform defaults and move toward the times a brand's own audience actually responds.

What it produces

Two images the engine made for a sample coffee roaster, from that brand's profile alone. No art direction in the loop.

Generated post, product on the scale

Generated post for a single origin release. The number on the scale is the specific detail the brief asked for.

Generated post, open at six

Same brand, opening hours post. Both sit inside the roaster's own palette and register rather than a stock template.

Drop a product screen here: swipe deck, calendar, or analytics

Where it stands

Counts from the running build. Customer and revenue figures go up when we can stand behind them publicly.

8

Platforms published to

9

Agents in the content pipeline

2 min

From a URL to a brand profile

60 s

Scheduler tick, with three retries on failure

Trust posture

No credit meter, no card for the trial, flat price per workspace. Three of the five complaints in this category are billing complaints.

In production

Live at lobestack.com, running Techsity's own marketing, operated by the people who built it.

Founder's note

Generating content was the easy half. Getting last month's results to change what the system writes next, with no human copying numbers into a brief, is where the product actually is.

Joseph AyobamiFounder, Techsity

Known gaps, written down

Four things this product does not do yet. Our own teardown found them, so they belong in the write-up.

Verify that a post went live

We record what each platform returned, but we do not yet re-check the post minutes later. Silent failure is the category's worst trust killer and this is the cheapest fix on the list.

Spokesperson video

Our video output is composed slideshow, not a person talking to camera. Two competitors do this and customers ask for it.

Launching paid campaigns

We produce ad creative and hand off. End to end campaign launch waits on platform app review, which is measured in weeks, not sprints.

Product catalogs

We read a website well. Turning a full store catalog into a content pipeline is the next real piece of work for commerce brands.

Next case study

Averil

Career software built around the candidate, never the recruiter.

Build with the lab

Want this write-up to be about your product?