Risemi

AI prompts and skills for founders (2026)

For founders doing several jobs at once, from the first build to the first customers.

18 skills · 37 prompts and packs · 11 free · written and tested in-house · Filter in the catalog

Most products on Risemi are tagged for founders, because early on one person writes the code, the copy and the investor update. Rather than browse everything, start from the job in front of you this week.

Building: the Vibe-Coding Starter Kit goes from picking a tool to adding payments and shipping, and Pre-Launch Security Review checks for the mistakes that get small apps breached in month one. Selling: Cold Email Built on a Trigger Event, Landing Page Copy Kit and Product Launch Kit, which runs from validation page to week-one retro.

Running: Chief-of-Staff Weekly Briefing turns your numbers into three priorities, and CAC Spike Diagnosis helps when acquisition costs jump. Narrow down further on the marketing or coding hubs.

Founder skills

Use case: Product teaser (template 1)

| Element | Value |
|---|---|
| Subject | A matte black ceramic pour-over coffee dripper with a thin polished copper rim, sitting on a clear glass carafe |
| Action | 1) A thin stream of dark coffee trickles from the dripper into the carafe while soft steam curls up from the rim; 2) the dripper and carafe turn a slow quarter turn; 3) the final second holds still on the dripper's front, copper rim catching the light |
| Scene | A walnut kitchen counter by a window, early morning just after sunrise, a faint haze of steam in the air, uncluttered background |
| Angle / Move | Vertical close-up at counter height, slightly above eye level / slow dolly in |
| Lens | 85mm-style telephoto feel, shallow depth of field, kitchen background in soft bokeh |
| Light / Palette / Mood | Soft low-angle morning sunlight from a window on the left with gentle fill and a warm rim on the copper / matte black, warm copper, honey-brown walnut, soft cream highlights / calm, quiet, unhurried |
| Style / Time | Premium commercial look, photorealistic / real-time pace, steady trickle throughout, still hold in the last second |
| Audio | Close, clear coffee trickling into glass, a faint soft drip, quiet low morning room tone, no music |
| Negative | text, logos, letters, labels, hands, people, clutter, reflections of people, plastic look |

Final prompt (paste into Veo / Gemini / Flow):

Premium commercial look, photorealistic, vertical close-up at counter height of a matte black ceramic pour-over coffee dripper with a thin polished copper rim, sitting on a clear glass carafe on a walnut kitchen counter by a window in the early morning just after sunrise. A thin stream of dark coffee trickles from the dripper into the carafe while soft steam curls up from the rim, and the dripper and carafe turn a slow quarter turn. Slow dolly in, 85mm-style telephoto feel, shallow depth of field with the kitchen background in soft bokeh. Soft low-angle morning sunlight from a window on the left with gentle fill and a warm rim light catching the copper, palette of matte black, warm copper, honey-brown walnut and soft cream highlights, calm and quiet mood. Real-time pace; the final second holds still on the dripper's front.
Audio: close, clear sound of coffee trickling into a glass carafe, a faint soft drip, quiet low morning room tone, no music.
Negative prompt: text, logos, letters, labels, hands, people, clutter, reflections of people, plastic look

Settings: 9:16, 8 seconds, audio on.
SkillTextPro
  • ChatGPT
  • Claude
  • Gemini
  • +1
Marketing

Prompt Anatomy for Veo

Use it to turn a rough video idea into a structured Veo prompt with a filled anatomy table, camera, lens, light, audio and a negative prompt.

0 installs
$7.99
> Assumption: signed-in users read their own orders and create their own orders as `pending`; every status change after that is made by your server with the `service_role` key, never by the browser.

Audit: `public.orders` (about 1.8M rows)

Rule files applied: `security-rls-basics`, `security-rls-performance`, `security-privileges`, `schema-foreign-key-indexes`, `query-missing-indexes`, `query-composite-indexes`, `schema-data-types`, `schema-constraints`, `lock-short-transactions`, `monitor-explain-analyze`.

Findings, by rule (first 6 of 12)

| # | Severity | Rule | Finding |
|---|---|---|---|
| 1 | CRITICAL | `security-rls-basics` | `orders_insert ... with check (true)` lets anyone who can insert write an order for any `user_id`. Combined with finding 2, an anonymous visitor holding only your public anon key can create orders on behalf of any user. |
| 2 | CRITICAL | `security-privileges` | `grant select, insert, update ... to anon`. Orders belong to signed-in users, so `anon` needs no privilege at all. None of the three policies has a `to` clause, so each applies to every role, including `anon`. |
| 3 | HIGH | `security-privileges` | `authenticated` can `update` every column of its own rows: the owner can still run `update orders set status = 'paid', total_cents = 1` from the browser. |
| 4 | HIGH | `security-rls-basics` | The insert path also trusts `status`: a client can insert a row that is already `status = 'paid'`. |
| 5 | HIGH | `security-rls-performance` | All policies call `auth.uid()` bare, so it is evaluated per row. Wrap it as `(select auth.uid())` so it is evaluated once per statement. |
| 6 | HIGH | `schema-foreign-key-indexes`, `query-missing-indexes` | No index on `user_id`. It is the foreign key, the RLS filter column and the column every "my orders" query filters on. Each RLS-filtered select over 1.8M rows is a sequential scan. |

Fixing migration (file 1 of 2, excerpt)

```sql
set local lock_timeout = '5s';

revoke all on public.orders from anon;
revoke update, delete, truncate, references, trigger on public.orders from authenticated;
grant select, insert on public.orders to authenticated;

drop policy if exists orders_select on public.orders;
drop policy if exists orders_insert on public.orders;
drop policy if exists orders_update on public.orders;

create policy orders_select on public.orders
  for select to authenticated
  using ((select auth.uid()) = user_id);

create policy orders_insert on public.orders
  for insert to authenticated
  with check ((select auth.uid()) = user_id and status = 'pending');
-- No update or delete policy: denied for every role except service_role.
```

File 2 holds only `create index concurrently if not exists orders_user_id_created_at_idx on public.orders (user_id, created_at desc);` because `concurrently` cannot run inside the transaction the Supabase CLI wraps around each migration.

[The full answer continues with findings 7–12, the lock plan for 1.8M rows, the status and total_cents check constraints added `not valid` then validated, an `explain analyze` to run before and after, and one RLS test per role.]
SkillCodePro
  • Antigravity
  • Claude Code
  • Codex
  • +3
Coding

Postgres Rules for Supabase Projects

Use it to make your coding agent follow Supabase's 31 Postgres rules for RLS, indexes, schema and migrations before it touches your database.

