A SaaS with 100% Churn, yet LTV > CAC
Tl;DR
MVP first - Tomate fuco y a toma pcul0
Get those eyes going via ads towards: https://www.slubnechwile.com/
See what works and what not - PMF :)
npm install stripe firebase-adminIntro
For green field AI vibe coding has been great, for brown field…not that much.
Despite the project docs with AI was interesting
Thats why I want to put together some boilerplates that just get the work done.
And…ship sth already this year.
The main pieces are clear already as per:
People do their things:
I want to do mine:
- S vs D:
- Supply - ~ infinite (∞), scalable via Serverless storage.
- Demand - constrained, ad driven

With a very clear: Online marketing and an online delivery
Type of offer: attraction / upsale / downsale / continuity that’s how the landing should be presented, later will be other offers

Imagine that nice mermaid sankey representing the conversion funnel of such web app
and this
The launch strategy: aka, focus strategy
| Element | Decision |
|---|---|
| One Avatar | |
| One Product | |
| One Channel |
The Tier of Service: A DFY that I made here and Ive transformed into DIY (thanks to leverage x tech) with the cool serverless tech stack below.
The customer segmentation: B2C
The expected
The tech stack:
| Requirement | Specification | Clarification / Decision |
|---|---|---|
| Frontend Framework | ||
| Styling/UI Library | ||
| Backend | ||
| Database | ||
| Authentication | ||
| E-mail/ESP | ||
| Analytics | ||
| Hosting |
Choosing an UI tech stack 📌
- HUGO: Lightning-fast speed.
- Astro: Built-in support for server-side rendering (SSR).
- Jekyll: Simplicity and ease of use, particularly for blogging.
- Gatsby: Rich ecosystem of plugins and a vibrant community.
Gatsby: Gatsby is a popular static site generator within the React ecosystem, leveraging React for building static sites and offering a rich plugin ecosystem.
Pros:
- Ability to pull data from various sources, including CMSs and APIs.
- React-based, enabling component-based development and rich interactivity.
- Extensive plugin ecosystem for adding functionality and integrating with third-party services.
Cons:
- Longer build times for large projects due to complex data fetching and processing.
- Steeper learning curve for developers unfamiliar with React.
- Requires a Node.js environment for development and building.
Next.js: Next.js is primarily known as a React framework for SSR and CSR, but it also offers SSG capabilities, providing flexibility for different project needs.
Pros:
- Versatility to choose between SSR, CSR, or SSG based on project requirements.
- Seamless integration with React for building dynamic user interfaces.
- Hybrid capabilities for blending static and dynamic content in a single application.
Cons:
- Complex configuration compared to simpler static site generators.
- Requires familiarity with React and Node.js for effective usage.
- Limited built-in features compared to dedicated static site generators like Hugo.
Getting Here
This has been…a series of random steps.
#dig slubnechwile.com any
#ping slubnechwile.com
#curl https://slubnechwile.com/sitemap-index0.xml
whois slubnechwile.com | grep -i -E "(creation|created|registered)"
git clone https://github.com/JAlcocerT/slubnechwilegit init && git add . && git commit -m "Initial commit: starting for google ads" && gh repo create slubne-chwile-y26 --private --source=. --remote=origin --pushAnd it goes like: hey antigravity…and Claude 4.5 Opus
can you have a look to the z-brd, z-frd z-prd and z-user-flow documents and let me know if the requirement and end goal of the project is clear?
wherever you see gap, lets clarify them into a z-clarifications.md document, where i will provide directionConfigure your stripe payment link: https://dashboard.stripe.com/
Pełny Pakiet Weselny: Prywatna galeria 360°, 250GB miejsca na zdjęcia i filmy od gości, nielimitowane przesyłanie przez 14 dni oraz 1 rok bezpiecznego przechowywania pamiątekAnd remember that you can prefix the email that has paid by doing like so.
For your launch phase with a low daily budget, you should optimize for Sign-ups (Account Creation) rather than Purchases.
The ad algorithm needs to learn and also you need to learn with PostHog what are the frictions points.
- Oct25 - https://jalcocert.github.io/JAlcocerT/building-in-public-wedding-photo-galleries/
- Jun25 - https://jalcocert.github.io/JAlcocerT/wedding-photo-galleries/
- Feb25 - https://jalcocert.github.io/JAlcocerT/software-for-weddings/
Tinkered with Selfhosting
Like…a lot.
Discovered one for weddings
I tested wedding share…and it looked cool.
People liked it.
All of this happened while travelling.
Yea, I took the laptop :)
Also Saw Cool Themes
Lightweight wedding website that you host | Configurable via yaml!
I got to know about NextJS for SSG purposes.
And themes like SaaSify can do the trick.
https://developers.cloudflare.com/pages/framework-guides/nextjs/
https://jamstack.org/generators/next/
https://vercel.com/templates/next.js
https://jamstackthemes.dev/theme/nextjs-notion-starter-kit/ https://transitivebullsh.it/nextjs-notion-starter-kit
<https://transitivebullsh.it/
DFY for a close one
But they needed something simpler.
So i made a filebrowser + custom QR setup.
How could I not tinker with QR for the sake of it…
With Python:
And with node:

Even with a SliDev VUE Components like this one you can generate QRs!
<a class=“hextra-card group flex flex-col justify-start overflow-hidden rounded-lg border border-gray-200 text-current no-underline dark:shadow-none hover:shadow-gray-100 dark:hover:shadow-none shadow-gray-100 active:shadow-sm active:shadow-gray-200 transition-all duration-200 hover:border-gray-300 bg-transparent shadow-sm dark:border-neutral-800 hover:bg-slate-50 hover:shadow-md dark:hover:border-neutral-700 dark:hover:bg-neutral-900"href=“https://github.com/JAlcocerT/Home-Lab/tree/main/py-static/qr-pdf" target="_blank” rel=“noreferrer”> QR CSR | Python static server ↗
Not all the content is indexed in the same way across engines and you can miss valuable info.
Even Reqable has one: Tools -> More QR-Code
Even with a SliDev VUE Components like this one you can generate QRs!
<a class=“hextra-card group flex flex-col justify-start overflow-hidden rounded-lg border border-gray-200 text-current no-underline dark:shadow-none hover:shadow-gray-100 dark:hover:shadow-none shadow-gray-100 active:shadow-sm active:shadow-gray-200 transition-all duration-200 hover:border-gray-300 bg-transparent shadow-sm dark:border-neutral-800 hover:bg-slate-50 hover:shadow-md dark:hover:border-neutral-700 dark:hover:bg-neutral-900"href=“https://github.com/JAlcocerT/Home-Lab/tree/main/py-static/qr-pdf" target="_blank” rel=“noreferrer”> QR CSR | Python static server ↗

Tinkered with Serverless
And i dont mean static deploy to cloudflare pages this time
I mean about serverless s3 storage, via cf R2.
Which i got familiar with on this post.

