Landing Pages
Premium SaaS Landing Page
入门Generate an Awwwards-grade landing for a B2B SaaS in one shot.
Build a premium, conversion-focused landing page for a B2B SaaS called {{PRODUCT}}.
Sections, in order:
1. Sticky transparent navbar with logo, 4 links (Product, Pricing, Customers, Blog) and a primary CTA.
2. Hero: large editorial headline (Playfair Display italic for the accent word), one-line subhead, primary + secondary CTA, trust strip with 5 fake company wordmarks.
3. Social proof: 3-up metric stat bar (e.g. "32% faster", "1,200+ teams", "4.9/5 G2").
4. Feature grid: 6 cards with lucide icons, short title, 1-line description.
5. Long-form value section: 3 alternating image/text rows ("zig-zag").
6. Testimonial carousel: 3 quotes with avatar + role.
7. Pricing: 3 tiers, middle tier highlighted, "most popular" ribbon.
8. FAQ accordion: 6 questions.
9. Footer with 4 columns.
Design rules:
- Light theme, off-white background (#FAFAF7), near-black text.
- Inter Display for headings, Inter for body, Playfair Display italic for accent words only.
- Subtle motion: fade-up on scroll, no parallax.
- All colors via semantic tokens in index.css, no hex inside components.
- Mobile-first responsive, generous whitespace.→ Replace {{PRODUCT}}. Re-prompt afterwards: 'tighten typography and increase contrast in the pricing section.'
Auth & Database
Supabase Auth + Role-Based Access
进阶Bulletproof email auth with admin/user roles and RLS that won't break.
Enable Lovable Cloud and implement authentication.
Requirements:
- Email + password signup and login (no magic links).
- Add Google sign-in as a second option.
- Create a 'profiles' table with columns: user_id (FK to auth.users, cascade), display_name, avatar_url, created_at, updated_at.
- Create a separate 'user_roles' table with an app_role enum ('admin', 'user'), NEVER store roles on profiles.
- Implement a SECURITY DEFINER has_role(_user_id, _role) function and use it in all RLS policies.
- Auto-create a profile row via a trigger on auth.users insert.
- Add a /login page, /signup page, /reset-password page, and an /account page that shows the current user's profile.
- Persist session with onAuthStateChange BEFORE getSession (no race conditions).
- Protect /account with a redirect to /login if not authenticated.
Do not auto-confirm emails. Do not store the service role key on the client.→ Pair with the migration tool. If users can't write to profiles, you forgot the INSERT policy.
#auth#supabase#rls#security
SaaS
Stripe Checkout via Edge Function
高级Production-ready checkout without leaking secret keys to the client.
Add Stripe Checkout for a single subscription product.
1. Create an edge function 'create-checkout' that:
- Reads STRIPE_SECRET_KEY from secrets.
- Accepts a JSON body { price_id: string }.
- Validates input with zod.
- Looks up or creates a Stripe customer keyed by the authenticated user's email.
- Creates a Checkout Session in 'subscription' mode with success_url and cancel_url pointing back to the app origin.
- Returns { url }.
- Includes CORS headers on every response, including errors.
2. Create an edge function 'stripe-webhook' (verify_jwt = false in config.toml) that:
- Verifies the Stripe signature using STRIPE_WEBHOOK_SECRET.
- On 'checkout.session.completed' upserts a row in a 'subscribers' table (user_id, stripe_customer_id, status, current_period_end).
3. On the client, add a "Subscribe" button on /pricing that calls supabase.functions.invoke('create-checkout') and redirects to data.url in a new tab.
Never expose the Stripe secret key on the client. Never store webhook secrets in code.#stripe#payments#edge function
Dashboards
Linear-Inspired Dashboard Shell
进阶A dense, keyboard-driven dashboard layout that doesn't feel like a template.
Build a dashboard shell inspired by Linear.
Layout:
- Left rail (240px) with workspace switcher, primary nav (Inbox, My Issues, Active, Backlog, Projects), and a collapsed "Teams" section.
- Top bar with breadcrumb, global search (Cmd+K), and a circular avatar.
- Main canvas with a list view: dense rows (40px), each row shows priority dot, id badge, title, assignee avatars, status pill, date.
Interactions:
- Cmd+K opens a command palette built on shadcn/ui Command.
- Hover row shows a quick-action toolbar (assign, change status, snooze).
- Pressing 'c' anywhere opens a "Create issue" dialog.
Visual rules:
- Use neutral grays from semantic tokens, single accent color for primary actions.
- 13px base text, tabular numerals for ids and dates.
- No drop shadows except on the command palette.
AI Features
Streaming AI Chat with Lovable AI
进阶Drop a real streaming chat into any app using the Lovable AI gateway.
Add an AI chat using the built-in Lovable AI gateway (no API key required from the user).
Backend (edge function 'chat'):
- Accepts { messages: { role, content }[] }.
- Calls https://ai.gateway.lovable.dev/v1/chat/completions with the LOVABLE_API_KEY secret.
- Uses model 'google/gemini-2.5-flash'.
- Streams the response back to the client using a ReadableStream and 'text/event-stream' headers.
- Include CORS headers on all responses.
Client (/chat page):
- Message list with role-styled bubbles (user right-aligned, assistant left-aligned).
- Input with Cmd+Enter to send.
- While streaming, append tokens to the last assistant message in real time.
- Show a "Stop" button that aborts the fetch.
Design: messages 15px, generous line-height, fade-in each new message.SEO
SEO Meta + JSON-LD for Every Page
入门Make Google love a Lovable site without installing a single SEO library.
Create a useSEO hook in src/lib/seo.ts that imperatively sets:
- document.title (under 60 chars)
- meta description (under 160 chars)
- canonical link
- og:title, og:description, og:image, og:url, og:type
- twitter:card=summary_large_image, twitter:title, twitter:description, twitter:image
- a single <script type="application/ld+json"> tag with the provided schema, replaced on each route
Then call useSEO on every page (Home, Blog index, each article, etc.) with route-specific values.
Also:
- Update public/sitemap.xml with all routes.
- Update public/robots.txt to allow all and reference the sitemap.
- Ensure exactly one <h1> per page and use semantic <article>, <section>, <nav> tags.
Bug Fixes
Fix Broken Mobile Layout in One Prompt
入门When a Lovable build looks great on desktop but breaks at 375px.
The site looks fine on desktop but breaks below 768px. Audit and fix every page so it is flawless on a 375x812 viewport.
Specifically:
- No horizontal scroll anywhere.
- Headings drop one size step on mobile (e.g. text-6xl md:text-7xl).
- Convert all multi-column grids to single column under md.
- Stack hero CTAs vertically and make them full width.
- Reduce hero vertical padding by ~30% on mobile.
- Ensure every section has px-6 minimum side padding.
- Open the navbar as a full-screen overlay on mobile, not a dropdown that pushes content.
After the fix, list each file you edited and the breakpoint changes you made.
#mobile#responsive#tailwind
Design System
Convert Hardcoded Colors to Design Tokens
进阶Refactor a project where every component has bg-white and text-black scattered everywhere.
Refactor the entire project to use semantic design tokens.
1. In src/index.css, define a complete token set in :root and .dark:
--background, --foreground, --card, --card-foreground, --popover, --popover-foreground,
--primary, --primary-foreground, --secondary, --secondary-foreground,
--muted, --muted-foreground, --accent, --accent-foreground,
--destructive, --destructive-foreground, --border, --input, --ring,
plus a --gradient-primary and --shadow-elegant.
All values in HSL.
2. In tailwind.config.ts, map every token to a Tailwind color via hsl(var(--token)).
3. Sweep every component: replace bg-white -> bg-background, text-black -> text-foreground, text-gray-500 -> text-muted-foreground, etc.
4. Verify dark mode works by toggling .dark on <html>.
#design system#tailwind#tokens
Mobile
Make Any Lovable App Installable (PWA)
进阶Ship an installable home-screen app without ejecting.
Convert this Lovable app into an installable PWA.
1. Add /public/manifest.webmanifest with name, short_name, start_url='/', display='standalone', background_color, theme_color, and 192/512 icons (generate placeholder icons in /public/icons/).
2. Link the manifest from index.html and add <meta name="theme-color">.
3. Add a minimal service worker at /public/sw.js that caches the app shell on install and serves cache-first for static assets, network-first for /api and edge function calls.
4. Register the SW from src/main.tsx after window load, only in production.
5. Add an iOS install hint (apple-touch-icon, apple-mobile-web-app-capable meta).
Test on a real mobile browser. The site must be fully usable offline for the cached shell.
Landing Pages
Editorial Blog System (No MDX)
高级Magazine-quality blog using plain TS data, no MDX required.
Build an editorial blog system.
Data: a TS file src/data/blog.ts exporting an Article[] where each article has slug, title, deck, hero image, date, readTime, tags, author, and a body: Block[] union (paragraph, h2, h3, quote, pullquote, ul, ol, callout, table, cta, faq).
Pages:
- /blog index: featured hero article, category filter chips, search input, responsive 3-col card grid.
- /blog/:slug: ArticleLayout component renders Block[] into typographically perfect long-form. Includes:
- Sticky table of contents on desktop (right rail).
- Reading progress bar at the top.
- Drop cap on the first paragraph.
- Pull-quote style for { type: 'pullquote' }.
- FAQ accordion using shadcn/ui Accordion.
- JSON-LD Article + FAQPage + BreadcrumbList schema.
Typography: Playfair Display for h1/h2 (medium weight, italic accents), Inter for body, 19px base, 1.7 line-height, max-width 68ch. Plenty of whitespace.SaaS
Waitlist + Welcome Email
入门Capture early signups and send a real welcome email.
Build a waitlist.
1. Migration: create a 'waitlist' table (email unique, referrer text, created_at). Enable RLS, allow public INSERT only.
2. Landing form: single email input, validates with zod, optimistic UI, success state replaces the form with "You're in. Check your inbox."
3. Edge function 'send-welcome' triggered after insert: uses Resend (RESEND_API_KEY secret) to send a plain-text welcome email signed by the founder.
4. Track UTM source in the referrer column.
5. Admin route /admin/waitlist (protected) that lists all signups with a CSV export button.
Bug Fixes
Reproducible Bug Report Template
入门Stop the 'it's still broken' loop. Give Lovable everything it needs.
When reporting a bug, paste this template:
**What I did:** <exact click path, including which page>
**What I expected:** <one sentence>
**What actually happened:** <one sentence, plus screenshot or recording>
**Console errors:** <paste the red errors from devtools, full stack>
**Network failures:** <which request, status code, response body>
**Last change that worked:** <git/version reference if known>
**Affected files (your guess):** <optional>
Then ask Lovable: "Diagnose first, do not edit code. Tell me which file and line is responsible and what the minimal fix is. Then wait for me to approve before patching."
→ This pattern alone fixes ~70% of debugging loops.
Content & Writing
Long-Form Article First Draft
入门Turn a topic and a few bullet points into a publishable 800-word draft.
Write a {{WORD_COUNT}}-word first draft of an article titled "{{TITLE}}" for {{AUDIENCE}}.
Structure:
- Hook (specific scenario, not a question, not "In today's world").
- Context: why this matters right now.
- Body: cover these points in order: {{POINT_1}}, {{POINT_2}}, {{POINT_3}}.
- Direct closing with one actionable next step.
Rules:
- Subheadings every 150-200 words.
- Paragraphs under 4 sentences.
- No em-dashes, no emoji, no AI filler phrases ("dive into", "in the realm of", "unleash").
- One concrete example or number per main point.
- Tone: {{TONE}} (e.g. confident, plain-spoken, no hedging).→ Re-prompt: 'Cut 20% of the words. Keep the strongest example in each section.'
Content & Writing
Rewrite Any Draft for Clarity
入门Take a messy draft and tighten it without losing your voice.
Here is my draft: {{PASTE_DRAFT}}
Rewrite it for clarity and rhythm. Keep my ideas and my voice. Do not change the meaning.
Specifically:
- Cut redundant transitions and filler.
- Vary sentence length: short, medium, short.
- Replace passive voice with active where it helps.
- Remove any em-dashes, semicolons used as drama, and AI cliches.
- Keep paragraphs under 4 sentences.
Return the rewritten version only. No commentary.Content & Writing
Explain a Technical Concept Simply
入门Turn a complex feature or concept into copy a non-technical buyer can grasp.
Explain {{CONCEPT}} to someone who has no background in the subject.
Constraints:
- Use one core analogy and stick to it the whole way through.
- No jargon. If you must use a term, define it in the same sentence.
- 250 words maximum.
- End with one sentence that connects the concept to a real outcome the reader cares about ({{READER_OUTCOME}}).Marketing Copy
Landing Page Body Copy That Converts
进阶Generate hero, sub-hero, features and CTA copy aligned to a single pain point.
Write the body copy for a landing page selling {{PRODUCT}}.
Visitor: {{VISITOR_DESCRIPTION}}.
Main pain point: {{PAIN_POINT}}.
Primary CTA: {{CTA_TEXT}}.
Deliver, in this exact order:
1. Hero headline (under 9 words, names the outcome, not the feature).
2. Sub-headline (one sentence, 15-20 words, names the pain it removes).
3. Three feature blocks. Each: 3-word label, one-sentence benefit, one-sentence proof.
4. One social-proof line (format: "{{N}} {{ROLE}} already use {{PRODUCT}} to {{OUTCOME}}").
5. Final CTA block: 6-word reassurance + button label.
No adjectives like "powerful", "seamless", "revolutionary". No em-dashes.#landing#copywriting#conversion
Marketing Copy
Outcome-First Product Description
入门Replace feature-dump descriptions with copy that sells the result.
Write a 300-word product description for {{PRODUCT_NAME}}.
The product does: {{FUNCTION}}.
The buyer is: {{BUYER}}.
The buyer cares about: {{BUYER_OUTCOMES}}.
Rules:
- Lead with the outcome, not the feature.
- One paragraph of story (how the buyer's day changes), one paragraph of specifics (what's inside), one paragraph of reassurance (warranty / guarantee / who it's not for).
- No marketing cliches. No exclamation marks.Marketing Copy
Cold Outreach Email That Gets Replies
进阶Founder-to-founder outreach for partnerships, feedback, or early customers.
Write a cold email from me ({{MY_ROLE}} at {{MY_COMPANY}}) to {{TARGET_PERSON}} at {{TARGET_COMPANY}}.
Goal: {{GOAL}} (e.g. 15-min call, beta signup, link exchange).
Structure (max 90 words total):
- Subject line under 6 words, lowercase, specific.
- One opening sentence that proves I actually looked at their work ({{SPECIFIC_DETAIL}}).
- One sentence about why I'm writing.
- One sentence about what's in it for them.
- One soft ask, with two clear next steps.
No "I hope this finds you well". No "Just circling back". No emoji.Marketing Copy
Three Value-Prop One-Liners (A/B/C)
入门Quickly test three angles for the same product to pick the strongest.
Write three value-proposition one-liners for {{PRODUCT}}, each under 12 words.
Each version uses a different angle:
A. Outcome-led ("Get X without Y").
B. Speed-led ("Ship X in one weekend").
C. Identity-led ("For {{ROLE}} who {{BELIEF}}").
For each, add one sentence explaining which audience it resonates with most and why.Social Media
Twitter / X Thread From an Article
入门Recycle a published article into a 7-tweet thread with a clear hook.
Turn this article into a 7-tweet X thread: {{PASTE_ARTICLE_OR_URL}}
Rules:
- Tweet 1 is a hook with one specific number or claim. No question marks. No "let me tell you".
- Tweets 2-6 each carry one idea. Under 240 characters. One line break between thoughts.
- Tweet 7 is a soft CTA pointing back to the full article.
- No hashtags. No emoji except a single optional arrow in the CTA.
- Voice: direct, builder, first-person.#twitter#thread#distribution
Social Media
LinkedIn Post Builder (Founder Voice)
入门A repeatable template for high-signal LinkedIn posts about shipping with Lovable.
Write a LinkedIn post in my voice as a {{ROLE}} who just {{ACHIEVEMENT}}.
Structure (max 180 words):
- Line 1: a contrarian or counter-intuitive sentence that earns the click.
- Blank line.
- 4-6 short paragraphs (1-2 sentences each). Tell the actual story: what I tried, what broke, what I learned.
- One concrete number.
- Final line: a question that invites a comment, no "thoughts?".
No emoji. No hashtags. No "Excited to share".Social Media
60-Second Short / Reel Script
入门Hook-driven short-form script you can record without editing 10 times.
Write a 60-second vertical video script about {{TOPIC}} for an audience of {{AUDIENCE}}.
Format:
- 0-3s HOOK: one sentence that promises a specific payoff. No "in this video".
- 3-15s SETUP: the problem, in plain words, with one number or example.
- 15-45s PAYOFF: the solution as 3 numbered steps. Each step is one short on-screen sentence.
- 45-60s CTA: one sentence telling the viewer the single next action.
Output as: timestamp | on-camera line | on-screen text overlay.Productivity
Weekly Plan for Solo Builders
入门Turn a messy list of goals into a realistic, shippable week.
Here are my goals and open threads for next week: {{PASTE_DUMP}}
Give me a one-page weekly plan.
Output:
- One "north-star outcome" for the week, phrased as something a user can see or feel.
- Three priorities, in order, each tied to that outcome.
- A day-by-day Monday-Friday breakdown. Each day has at most 2 deep-work blocks and 1 admin block.
- A "do not do this week" list of 3-5 items to actively cut.
- One reflection question for Friday evening.
Be ruthless. If something doesn't serve the north star, move it off the week.Productivity
Meeting Notes → Action Items
入门Convert raw notes into a clean summary and owned next steps.
Here are my raw meeting notes: {{PASTE_NOTES}}
Return:
1. A 5-bullet summary of decisions made.
2. An action-items table with columns: Action | Owner | Due date | Definition of done.
3. A list of open questions that still need answers and who should answer them.
4. A 4-sentence recap I can paste into Slack.
Do not invent owners or dates. If unclear, mark as "TBD" and flag it in the open questions list.Productivity
One-Page Decision Doc
进阶Stop spinning on a choice, force the decision into one structured page.
Help me make this decision: {{DECISION}}
Context: {{CONTEXT}}
Constraints: {{CONSTRAINTS}}
What "good" looks like in 90 days: {{SUCCESS_CRITERIA}}
Produce a one-page decision doc with:
- The decision restated in one sentence.
- 3 realistic options. For each: what it is, what it costs (time / money / focus), what it gives up.
- A scoring table against the success criteria (1-5 per criterion).
- Your recommendation and the single biggest risk of that recommendation.
- The reversibility check: is this a two-way door or a one-way door?Research & Strategy
Competitor Teardown in 10 Minutes
进阶Get a structured read on a competitor before you spend a sprint copying them.
Do a structured teardown of {{COMPETITOR_URL}} for someone building {{MY_PRODUCT}} aimed at {{MY_AUDIENCE}}.
Sections:
1. Positioning: the one sentence they would write about themselves vs. the one sentence their users would write.
2. Pricing model and what it signals about who they really sell to.
3. The 3 things they do better than anyone else.
4. The 3 things they're clearly weak at (be specific, not generic).
5. Where I can credibly out-position them in one sentence.
6. One thing I should NOT copy from them and why.#competitive#research#positioning
Research & Strategy
Sharp Ideal Customer Profile (ICP)
进阶Replace vague personas with a precise ICP you can actually market to.
Build a sharp ICP for {{PRODUCT}}.
Inputs:
- What it does: {{WHAT}}
- Best 3 current users (role + company size + use case): {{TOP_USERS}}
- What those users were using before: {{PREVIOUS_TOOL}}
Output:
1. ICP in one sentence: "{{ROLE}} at {{COMPANY_TYPE}} who {{TRIGGER}} and currently {{WORKAROUND}}."
2. The "tell-tale signal" that someone is in the ICP (a job title, a tool in their stack, a specific pain in their week).
3. 3 places this person already hangs out online.
4. 3 phrases they use to describe their pain in their own words (not marketing language).
5. The one objection they will raise first, and the honest answer.#icp#audience#positioning
Research & Strategy
Pricing Experiment Plan
高级Design a defensible pricing test instead of guessing tiers.
I want to test pricing for {{PRODUCT}}. Current pricing: {{CURRENT_PRICING}}. Costs per user: {{COSTS}}. Goal: {{GOAL}} (e.g. raise ARPU 25%, reduce churn, qualify enterprise).
Give me a 30-day pricing experiment plan:
1. The single hypothesis being tested, written as "If we change X, then Y will happen because Z".
2. Two pricing variants (current vs. proposed), with clear value-metric and tier structure.
3. The metrics that decide the test (primary + 2 guardrails).
4. Sample size or time needed to call the result.
5. The rollback plan if the variant loses.
6. How to communicate the change to existing users without breaking trust.#pricing#monetization#experiments
Landing Pages
Editorial Magazine-Style Landing
进阶Awwwards-grade editorial homepage with a strong typographic point of view.
Build a homepage for {{BRAND}} that feels like a luxury print magazine, not a SaaS template.
Layout:
- Full-bleed hero with one giant Playfair Display headline (italic on the verb), a 14px Inter uppercase eyebrow above it, and a 16px lede below.
- An off-grid asymmetric feature row: 60/40 split, image on the long side, text in a narrow column.
- "From the editors" 3-card grid with hairline borders and large cap-height numbers.
- Quiet CTA strip: cream background, single sentence, single text link with an arrow.
- Footer in two rows: sitemap on top, fine print on the bottom.
Rules:
- Off-white (#FAFAF7) background, near-black (#111) text, ONE accent color (deep purple hsl 258 60% 50%).
- All colors as semantic tokens in index.css. No hex inside components.
- Inter Display + Playfair Display italic for accents only. No other fonts.
- No gradients, no glassmorphism, no emoji.→ Follow-up: 'reduce visual noise, make the hero quieter, increase the headline size by 20%.'
#editorial#magazine#typography
Landing Pages
AI Product Launch Page
入门Launch page for an AI-powered tool with a working demo embed slot.
Create a launch landing for {{PRODUCT}}, an AI tool that {{ONE_LINE_VALUE}}.
Sections:
1. Hero: headline, 1-line subhead, primary CTA "Try it free", secondary "Watch 60s demo".
2. Live demo block: a card with a textarea, a "Generate" button, and a sample output area. Wire the button to call lovable-ai with model 'google/gemini-2.5-flash' and stream the result into the output area.
3. "What it replaces" comparison row: 3 columns (Before, With {{PRODUCT}}, Time saved).
4. 6-feature bento grid (asymmetric tile sizes).
5. Use cases tabs: 4 personas, each with a short scenario.
6. FAQ + CTA.
Tech:
- Use Lovable Cloud for any backend.
- Stream AI responses, do not block the UI.
- All semantic color tokens, dark mode aware.→ Replace {{PRODUCT}} and {{ONE_LINE_VALUE}}. Then iterate on the demo block UX.
Landing Pages
Boutique Agency Portfolio
进阶High-end agency site that signals craft without being precious.
Design a homepage for a 4-person design studio called {{AGENCY}}.
- Single-column, long-scroll layout. No nav links except a logo and a "Start a project" button.
- Hero: 2 lines of large serif text + a tiny "Currently booking Q2 2027" tag.
- Selected work: 3 case studies as large image cards with a project name, role, year. Hovering tilts the image 1deg, no more.
- Capabilities: short list in 2 columns, no icons.
- "How we work" 4-step strip with hairline numbers.
- Quiet contact block with a real email address, not a form.
Constraints:
- Cream background, black text, single muted accent.
- Inter for everything except case-study titles which use Fraunces.
- No stock photography placeholders. Use solid color blocks labeled "case study image".#agency#portfolio#case-study
Landing Pages
Standalone Pricing Page
入门Drop-in pricing page that actually converts.
Build a /pricing page for {{PRODUCT}}.
- 3 tiers (Starter, Pro, Scale). Middle tier highlighted with a hairline border and a "Most popular" badge.
- Each tier: price (annual default, monthly toggle), 1-line audience, primary CTA, 6-bullet feature list with check icons.
- Below tiers: feature comparison table, 5 categories, 12 rows total.
- Money-back guarantee strip + 3-question FAQ specifically about billing.
- Sticky "Talk to sales" link in the corner for enterprise.
Rules:
- Annual/monthly toggle stored in URL search param.
- No fake urgency, no fake discounts.
- Use semantic tokens, no hardcoded colors.Landing Pages
Changelog-Style Product Page
进阶Public changelog that doubles as a marketing surface.
Create a /changelog route for {{PRODUCT}}.
- Hero: "What's new" + RSS link + filter by tag (Feature, Fix, Performance).
- Each entry: date on the left rail, version chip, 2-sentence summary, optional image, bullet list of changes.
- Most recent entry expanded by default, older ones collapsed.
- "Subscribe to updates" inline email form using Lovable Cloud.
- Pagination: 10 per page, server-side via Supabase.
Data:
- Create a public 'changelog_entries' table with proper GRANTs and an RLS policy allowing public SELECT on published rows only.
- Seed with 6 example entries.#changelog#product#updates
Landing Pages
Indie Hacker Personal Site
入门One-page personal site for an indie founder.
Build a one-page personal site for {{NAME}}, an indie founder shipping small SaaS.
Sections in order:
1. Tiny header: name + "now" link.
2. 3-sentence intro in large serif.
3. "Currently building": 2 product cards with logo, name, MRR (optional), short description.
4. "Shipped": list of past projects with year and status (sold, sunset, live).
5. "Writing", 5 most recent essays.
6. Footer with email + X + GitHub.
Rules:
- No hero image. No social proof. No CTA except "Email me".
- Off-white, serif headings, no animations beyond fade-up.#personal#portfolio#indie