0 installs
$9.99
Settings: model `sora-2` · size `1280x720` · seconds `8` · characters: none

Before

A cool cinematic shot of a woman drinking coffee in a nice cafe, make it 10 seconds.

After

Style: Contemporary 35 mm film look, natural and understated, soft contrast, fine grain, warm-neutral grade.

A small neighbourhood cafe on a quiet weekday morning. A woman in her early 30s with shoulder-length dark hair tied loosely back, wearing an oatmeal knit sweater, sits alone at a round marble table by a large street-facing window. In front of her: a white ceramic cup of black coffee on a matching saucer and a folded paper napkin. Behind her, out of focus, a wooden counter with an espresso machine and a barista moving between shelves of cups. Thin steam rises from the cup and catches the window light.

Cinematography:
Camera: medium close-up, eye level, from across the table at a slight angle; slow dolly-in
Lens: 50 mm feel; shallow depth of field, sharp on her face and the cup, background soft
Lighting: soft morning daylight through the window from camera left as key; warm tungsten pendant glow from the counter as background fill
Palette anchors: cream, warm walnut brown, soft white, muted sage, coffee black
Mood: calm, quiet, unhurried

Actions:
- She wraps both hands around the cup and lifts it slowly (first two seconds).
- She blows lightly across the surface, then takes one small sip.
- She lowers the cup to the saucer and looks out the window with a faint, relaxed smile (final two seconds).

Background Sound:
Low hiss of the espresso machine, soft clink of cups at the counter, muffled murmur of a few voices; no score.

What changed and why

- Removed "make it 10 seconds". Duration is an API parameter, not prose, and 10 is not a supported value (4, 8, 12, 16, 20). Set `seconds: 8` in the call; the prompt now fits 8 seconds of action.
- "Cool cinematic shot" became a named style. A specific aesthetic instead of a vague adjective, set first so it frames everything else.
- "Drinking coffee" became three timed beats. Lift, blow and sip, lower and look out. Beats with timing cues are far more reliable than a single vague verb.

[five more changes in the full answer: subject anchors, concrete nouns, one camera move, named light sources, background sound]
SkillVideoPro
  • ChatGPT
  • Sora
Marketing

Prompting Playbook for Sora 2

Use it to write or rewrite Sora 2 prompts with the right settings, camera, timed action beats, light, dialogue and sound.

0 installs
$7.99
Assumption: no n8n-MCP server is connected in this session, so I took the skill's fallback path: I wrote the workflow JSON directly from the bundled rules and checked it by review (a rule-check script plus a dry run of every expression). The real validator (`validate_workflow`) was not run, and nothing was deployed.

How the skill routed this

| Step | Sub-skill used | What it decided |
|---|---|---|
| Shape | `n8n-workflow-patterns` | Webhook processing pattern: Webhook, then Validate, then Action, then Respond |
| Node parameters | `n8n-node-configuration` | Slack post needs a channel and text. `responseMode: "responseNode"`. `options.responseCode` set on every Respond node. UUID node ids, no placeholder credentials |
| Expressions | `n8n-expression-syntax` | Webhook data lives under `.body`. Use `$('Webhook').item.json.body.*` once past the IF node. `=` prefix on every expression field |
| Error paths | `n8n-error-handling` | Slack gets `onError: "continueErrorOutput"` and its `main[1]` is wired to the 500 responder. `retryOnFail` is on. Bad input is caught upstream and gets a 400 |
| Validation | `n8n-validation-expert` | Runtime-profile checks done by review. Security warnings get fixed (header auth on the webhook) |

```
Webhook ──> Validate Input ──true──> Post to #signups ──success (main[0])──> Respond 200 OK
                        └──false──> Respond 400 Invalid Input
                                     Post to #signups ──error (main[1])────> Respond 500 Slack Failed
```

Validation result (excerpt)

```
PASS  Webhook responseMode is responseNode (Respond nodes control the reply)
PASS  Every branch (success and each error) ends at a Respond to Webhook node: no hanging branch
PASS  'Post to #signups': onError=continueErrorOutput AND main[1] wired
PASS  'Post to #signups': retryOnFail with maxTries <= 5 and waitBetweenTries <= 5000
PASS  Every {{ }} field starts with = (no 'Expression requires = prefix' error)
PASS  Webhook fields read from .body, never $json.name / $json.email / $json.plan
…
43 passed, 0 failed
```

Expression dry run against sample webhook items:

```
valid           IF -> true  (Slack)  Slack text: New signup: Ana Lima (ana@example.com) on pro
missing_plan    IF -> false (400)
bad_email       IF -> false (400)
no_body         IF -> false (400)
500 body:   {"error":"upstream_error","message":"The signup was received but could not be posted to Slack. Please retry later."}
```

Not verified without the server: the node typeVersions (Webhook 2.2, IF 2.3, Slack 2.3, Respond 1.5) and the Slack v2 parameter names; confirm by opening the nodes after import.

[The full answer also holds the six-node list, the importable workflow JSON and the expressions table with the reason behind each one.]
SkillCodePro
  • Antigravity
  • Claude Code
  • Codex
  • +4
Coding

n8n Builder Skills for Coding Agents

Use it to have your coding agent build, configure and validate n8n workflows without the usual expression and node-config mistakes.

0 installs
$12.99
2. Tool design

| Tool | Does | Inputs (constraints) | Returns | Read-only / destructive | Errors the model can fix |
|---|---|---|---|---|---|
| `find_customers` | Customers whose name or email contains the text, case-insensitive | `query` string 1–100 (trimmed), `limit` int 1–50 = 20, `cursor` optional | id, name, email; `next_cursor` | read-only, idempotent | no match: try a shorter part of the name or the email domain |
| `list_customer_orders` | One customer's orders, newest first | `customer_id` int ≥ 1, `status` enum optional, `limit`, `cursor` | customer + orders; `next_cursor` | read-only, idempotent | unknown customer: call `find_customers` |
| `get_order` | One order with the customer's name and email | `order_id` int ≥ 1 | order + customer (structured) | read-only, idempotent | not found: check the number or list the customer's orders |
| `refund_order` | Sets a paid order to refunded | `order_id` int ≥ 1, `confirm` int optional, must equal `order_id` | updated order, `previous_status: "paid"` | destructive, idempotent | no `confirm`: preview, ask the user; order pending or already refunded; not found |

Checklist notes: one rule for empty results (an `isError` result with a next step), applied to every tool. All SQL is parameterized. Read tools use a read-only SQLite handle; only `refund_order` opens a writable one, and its `UPDATE ... WHERE id = ? AND status = 'paid'` is a single statement. The guard on the destructive tool is server-side (the preview/confirm step), not just the `destructiveHint` annotation.

