← All blocks
Blog index with category filter
blog · filterable-grid · blog-post-grid
npx shadcn@latest add @plus-ui/blog-post-gridDefault content
{
"eyebrow": "The Tessaly blog",
"title": "Notes on retention, funnels and revenue",
"description": "What we learn measuring our own product and helping 1,400 SaaS teams measure theirs. New posts every Wednesday.",
"categories": [
"Retention",
"Funnels",
"Revenue",
"Research",
"Engineering"
],
"labels": {
"all": "All posts",
"filter": "Filter posts by category",
"featured": "Featured",
"recent": "Recent posts"
},
"viewAll": {
"label": "View all posts",
"href": "#"
},
"posts": [
{
"title": "Week-4 retention is the number we trust most. Here is why.",
"excerpt": "Day-1 retention flatters onboarding and day-90 arrives too late to act on. Week 4 is where habits show up early enough to change the roadmap.",
"href": "#",
"category": "Retention",
"cover": {
"src": "https://images.unsplash.com/photo-1434030216411-0b793f4b4173?auto=format&fit=crop&w=1200&h=800&q=80",
"alt": "A hand sketching a chart on paper beside a coffee cup"
},
"author": {
"name": "Danielle Okafor",
"role": "Head of Product",
"avatar": {
"src": "https://images.unsplash.com/photo-1573497019940-1c28c88b4f3e?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Portrait of Danielle Okafor"
}
},
"date": "Sep 24, 2026",
"dateTime": "2026-09-24",
"readTime": "8 min read"
},
{
"title": "Funnels that survive a pricing change",
"excerpt": "When the plan page changes, step definitions drift. How we version funnel steps so last quarter's conversion still means the same thing.",
"href": "#",
"category": "Funnels",
"cover": {
"src": "https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1200&h=800&q=80",
"alt": "Two people pointing at a funnel report on a laptop"
},
"author": {
"name": "Sofia Lindqvist",
"role": "Product Analyst",
"avatar": {
"src": "https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Portrait of Sofia Lindqvist"
}
},
"date": "Sep 17, 2026",
"dateTime": "2026-09-17",
"readTime": "6 min read"
},
{
"title": "Reconciling product revenue with the finance ledger",
"excerpt": "Product counts upgrades when they happen; finance counts them when they are invoiced. A practical guide to closing the gap every month.",
"href": "#",
"category": "Revenue",
"cover": {
"src": "https://images.unsplash.com/photo-1499750310107-5fef28a66643?auto=format&fit=crop&w=1200&h=800&q=80",
"alt": "A laptop, coffee and an open notebook on a wooden desk"
},
"author": {
"name": "Marcus Hale",
"role": "Data Engineer",
"avatar": {
"src": "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Portrait of Marcus Hale"
}
},
"date": "Sep 10, 2026",
"dateTime": "2026-09-10",
"readTime": "11 min read"
},
{
"title": "Twelve interviews about the dashboards nobody opens",
"excerpt": "We asked customers which saved reports they had stopped reading. The answers changed how we design defaults for new workspaces.",
"href": "#",
"category": "Research",
"cover": {
"src": "https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=1200&h=800&q=80",
"alt": "A team sorting interview notes on a sticky-note wall"
},
"author": {
"name": "Amara Nwosu",
"role": "Customer Research",
"avatar": {
"src": "https://images.unsplash.com/photo-1534528741775-53994a69daeb?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Portrait of Amara Nwosu"
}
},
"date": "Sep 3, 2026",
"dateTime": "2026-09-03",
"readTime": "7 min read"
},
{
"title": "Event naming that still makes sense in two years",
"excerpt": "Object, action, past tense. The conventions behind 4,000 tracked events in our own workspace — and the three we wish we had broken earlier.",
"href": "#",
"category": "Engineering",
"cover": {
"src": "https://images.unsplash.com/photo-1498050108023-c5249f4df085?auto=format&fit=crop&w=1200&h=800&q=80",
"alt": "A laptop showing code on a white desk with a plant"
},
"author": {
"name": "Tomás Ortega",
"role": "Engineering Lead",
"avatar": {
"src": "https://images.unsplash.com/photo-1500648767791-00dcc994a43e?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Portrait of Tomás Ortega"
}
},
"date": "Aug 27, 2026",
"dateTime": "2026-08-27",
"readTime": "9 min read"
},
{
"title": "Cohorts by plan, not by signup week",
"excerpt": "Signup-week cohorts hide what pricing does to retention. Grouping by first paid plan showed us which tier was quietly churning.",
"href": "#",
"category": "Retention",
"cover": {
"src": "https://images.unsplash.com/photo-1519389950473-47ba0277781c?auto=format&fit=crop&w=1200&h=800&q=80",
"alt": "An overhead view of a shared desk with laptops and notebooks"
},
"author": {
"name": "Sofia Lindqvist",
"role": "Product Analyst",
"avatar": {
"src": "https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Portrait of Sofia Lindqvist"
}
},
"date": "Aug 20, 2026",
"dateTime": "2026-08-20",
"readTime": "5 min read"
}
]
}