Exactly, the nextjs-r2 project repo show me sth: there is life beyond filebrowser
# Cloudflare R2 Configuration
#get this one from the Workers and Pages section!
ACCOUNT_ID=6f6de37edde332d0622d5802db839ff7
# Required for Pre-signed URLs and Temporary Credentials methods
# Get these from: R2 → Manage R2 API tokens → Account API Tokens → Create API token
ACCESS_KEY_ID=
SECRET_ACCESS_KEY=
# R2 Bucket Name
# The name of your R2 bucket (e.g., my-nextjs-demo-bucket)
BUCKET_NAME=my-nextjs-demo-bucket
# Required ONLY for Temporary Credentials method
# Get this from: My Profile → API Tokens → Create Token
# Permissions needed: Account - Workers R2 Storage:Edit, User - API Tokens:Edit
AUTH_TOKEN=
# Note: Workers API method doesn't use these environment variables
# It uses R2 bindings configured in wrangler.toml insteadAnd … more websites
Not just the latest DIY Landing boilerplate
Themes: https://vercel.com/templates
Some of my Favourite Themes
- https://nextra.site/
- https://github.com/shadcn-ui/taxonomy
- https://jamstackthemes.dev/theme/nextjs-notion-starter-kit/
Emails too, ofc
I made an email APIs 101 here.
Also, leveraged with the make landing project at this post.
You might be interested to see https://proton.me/support/catch-all for your support email with a discount.
If you are planning to use this domain with Proton Mail, note that weʼll only accept email for enabled addresses with encryption keys.You might reveal that a business email and privacy for ~70$/y is not that important for you as you say it is.
Inspired by MicroSaas
These kind of micro-SaaS are so so cool:
The simplest way to host & share your work online
https://github.com/uselinked/website from https://uselinked.com/
https://supersaas.dev/ - The Simple, Fast & Smart Nuxt 3 Fullstack Kit.
Starter kit / boilerplate landing with…a one time payment / Lifetime access.
- https://github.com/anthonylan/angie - I love those arrows and the look… https://github.com/JAlcocerT/angie
MIT | Angie is a free, open-source portfolio template featuring a bold, brutalist design that helps you stand out and showcase your work with style.
Why couldnt SlubnyChwile be inspired in one of those cool UIs? :)
Chatting with Gemini about the offer
ADS + BANT 🚀
That is the ultimate, high-level business question.
Your entire flow is strategically built to identify, filter, and cater to the four key elements of a qualified lead—Budget, Authority, Need, and Timing (BANT)—which is especially important when using paid advertising.
Here is how the Ślubne Chwile flow addresses and converts leads based on BANT criteria:
🎯 Matching the Flow to the BANT Sales Criteria
1. Need (The Problem Solver)
- Definition: Does the prospect have a legitimate problem that your service solves? (Losing guest photos/videos).
- Flow Mechanism:
- Landing Page: The Hero Section and the Benefits Section (Section 2) are entirely dedicated to establishing need. The headlines explicitly state the problem (“Nie Strać Żadnej Uśmiechniętej Chwili”) and offer the solution.
- Free Test: Allowing them to upload 5 photos and see the Admin Panel validates the need for collection and organization.
- Verdict: Need is established upon Landing Page conversion. If they register, they confirm they have this problem.
2. Timing (The Time-Driven Nudge)
- Definition: When does the prospect need the solution? (Tied to the wedding date).
- Flow Mechanism:
- Registration: Collecting the Wedding Date is the single most critical piece of BANT data. It allows you to schedule the rest of the sales process.
- Email Nurturing: Emails are scheduled to peak 3–4 months before the wedding—the ideal time when couples are finalizing vendor lists and security details.
- Paid Duration: Tiers are based on post-wedding access (1, 3, or 12 months), making the time/urgency a central conversion factor.
- Verdict: Timing is acquired at registration (A4) and utilized throughout the sales cycle (Z2).
3. Authority (The Decision Maker)
- Definition: Is this the person who can make the purchase decision? (The Bride and Groom).
- Flow Mechanism:
- Registration: Requiring both the Bride’s and Groom’s names (A4) explicitly targets the decision-makers. The personalization is immediately linked to their names (e.g.,
slubnechwile.pl/Anna-i-Jan), confirming they have the authority to act. - Password Security: The “Set Guest Password” feature (Z4) is a core control function that only the Authority would care about, forcing their attention to the paywall.
- Registration: Requiring both the Bride’s and Groom’s names (A4) explicitly targets the decision-makers. The personalization is immediately linked to their names (e.g.,
- Verdict: Authority is verified by the commitment to the customized link (A7).
4. Budget (The Price/Value Match)
- Definition: Can the prospect afford your service, and do they agree with the value?
- Flow Mechanism:
- Tiered Pricing (E): The three tiers address different budgets:
- Bronze (149 PLN): Caters to the lowest budget (anchor).
- Silver (299 PLN): Targets the average, high-profit budget (most popular).
- Premium (699 PLN): Targets the high-value, risk-averse budget (high AOV).
- Feature Stacking: The Silver and Premium features (Live Preview, Pre-Wedding Memories, 12-Month Access) are carefully stacked to provide disproportionately higher value than the simple price difference, forcing the customer to choose based on value, not just cost.
- Tiered Pricing (E): The three tiers address different budgets:
- Verdict: Budget is addressed at the point of conversion (Z5) after Need, Timing, and Authority have been established, making the pricing easier to accept.
The entire Ślubne Chwile flow is designed as a BANT qualification machine.
It uses free access to gather the necessary data (Need, Timing, Authority) before presenting the Budget, ensuring that by the time a couple sees the price, they are already highly qualified, emotionally invested, and ready to convert.
Conclusions
Is it a new product that needs evangelization?
No, there is demand already :)
Whats working and whats not?
Is the product not working? wrong seller? wrong avatar/target audience/client?
It has been all about building around the BANT idea.
Show the products ads for those that apply.
They get the free thing / trial and we are happy to get your feedback :)
git clone https://github.com/JAlcocerT/slubne-chwile-y26
#git pull
cd slubne-chwile-y26/slubnechwile/
#prepare ./slubnechwile/.env
#nano .env
#cd ..
#sudo docker compose up -d
#sudo docker compose down
#docker compose down && npm run build && node dist/server/entry.mjs
docker compose -f docker-compose.cloudflare.yml up -d --build
#docker inspect slubnechwile-app | grep "Networks" -A 20
#docker compose -f docker-compose.cloudflare.yml down
sudo docker logs slubnechwile-app --tail 100
#sudo docker system pruneNeed a product like this just that white-labeled to print money for you?
Consulting Services
DIY via ebooksSetting Up Google ads
This has been a thing: https://ads.google.com and https://tagassistant.google.com/
You will need terms, privacy policy and contact: https://support.google.com/adspolicy/answer/6368661?hl=en#673
Anda support mail.
But…hey, they take you by the hand and make your on boarding very simple.
Admire how much resources they can provide you, just so that you place that CC details for them.