3. Scaffold

From `templates/typescript-server.md`. Installed: `@modelcontextprotocol/server` 2.4.0, `@modelcontextprotocol/client` 2.4.0, `zod` 4.6.7; Node 24.6.0.

```
build-an-mcp-server/
  data/seed.sql, data/shop.db     3 customers, 5 orders
  src/index.ts                    stdio entry point
  src/server.ts                   createServer(): the four tools
  src/shop.ts                     SQLite client module (the system being wrapped)
  test/smoke.ts                   spawns the server over stdio, calls every tool
```

5. Test (Inspector CLI, eval loop layer 2)

```
$ npx @modelcontextprotocol/inspector --cli npx tsx src/index.ts --method tools/call --tool-name get_order --tool-arg order_id=1001
{
  "content": [{ "type": "text", "text": "Order #1001 for Ada Lovelace <ada@example.com>: $49.99, paid, created 2026-10-02T09:15:00Z" }],
  "structuredContent": { "order": { "id": 1001, "customer_id": 1, "total_cents": 4999, "status": "paid", "created_at": "2026-10-02T09:15:00Z", "customer_name": "Ada Lovelace", "customer_email": "ada@example.com" } }
}
```

Built, tested, not tested

- Built: four tools over `data/shop.db`, server-side preview/confirm guard on `refund_order`, smoke test, configs for Claude Code, Codex and Cursor, README.
- Tested: starter smoke (pass), full smoke test 14 checks (pass), strict typecheck (pass), Inspector CLI call (pass), seed database unchanged after tests.
- Not tested: the Inspector web UI by hand and the model check (running the five real requests through a live Claude Code session and recording which tool it picks).

[The full answer also holds `src/shop.ts`, `src/server.ts`, `test/smoke.ts` and the three client config snippets.]
SkillCodePro
  • Antigravity
  • Claude Code
  • Codex
  • +3
Coding

Build an MCP Server

Use it to design, build, test and ship an MCP server your agents use well: 3 to 7 well-designed tools, a tested starter and ready client configs.

0 installs
$12.99
Short answer: ChatGPT can't recommend Ledgerly, because nothing it can retrieve says Ledgerly exists. Even after launch, a single landing page is not enough. A "best X for Y" shortlist comes from web-wide consensus (reviews, roundups, forums, press), not from your own site.

Visibility ladder (retrieved → cited → mentioned → recommended)
| Rung | Ledgerly today | What governs it |
|---|---|---|
| 1. Retrieved | No: not live, not in Bing's index (ChatGPT search draws from a Bing-based index) | Being indexed and crawlable |
| 2. Cited | No | Extractable, factual, fresh pages |
| 3. Mentioned | No | Entity recognition; the web talking about you |
| 4. Recommended | No | Aggregate third-party consensus, largely independent of your own content |

Source pool (one web search for the exact query, 2026-11-07; not a ChatGPT answer): only third-party roundups and affiliate lists (NerdWallet, business.org, Zapier, Fueler, Techjockey, Aspire). The same five apps recur: Wave, Zoho Books, FreshBooks, QuickBooks, Xero. I did not run ChatGPT, so I'm not reporting what ChatGPT says; run the query list yourself.

Extractability check on site/index.html: clear definition in the first paragraph, partial (the H1 is a slogan); self-contained answer blocks, fail; statistics with sources, fail; comparison table for "vs" queries, fail; FAQ, partial (good answers hidden in collapsed <details>, none answers "Is Ledgerly good for freelancers?"); schema markup, fail; author or founder, fail; freshness date, fail; query-shaped headings, fail.

Top fixes, by impact against effort
1. Launch, then get indexed in Bing and Google. robots.txt with a wildcard allow plus explicit allows for OAI-SearchBot, PerplexityBot, Claude-SearchBot and Bingbot; decide training crawlers (GPTBot, ClaudeBot) separately.
2. Seed third-party consensus: G2 and Capterra listings with the first 20–30 real reviews; pitch the roundups that already rank for the query with a specific angle ("$12/month, no per-transaction fees, automatic invoice chasing"). Test: if a model ignored your own domain, would the web still put you on the list? Today, no.
3. Rewrite the hero into an extractable definition (below).
4. Add /vs/freshbooks, then QuickBooks and Wave, in the "fair source" pattern. Do not publish a self-ranked "best bookkeeping apps" listicle: in the skill's data 69% of such citations recommended competitors.
5. Publish /pricing.md and /llms.txt; fix the Studio button ("Talk to us" on a plan with a public price reads as a sales wall to an agent).
6. JSON-LD: Organization, SoftwareApplication with Offer per plan, FAQPage.
7. Buyer-intent FAQs rendered open in the HTML. 8. Named founder, "Last updated", one dated sourced number. 9. Measure monthly: 8 queries, 3–5 runs per engine, log rung and framing.

Hero answer block (57 words, every fact from the existing page):
> Ledgerly is a bookkeeping app for freelancers and two-person studios. It connects to your bank through Plaid or TrueLayer (US, UK, EU), auto-categorises each transaction by category and client, chases unpaid invoices on day 3, 7 and 14, and exports tax-ready P&L, VAT and quarterly estimates. Free plan available; Pro is $12/month with no per-transaction fees. […]
SkillTextPro
  • ChatGPT
  • Claude
  • Claude Code
  • +4
Marketing

AI Search (GEO) Playbook

Get cited in AI Overviews, ChatGPT and Perplexity: visibility audit, crawler check, ranked fixes, answer-block rewrites.

0 installs
$9.99

Founder prompts and packs

Style anchor locked: cream #F6F1E7 background, royal blue #1E40AF primary, coral #F26B5B accent, soft diffused window light from the left, rule of thirds, calm, subtle 35mm grain, matte. --sref https://…/anchor.png --sw 200.

Result library after one session (8 prompts queued, same anchor):
- hero-01 (16:9): founder at standing desk, headline space right — usable
- hero-02 (16:9): two colleagues, window behind — light blown out, rerun with "window to the left"
- social-01…04 (4:5): four learners in four rooms, same cream and blue — all usable as a set
- og-bg-01 (1.91:1): abstract blue and coral blocks on cream — usable
- character-01 (1:1): the recurring founder character, front-facing — becomes the --cref portrait

Fix pass: hero-01 has a six-fingered hand on the mug. Vary Region on the hand only with "hand holding a ceramic mug, five fingers, natural grip". Upscale Subtle. Ship.
Prompt packImagesPro
  • Midjourney
Design

Midjourney Brand Visual System

Ten prompts from moodboard to style anchor, hero, social series, product shots and a fix pass.

0 copies
$8.99
HERO HEADLINE VARIANTS — current: "Smart plant care, powered by AI"

1. Pain framing — "Your fiddle leaf is not dying. It is asking for one thing." (lever: pain)
2. After-state — "Know what your plant needs before the next leaf drops." (lever: outcome)
3. Specificity — "Diagnose yellow leaves in 2 minutes from one photo." (lever: specificity)
4. Contrast — "Every blog says something different. Your plant says one thing." (lever: pain)
5. Number — "4 days. That is how long you have after the first leaf drops." (lever: specificity)
6. Confession — "We built this after killing nine plants in one apartment." (lever: proof)
7. Command — "Stop watering on a schedule. Start reading the leaves." (lever: after-state)
8. Reader quote — "I did not do anything wrong — I just was not told." (lever: voice)
9. Question-free curiosity — "The third thing nobody mentions about overwatering." (lever: specificity)
10. Promise — "Your next plant survives. This one might too." (lever: outcome)

Test first: #2 against #3 — same lever family, different specificity; the winner tells you whether the audience wants reassurance or precision.
Prompt packTextPro
  • ChatGPT
  • Claude
Marketing

Landing Page Copy Kit

Ten prompts from customer research to an assembled page: promise, hero, problem, proof, FAQ, pricing.

0 copies
$8.99
Validation page — "Stop reinventing your client kickoff every Monday."

Promise bullets:
- 12 Figma templates that map to the briefs clients actually send
- A Notion brief generator: 4 questions in, a fillable scope out
- A 9-question client questionnaire that ends the "can you just tweak this?" loop

Objection handler: "Not a course. Not a community. Just the four files you wish someone had given you in year one."
CTA: "Pre-order for $49 — ships in 14 days. Refund if you don't use it."

Red team (as an investor who watched ten of these fail): the failure mode you are underestimating is not demand, it is the second purchase. Templates sell once; the Notion generator is the only piece with a reason to come back. Measure: of the first 50 buyers, how many open the generator twice in 30 days. If under 20%, the next product is a generator, not more templates.

Milestone 1 — validation page live · acceptance: 25 pre-orders in 7 days from $100 of ads and 20 DMs.
Prompt packTextPro
  • ChatGPT
  • Claude
  • Veo 3
Marketing

Product Launch Kit

Ten prompts from promise to week-one retro: validation page, pricing, red team, announcement, teaser.

0 copies
$9.99
Integrations

Auth — DONE. Supabase magic link; /app and /history require a session; /login and / are public.
Database — DONE. users(id, email, plan, trial_ends_at), courses(id, title), progress(id, user_id, course_id, lesson_no, completed_at). RLS: users read/write only rows where user_id = auth.uid().
Payments — NEEDS KEY. Stripe Checkout, $49/month, 5-day trial. Webhook /api/stripe/webhook verifies the signature with STRIPE_WEBHOOK_SECRET before any write. checkout.session.completed → users.plan = "pro"; invoice.payment_failed → plan = "past_due"; customer.subscription.deleted → plan = "free".
Email — NEEDS KEY. Resend: welcome on sign-up ("You're in — here's day 1"); trial-ending 2 days before trial_ends_at ("Your trial ends Thursday").

Source of truth for "paid": users.plan, written only by the webhook. The client never sets it.

Secrets expected in the environment panel: SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only), STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, RESEND_API_KEY.

Test before going live:
1. Sign up with a fresh email → magic link arrives → /app loads → one row in users with plan = "free".
2. Stripe test card 4242… → return to /app → plan = "pro" within 5 seconds → welcome email received.
3. Fire a test `customer.subscription.deleted` from the Stripe dashboard → plan = "free".
PromptCodePro
  • Claude Code
  • Codex
  • Copilot
  • +1
Coding

Wire Auth, Database, Payments and Email

One prompt that wires the real stack — secrets in the vault and a manual test for each integration.

0 copies
$3.99
BRAND BRIEF — Northwood Beard Oil

1. Positioning
We help men 28–45 with full beards stop smelling like drugstore musk. We can do this because a third-generation perfumer blends 14 natural notes other beard brands will not pay for.

2. Audience snapshot
- Situation: has worn the same $9 oil for years; wife or colleague has commented on the smell
- Trigger: a wedding, a new job, or the bottle running out
- Tried: "premium" brands that still lean on synthetic musk
- Fears: smelling like a teenager's locker; paying $40 for marketing

3. Promise
A scent people ask about, not one they step away from — within the first week.

4. Voice rules
Do: short declaratives ("Three notes. Zero musk.") / Don't: "elevate your grooming ritual"
...
6. Instruction for future prompts
Use this brief. Never use "elevate", "curated", "ritual". Always name a specific scent note.

Skeptic re-read: "Third-generation perfumer" is doing all the work — if it is not provable on the site, the positioning collapses to "nice smell". Holds only with proof.
PromptTextFree
  • ChatGPT
  • Claude
  • Gemini
Marketing

The One-Page Brand Brief

The brief you paste on top of every marketing prompt for a year: positioning, audience, promise, voice.

0 copies
Free
Proposal — Loom · AE Onboarding Playbook Pilot

On Tuesday you said the eight incoming AEs have "no shared playbook" and that "ramp is going to kill us by Q2". You put current ramp at "14 weeks if we're honest" and a loaded AE at "about $140k".

Success: first cohort productive — first closed deal — inside 6 weeks instead of 14.

You said → What we do about it
"no shared playbook" → two-week build with your top two reps, delivered as a 5-day onboarding track
"ramp is 14 weeks" → week-1 to week-6 milestones with a manager checklist, so ramp is measured, not felt
"we tried a doc once and nobody read it" → every module ends with a recorded role-play a manager reviews in ten minutes

Timeline: build weeks 1–2; cohort onboarding weeks 3–8; review week 9.

Investment: $18,000. Payback: 8 AEs × 8 weeks saved × ($140k ÷ 52) ≈ $172k of ramp cost recovered. Breakeven at one AE.

Next step: a yes by Friday the 13th to start the build on the 16th.
Risk you raised: "our reps won't do homework" — modules are under 20 minutes and done live with the manager.
PromptTextPro
  • ChatGPT
  • Claude
  • Gemini
Marketing

One-Page Proposal From the Call Transcript

Opens in the buyer's own words, maps your offer to what they said, and shows the payback arithmetic.

0 copies
$5.99
Walkthrough
Lines 1–8 pull `items` from the cache with no validation. Lines 10–18 loop and sum `item.price * item.qty`. Lines 20–22 return the total as a float.