The CX customer experience was impressive.
Keywords: weddings
Budget: whatever per month
Pros say to keep getting better at this until you spend successfully 6k$/month
1/2/8 pln click (cost per click) depending on competition.

gtag('event', 'conversion', {
'send_to': 'AW-',
'value': 1.0,
'currency': 'PLN',
'transaction_id': ''Random Things I Got to know
- Google uses salesforce $CRM and also
https://www.qualtrics.com/for feedback - Maybe having an optimized video sales on the landing, like this one:
https://thebigschool.com/master-ia/ - Also…the whatsapp bouble for signups people?
FAQ
The FlaskCMs / NextJS CMS i tried to built were similar to these OSS for Selfhosted Blogs
MIT | self-hosted blog platform built with next.js
Adsense vs OpenAdServer
If you want to do the oppositve: renting attention of your readers and get paid for it:
Open Source Ad Serving Platform with ML-Powered CTR Prediction | Self-hosted alternative to Google Ad Manager | Python, FastAPI, PyTorch
More KPIs
In addition to Total Lifetime Value (TLV), here are several other marketing KPIs that are commonly used to assess the effectiveness of campaigns, customer engagement, and overall marketing performance:
Customer Acquisition Cost (CAC): Measures the cost of acquiring a new customer, helping you assess how efficient your marketing and sales efforts are.
Churn Rate: The percentage of customers who stop using your product or service over a specific period, indicating customer retention.
Customer Retention Rate (CRR): The percentage of customers retained over a certain period, critical for measuring loyalty and satisfaction.
Net Promoter Score (NPS): Gauges customer satisfaction and loyalty by asking how likely customers are to recommend your product or service to others.
Conversion Rate: The percentage of users who take a desired action (e.g., making a purchase) out of the total number of users exposed to the marketing effort.
Cost Per Lead (CPL): The cost incurred to generate a lead, valuable for evaluating the cost efficiency of lead-generation campaigns.
Return on Marketing Investment (ROMI): Measures the revenue gained compared to the amount spent on marketing.
Engagement Rate: Tracks how actively customers interact with your content, social media posts, or campaigns (likes, shares, comments, etc.).
Average Revenue Per User (ARPU): The average amount of revenue generated per customer or user over a specific period.
Sales Growth: Measures the increase in sales over a given period, showing the direct impact of marketing efforts on revenue.
These KPIs offer a comprehensive view of marketing performance, from customer acquisition and engagement to long-term profitability and growth.