Assumptions
1. The cache always returns a list → None raises AttributeError at line 10.
2. Every item has `price` and `qty` → legacy rows without `qty` raise KeyError mid-loop; partial sums are lost.
3. `price` is numeric → a string price silently concatenates on some paths. Dangerous.
4. The list is not mutated during iteration → a concurrent cache refresh mutates it; totals come back inconsistent with no error. Dangerous.
5. An empty list means a zero total → returns 0 silently; callers cannot tell "no items" from "free". Dangerous.

Verdict on your concerns: concurrency — unsafe; error handling — none; empty list — silent zero.

Tests
- items = None → a clear 500 with a logged cause
- one item missing qty → validation error naming the item id
- 10k items during a cache refresh → a consistent snapshot or a retry

Confirm the diagnosis and I will propose a patch.
PromptCodePro
  • ChatGPT
  • Claude
  • Claude Code
  • +2
Coding

Code Walkthrough: Assumptions and Breakpoints

Line-by-line read of a function, every assumption it makes, what breaks when each fails — before any fix.

0 copies
$3.99
Built. Here is what exists now:

- /today — the screen learners live on: today's lesson card, a 7-day streak strip, and a trial banner counting down from 5 days with one coral "Keep my streak" button that routes to /upgrade.
- /login — magic-link sign-in by email, no password.
- /settings — sign-out only.

Data model (created before UI, as asked):
users(id, email, created_at, trial_ends_at, plan)
lessons(id, day_number, title, duration_min)
completions(id, user_id, lesson_id, completed_at)
Streak is computed from completions, not stored.

Assumptions: one lesson per day; streak resets after a missed day; trial length fixed at 5 days.
Left out on purpose: analytics, onboarding tour, dark mode, admin.
One question before the next screen: should a learner on day 6 with no plan still see today's lesson, or only the upgrade page?
PromptCodeFree
  • Claude Code
  • Codex
  • Copilot
  • +1
Coding

The First Build Prompt

Who, the one job, the data, the feel — and an app that looks like yours on the first generation.

0 copies
Free
PILLAR — "The async standup playbook: how 14 distributed teams dropped the 9 AM call"
Keyword: async standup (~1,900/mo) · Intent: informational, late-stage
Gap in current top results: none give a template by team size; all assume 5–8 people.
H2s: Why the sync standup breaks past 3 time zones / The 3 formats by team size / Slack + Notion templates / What to do when nobody posts / Daily vs weekly / Tools compared honestly

Supporting articles
1. "Async standup template (Slack and Notion versions)" — async standup template (~720) · transactional · links to H2 #3
2. "Why your async standup is being ignored — and the 3-line fix" — async standup not working (~210) · informational · H2 #4
3. "Daily or weekly async standup for a 6-person team?" — daily vs weekly standup (~140) · comparison · H2 #5
4. "Async standup across 5+ time zones: what actually works" — async standup timezone (~95) · informational · H2 #1
...
Publishing order: 1, 2, 4 first (quick wins, low competition), pillar in week 3, remaining support weeks 4–6.
PromptDataPro
  • ChatGPT
  • Claude
  • Gemini
Marketing

SEO Content Cluster Map

One pillar page plus eight supporting articles, each a real search question with keyword, intent and link map.

0 copies
$3.99
Scene 2 of 4 in a continuous short film. Use the attached character reference image.

Character (repeat verbatim in every scene prompt): a woman in her thirties, shoulder-length brown hair, navy blazer over a white shirt, warm intelligent expression — same face, same hair, same outfit, same build as the reference. No changes to wardrobe or hairstyle between scenes.
This scene: she pushes open the glass door of an empty office and walks in, slowing as she takes in the space, in a sunlit open-plan office at sunrise.
Camera: wide shot that begins a slow push-in as she enters.
Lighting: low golden sunrise through floor-to-ceiling windows — keep the colour temperature consistent with scene 1.
Ends on: her hand resting flat on a desk, centre frame — hold this frame for the final second so scene 3 can match-cut from it.
Audio: footsteps on hard floor and quiet office ambience; no music; no dialogue.
Avoid: additional people, mirrors, reflective surfaces, text, logos, any object she did not carry in scene 1.

Continuity check against scene 1: same blazer, same hair length, same warm temperature. Scene 3 will open on a hand on a different surface.
PromptVideoPro
  • Kling
  • Veo 3
Video

Character-Locked Scene for a Multi-Clip Video

A per-scene prompt that keeps the same face, outfit and light across every clip of a multi-clip video.

0 copies
$3.99
Node list
1. Stripe Trigger — fires on checkout.session.completed — reads nothing upstream.
2. Notion — Create database page in "Customers" — Email ← $json.customer_details.email; Plan ← $json.metadata.plan; Amount ← $json.amount_total / 100; Date ← $json.created.
3. Slack — Post to #revenue — "New paid signup: {email} on {plan} ({amount} USD)" built from the same fields.

Workflow JSON: attached below, importable; credentials referenced as "Stripe account", "Notion workspace", "Slack bot" — create those three in Credentials before activating.

Error path: Error Trigger workflow "Alerts" → Slack #ops with the failing workflow name, the item's customer email, and the error message.

Test plan: in the Stripe Trigger node, click "Listen for test event", then send a test checkout.session.completed from the Stripe dashboard → Notion shows one row with the four fields → Slack shows one message → execution list shows green.

Smallest v1: this is already the smallest version (3 nodes). Add the welcome email as node 4 next week, after you have watched this run for a few days.
PromptCodeFree
  • ChatGPT
  • Claude
  • n8n
Ops

n8n Workflow From a Plain-English Spec

Five spec lines in; a node list, importable JSON, an error path and a test plan out.

0 copies
Free
Top 5 unmet needs (67 interviews)

1. Onboarding takes too long — 41 customers
   "I gave up before my first usable result." (I-12) · "Two evenings to set up something I wanted to try in ten minutes." (I-38)
   Trigger: trying the product between meetings, on a phone.
2. Sharing with the team is friction — 33
   "I ended up screenshotting the dashboard into Slack." (I-05)
3. Integration with the existing stack — 29
4. Pricing surprise in month two — 24
5. Progress does not sync between devices — 18

Early signals
- Offline mode — I-12, I-38, I-51: "I'd pay for it to just work on the train." Unprompted in three separate interviews; not noise.
- Public API — I-22 only.

Contradictions
- 14 customers want fewer notifications; 9 want a daily nudge. Both groups are under 30 days in.

Say vs. want
- Say: "more features." Want, from behaviour: the three they already use to be faster. (I-07, I-44)

Follow-ups for next round
1. "What did you expect to have working within ten minutes?"
2. "Who else looks at this, and how do they see it today?"
PromptDataPro
  • Claude
  • Gemini
Research

Cluster 400 Pages of Interviews

Feed every transcript at once; get ranked unmet needs with verbatim quotes, early signals, contradictions.

0 copies
$5.99
Ranked causes

1. Creative launch pushed spend into a worse-converting audience (fit: HIGH)
Mechanism: three new creatives entered learning Monday; Meta over-delivers early impressions to cheap, low-intent placements.
Supports: spike begins the same day; recovery by Sunday matches a 5–7 day learning window.
Contradicts: nothing in the inputs — but you have not split CAC by creative yet.

2. Competitor promo raised auction prices Tue–Thu (fit: MEDIUM)
Supports: Tuesday start; CPM data would show it.
Contradicts: the spike started Monday, a day before the promo.

3. +30% budget scale on the top campaign reset learning (fit: MEDIUM-LOW)
Supports: scaling same day. Contradicts: a 30% step rarely resets learning on its own.

Next data cut: CAC and CPM by creative, by day, Mon–Sun. If the three new creatives carry a CAC over $90 on Mon–Wed while legacy creatives stay near $48, cause 1 is confirmed.

Not considered: a tracking gap — check whether the pixel fired normally Mon–Wed before trusting any of this.
Do not: pause the new creatives today. You would destroy the data that tells you which of them is fine.
PromptDataPro
  • ChatGPT
  • Claude
Marketing

CAC Spike Diagnosis

Three ranked causes for a metric anomaly, the one data cut that confirms the top cause, and what not to do.

0 copies
$3.99
Subject: Launch moves to the 28th — plan attached

Jamie — I am moving the launch from the 14th to the 28th.

Two reasons. The security review surfaced one issue we want to fix properly rather than patch, and the marketing site needs one more full week of build. The rest of the timeline holds; the partner webinar on the 30th is unaffected.

Already handled: the fix is scoped and owned by Priya; the new site copy is in legal review. I need two things from you — approval of the new date, and a release of the email send that is booked for the 14th.

I will post a five-minute pulse in #launch every morning until the 28th.

— Alex

Questions you will get back:
- "Why didn't we catch the security issue earlier?" → It was found by the external review we scheduled for exactly this reason; that is the process working.
- "What else could slip?" → Nothing on the critical path; the only open risk is legal turnaround on copy, which has a Friday deadline.
PromptTextPro
  • ChatGPT
  • Claude
Writing

Bad News Email That Leads With the Plan

Deliver a delay, a miss or a no in under 100 words — decision first, reasons second, apology optional.

0 copies
$3.99
Convergence
1. D2C ed-tech CAC has risen 30–40% over 18 months — McKinsey (n=200 companies), a16z note, Coursiv S-1 excerpt. Representative: "blended CAC up 36% YoY" (McKinsey). Confidence HIGH.
2. Subscription outperforms one-time pricing for content products — all four. Confidence HIGH.
3. Trial length matters less than trial-to-paid messaging — three of four; the fourth is silent. Confidence MEDIUM.

Biggest disagreement
McKinsey: auto-renewal optimisation is the largest revenue lever. a16z: cohort-driven retention beats it. Stronger side: McKinsey — 200-company sample versus a16z's four anecdotes, and McKinsey's data is 2025 while a16z's examples are 2023.

The question none of them answers
What happens to LTV when you send an honest reminder before auto-renewal. Likely gap: no operator has run it at scale, and the consultancies are paid by companies that do not want to.

Read or measure next: your own month-3 retention by acquisition channel — every source above assumes it is uniform, and for your decision it is the number that matters.
PromptTextPro
  • ChatGPT
  • Claude
  • Gemini
Research

Synthesis Across Sources

Read several reports at once: what they agree on, where they fight, and the question none of them answers.

0 copies
$3.99
VOICE OF CUSTOMER — GrowNest (30 reviews, App Store, 3 competing apps)

Top 5 pains
1. "it was fine in the shop and now it's dropping leaves" (11)
2. "I can't tell if I'm overwatering or underwatering" (9)
3. "every blog says something different" (7)
4. "the reminders nag me but never tell me why" (5)
5. "I've killed three of these already" (4) — EARLY SIGNAL: one reviewer, "I'd honestly given up on plants"

Top 5 dream outcomes
1. "finally know what's wrong before it's too late" (8)
2. "it just told me: less water, more light. done." (6)
3. "my monstera actually grew a new leaf" (5)
...
Recurring words: dropping, yellowing, overwatering, "no idea", nag, finally, survive, confident, "too late", simple
Words to avoid: ecosystem, curated, holistic, "plant parent", elevate
PromptTextFree
  • ChatGPT
  • Claude
  • Gemini
Marketing

Voice-of-Customer Brief From Raw Reviews

Turn 30+ reviews into a one-page brief of pains, outcomes and objections in the customer's exact words.

0 copies
Free
Subject: Your pricing page is lying to you
Preview: Three founders raised prices last month. Two regret it.

Headline: The pricing change that costs more than it earns

1. The claim — Raising prices 20% sounds like free margin. For two of three founders I spoke to this month it cut net revenue, because the churn arrived three months later and nobody connected it.
2. The mechanism — Annual customers do not leave on day one. They leave at renewal, which is after you have already celebrated.
3. The numbers — Founder A: +20% price, −11% net revenue by month 5. Founder B: +15%, +9% — the difference was a grandfather clause.
4. What I would do — Raise for new customers only. Measure renewal cohorts for two quarters before touching existing plans.

CTA: Reply with your last price change and the month you measured it. I will tell you if you measured too early.

Cuts the author will push back on: the opening anecdote about the coffee shop (300 words, no number); the second example that repeats the first; "I think" ×6.
PromptTextPro
  • ChatGPT
  • Claude
  • Gemini
Marketing

Newsletter Tightener

Cut a newsletter issue by a quarter, sharpen the hook and the close, and keep every number and opinion.

0 copies
$3.99
Voice rules

- Sentence length: 4–10 words. Never a sentence over 14.
- Tone: dry, mildly self-deprecating, never preachy. "Okay, controversial:" / "Weirdly, the most-asked question this month" / "Sorry. Also not sorry."
- Words used often: actually, okay, weirdly, notes inside, for a real face
- Words never used (peers use them): journey, elevate, unlock, glow-up, self-care, ritual, holy grail, obsessed
- Emoji: one at the end, never mid-caption. 🌿 or 😌.
- Hooks: a contrarian observation stated flat, never a question.
- Closes: one short verdict, no CTA.

New captions (launch week)
1. Most niacinamide serums are water with a marketing budget. Ours isn't. 🌿
2. Okay, controversial: your skin does not need 12 steps. It needs 3 that work.
3. Tested the new cleanser on a real face for 6 weeks. Notes inside.
4. Weirdly, the most-asked question this month: "safe during pregnancy?" Yes.
5. Discontinued the toner. It wasn't pulling its weight. Sorry. Also not sorry. 😌
...
Drift check: #7 uses a question hook; #9 runs 16 words. Cut both.
PromptTextPro
  • ChatGPT
  • Claude
  • Gemini
Marketing

Voice Rules From Your Best Posts

Extract your writing voice from ten posts, then draft new captions a long-time follower could not tell apart.

0 copies
$3.99
Done — one change.

Files changed:
- src/pages/Pricing.tsx — added a Monthly / Yearly segmented toggle above the plan cards; yearly shows the discounted price and a "save 20%" tag
- src/lib/pricing.ts — added `yearlyPrice(monthly)`; no other exports touched

Outside the pricing page: nothing. Layout, colour tokens, routes and the dashboard are untouched. I did not reformat Pricing.tsx beyond the inserted block.

Acceptance: toggle defaults to Monthly; switching shows $190/yr under the Pro plan instead of $19/mo, and the tag appears. Verified in preview.

Revert: delete the toggle block in Pricing.tsx (lines 41–58) and the `yearlyPrice` helper.
PromptCodePro
  • Claude Code
  • Codex
  • Copilot
  • +2
Coding

Scoped Edit: Change One Thing, Keep the Rest

A targeted change request with an acceptance check and a keep-list, so the AI stops rebuilding what worked.

0 copies
$3.99
Weekly briefing — AI search and research tools, 29 Apr – 6 May

1. ChatGPT Deep Research extended to 30-minute runs with export (OpenAI release notes, 2 May) — Why: your "research faster" lesson shows a 5-minute run; the screenshots are stale. Do: re-capture by Friday.
2. Perplexity Spaces adds shared instructions for teams (Perplexity blog, 30 Apr) — Why: your team-research module assumes personal Spaces. Do: a one-paragraph update.
3. Google AI Mode expands to 12 countries incl. DE and ES (Google blog, 1 May) — Why: 40% of your traffic is DE/ES; organic click-through will move. Do: watch Search Console for two weeks.
4. Anthropic raises Claude file limits (Anthropic docs, 3 May) — Why: your "upload 400 pages" lesson can cite a bigger number. Do: nothing yet.
5. Perplexity reported raising at $18B (The Information, 5 May) — unverified, single source — affects nothing you ship.

Safe to ignore: the "AI search is dead" essay — opinion, no data.
Quiet item: AI Mode ad formats mentioned in a Google developer note (4 May) — if ads enter AI answers, your CAC assumptions change in Q3.
PromptTextFree
  • ChatGPT
  • Claude
  • Gemini
Research

Weekly Briefing, Ranked by Impact on You

What changed in your space this week, ranked by what it means for your business — with dates and links.

0 copies
Free
1. Three weeks ago it was perfect. Now it loses a leaf every other day.
2. The plant in the shop window is not the one in your living room.
3. You did not do anything wrong. Nobody told you the one thing it needs.
4. It is not the light. It is not the water. It is the third thing.
5. Day 21: the soil is wet, the leaves are yellow, the blog says "just wait".
6. Confession: I killed four of these before I learned to read the leaves.
7. Your plant has been asking for help for two weeks. You just did not speak the language.
8. 80% of dropped leaves come from the same two mistakes. Both are fixable tonight.
9. Still watering on a schedule? That is the thing killing it.
10. The nursery tag said "easy". The nursery tag lied.

Cold landing page: #2 — the contrast is visual and lands in one read.
Warm email: #3 — removes blame, which is what a subscriber who already feels guilty needs first.
PromptTextPro
  • ChatGPT
  • Claude
Marketing

PAS Hooks in the Reader's Words

Ten problem-agitate-solve hooks for one specific reader, with the best pick for cold and warm traffic.

0 copies
$3.99
Image-to-video, 8 seconds, from the attached reference still.

Locked (must not change): the woman's face, pose and wardrobe; the café table, the window and every object on the table; the cream-and-sage palette; the camera angle and framing; the light direction from the window.
Motion (subtle, continuous): steam rising from the coffee cup; a few strands of hair lifting in a soft breeze; she turns one page of the book.
Timing: the page turn happens once, at second 3; steam and hair are ambient and barely visible.
Camera: static.
Audio: quiet café ambience with distant cups, one soft paper rustle at second 3. No music.

Result: the photograph breathes — the frame is identical to the still at second 0 and second 8; the page turn is the only event. Render 2 of 3 drifted the background chair; rendered again with the same prompt and kept render 3.
PromptVideoPro
  • Kling
  • Veo 3
Design

Bring a Brand Still to Life

Image-to-video that keeps face, background, palette and framing locked and adds three subtle motions.

0 copies
$3.99
Subject: eight AEs, one playbook

Sam — you posted eight AE roles this month, and the Head of Enablement role is still open from April.
Eight new reps and no owner for onboarding usually means ramp drifts past a quarter while everyone is "about to" write the playbook.
Vanta had the same gap last year; our playbook cut their AE ramp from 14 weeks to 6.
Is ramp time something you are measuring this quarter — yes or no?

— Dana

Backup first line (if the roles are filled by send time): "Saw the eight AEs you hired this spring — congratulations, and sympathies for whoever owns their ramp."
PromptTextPro
  • ChatGPT
  • Claude
Marketing

Cold Email Built on a Trigger Event

A four-line cold email that opens with one real observation and could not be sent to any other company.

0 copies
$3.99
/imagine a founder reading a printout at a standing desk in a bright studio apartment, premium editorial photography, colour palette warm cream #F6F1E7 with royal blue #1E40AF and coral #F26B5B accents, soft diffused window light from the left, rule-of-thirds composition with negative space on the right, mood calm and focused, subtle 35mm film grain and matte finish, no readable text, no logos, no watermark --ar 16:9 --s 150 --c 10 --v 7

Result (four-grid): all four images share the cream room, the blue accent on a notebook or chair, and the same soft left light; the subject's pose varies. Image 2 has the cleanest right-side negative space — upscale it, then run the same style line with a new subject for the next asset.
PromptImagesPro
  • Midjourney
Design

Midjourney Brand Style Lock

A five-part style line — palette, light, composition, mood, texture — so every image reads as one brand.

0 copies
$3.99
Run 1 — "editorial minimal to swiss grid": 4 studies, mostly type-led layouts on cream, one with a single coral block. Keep #2.
Run 2 — "bold gradient to organic blob": 4 studies, loud and warm; #3 reads premium, #1 and #4 read like a crypto site. Keep #3.
Run 3 — "monochrome photo to dual-tone coral + blue": #2 and #4 both strong; #4 has a human figure, which the brief wants. Keep #4.
Run 4 — "brutalist to soft 3D": nothing on-brief; the 3D ones drift corporate. Keep none.
Run 5 — "magazine collage to clean product UI": #1 is the most distinct thing in the set. Keep #1.

Gut cut: 20 → 8. Brief cut (premium + human): 8 → 4. Coverage cut (meaningfully different): 4 → 3.

Directions to present:
A. Type-led cream with one coral block (Run 1 #2)
B. Dual-tone editorial photo with a figure (Run 3 #4)
C. Collage with torn-paper edges (Run 5 #1)
Move all three into Figma; start high fidelity on B.
PromptImagesPro
  • Midjourney
Design

Twenty Direction Studies in Thirty Minutes

Explore the brief's style range in five runs, then curate to three distinct directions for the client.

0 copies
$3.99
Subject: the 14-week ramp

Sam — on the call you said ramp "is going to kill us by Q2" if the eight new AEs land without a playbook. That line has stayed with me, which is why I am writing rather than waiting.

I know a quiet week usually means priorities moved, not that the problem did.

Two options: A — we start a two-week pilot with the first cohort on Thursday the 19th; B — we park it until the cohort is hired and I check back the first week of July. Reply "A" or "B" and I will handle the rest.

If this is a no, a one-line "not now" is genuinely fine — it lets me stop guessing.

— Dana

LinkedIn version:
Sam — your "ramp will kill us by Q2" line is still on my notepad. Pilot Thursday, or park it till July? A or B is enough.
PromptTextFree
  • ChatGPT
  • Claude
Marketing

Follow-Up for a Deal That Went Quiet

Re-open a stalled deal by quoting one moment from the call and offering a one-word next step.

0 copies
Free
Generated: a single paper plane lifting away from a neat stack of sticky notes, flat vector style with two-tone shading and no outlines, royal blue plane on a warm cream background with one coral note on top of the stack. The subject sits in the left 55% of the frame; the right 45% is clean cream with no elements. 16:9, 2048 px wide. No text, no logos, no screens.

Revision requested: "keep everything, make the plane's shadow softer and add a faint dotted flight path." Kept composition and palette; softened the shadow to 20% opacity; added a dotted arc from the stack to the plane in the same blue.
PromptImagesPro
  • ChatGPT
  • GPT Image
Design

Launch Illustration With Headline Space

A flat, on-palette illustration for an announcement, composed with the right half left empty for your copy.

0 copies
$3.99
Edited draft

AI lessons that take 15 minutes a day. Used by 12,000 professionals in 40 countries. Start your free 5-day trial.

Change log
- "a revolutionary AI-powered learning experience" → "AI lessons that take 15 minutes a day" — "revolutionary" is a tell; 15 minutes is a number the reader can picture
- "empowering professionals worldwide to thrive" → "used by 12,000 professionals in 40 countries" — abstraction replaced with proof
- "Begin your transformative journey today" → "Start your free 5-day trial" — the actual offer is more persuasive than the metaphor
- cut "seamlessly", "cutting-edge", "unlock" — adjectives with no referent
- "trusted by teams" → [NEEDS NUMBER] — kept, but it needs a count or a name

Weakest remaining line: "40 countries" is impressive only if the reader is outside the US; consider replacing with a named company.
PromptTextFree
  • ChatGPT
  • Claude
  • Gemini
Writing

Edit My Draft and Show Every Change

Tighten a draft by a set percentage, swap vague adjectives for numbers, and log each change with its reason.

0 copies
Free
/imagine a 30-something founder in a sunlit home office, editorial photography, warm golden-hour window light from behind and to the right, shallow depth of field, quietly confident expression, candid moment not posed, subject placed on the left third with clean negative space on the right for a headline, muted cream and royal-blue tones, slight film grain, no text, no logos --ar 16:9 --s 150 --c 10 --v 7

Four-grid read: image 1 and 3 have the subject centred (discard); image 2 has the cleanest right-side space and the light wraps the face without blowing out; image 4 is a near-duplicate of 2 with a busier background. Upscale 2 (Subtle). If the hand on the mug is off, Vary Region the hand only; do not reroll.
PromptImagesFree
  • Midjourney
Design

Editorial Landing-Page Hero

A candid, magazine-feel hero image with the subject on the left third and clean space for your headline.

0 copies
Free
Restating: submitting the sign-up form throws `column "email" does not exist`, and you expected to be redirected to /dashboard. It worked before the profile table was added.

Ranked causes
1. The sign-up handler now inserts into `profiles`, which has no `email` column — the form was pointed at the new table, not `users`. Check: open the insert in `signup.ts`; if the table is `profiles`, confirmed.
2. A migration added `profiles` without `email` while the ORM model still declares it. Check: compare `schema.sql` to the model.
3. Two databases (local vs. hosted) with different schemas. Check: run the migration list against the hosted DB.

Checking #1: `signup.ts` line 22 inserts `{ email, name }` into `profiles`. Confirmed.

Fix (smallest): insert `email` into `users` as before, and only `{ user_id, name }` into `profiles`.
- await db.from("profiles").insert({ email, name })
+ const { data: u } = await db.from("users").insert({ email }).select("id").single()
+ await db.from("profiles").insert({ user_id: u.id, name })

Verify: sign up with a fresh address; you should land on /dashboard and see one row in each table.
Regression risk: any other code that assumed profiles.email — I found none.
PromptCodeFree
  • ChatGPT
  • Claude Code
  • Codex
  • +3
Coding

Diagnose Before You Fix

A bug report the AI can act on: what you did, what happened, what you expected — with a confirm-first rule.

0 copies
Free

Founder: common questions

What is the most useful AI prompt for an early-stage founder?

Start with The One-Page Brand Brief. It is free, and pasting it above other marketing prompts gives them your positioning, audience and voice, which makes every later output more specific.

Can a non-technical founder build an app with these?

Yes, that is who the Vibe-Coding Starter Kit and The First Build Prompt are for. Run Pre-Launch Security Review before you take real users or payments.

How do founders pay for Risemi products?

Free products need only a free account. Paid ones are one-time purchases from $3.99 to $12.99, or included in Risemi Pro.

Guides

By role

By agent or tool

By task

By output