Promo Calendar Your year of marketing campaigns, always on time

Mother's Day falls on a Sunday. You see it on your phone while having breakfast. You think "I should have done something." You close it. You carry on with your day. The same thing happens in October with Halloween. In November with Black Friday. Always the same story.

in production 2026 andresbuonaiuto.com/promo-calendar
Built with Claude Code Claude API Supabase Brevo HTML / CSS / JS Cloudflare

The problem every brand has
and never fully solves

It's not a lack of ideas. It's not a lack of motivation. It's a lack of system.

Black Friday lands on November 28th. To run a real campaign you need a landing page ready three weeks before, the announcement email two weeks before, and creative assets a week before. That means planning has to start in October. But in October you're thinking about Halloween. And by the time Halloween is over, Black Friday is right there.

I see this constantly with brands that do good work but don't have a marketing planning system that actually works in practice. They don't fail because of a lack of creative talent. They fail because no one has given them a structure that reaches them before the dates do.

The result is always the same: the brand owner sees the date on the calendar, thinks "I should do something," and carries on with their day. Until December comes and they resolve to do things differently next year. And next year is the same.

The hypothesis I formed,
and the tool I decided to build

If a language model can analyze a brand's profile and knows the calendar of relevant dates for its country and sector, could it automatically generate year-round campaigns with the backplanning already calculated?

The answer was yes. But there was a second problem: most small brands don't have access to Claude Code or time to learn how to use it. The tool had to be accessible from a web form. Fill in six questions, receive your calendar by email. No friction, no sign-up, no account.

The hypothesis was this: if you have a brand's full profile (country, product, audience, channels) you can generate a 12-month plan that isn't generic — one that connects dates to campaigns that make sense specifically for that brand, and arrives with enough lead time to be executed well.

The experience:
how someone uses it from the form

You land on the page and fill in six questions in under three minutes:

  • The country where your brand operates (to calculate national holidays)
  • What your brand sells or does in two or three sentences
  • What your audience is like (age, interests, profile)
  • Which channels you use (Instagram, email, TikTok, LinkedIn...)

With that, the system scans all 12 months: national holidays, global events, key moments in the sector. It filters by real relevance for that brand, not generic volume. A fitness brand doesn't need the same calendar as a fashion store or a B2B service.

The result arrives by email within 24-48 hours: an interactive HTML file that works without an internet connection. You can navigate month by month, see which events are coming, which campaign corresponds to each, and when you need to have each asset ready.

What it produces:
the calendar that arrives in your inbox

For each relevant event, the calendar includes:

  1. Campaign concept: the creative angle that sets the campaign apart from what everyone else does on that date
  2. Ready-to-publish copy: headline, 1-3 sentence description, and CTA, adapted to the brand's tone
  3. Asset checklist: exactly what needs to be created (post, email, reel, landing page, promo code)
  4. Recommended primary channel: where it makes most sense to publish based on the brand's active channels
  5. Automatic backplanning: the deadline for each asset, calculated backwards from the event date
Promo Calendar doesn't give you inspiration. It gives you the complete structure to execute without having to think about when each thing starts.

The HTML file has two views: a monthly calendar with color-coded urgency indicators (red if the deadline is under 7 days away, blue if there's enough time) and a list of upcoming deadlines sorted by date. Each day with an event opens a side panel with the full campaign detail and an asset checklist.

How it was built:
the stack that made speed possible

The web form is pure HTML/CSS/JS with no frameworks, deployed on Cloudflare Pages. When someone fills it in, the data goes directly to Supabase via the browser's JavaScript client, with no intermediate backend.

Frontend
HTML / CSS Vanilla JS Supabase JS SDK
AI generation
Claude API Custom skill
Data & email
Supabase (leads) Brevo (delivery)
Infrastructure
Cloudflare Pages
Development
Claude Code

The generation flow is deliberately manual at first: when a new lead arrives in Supabase, I run the Claude Code skill with the form responses, generate the HTML calendar, and send it via Brevo. This concierge approach lets me validate the output with each user before automating the full pipeline.

The generation skill (Promo Calendar) is built with a multi-agent system: one to discover relevant events by country and sector, one to analyze opportunities and filter by relevance, one to generate campaigns with copy, and one to build the final HTML with the backplanning calculated. The full development was orchestrated with Claude Code.

Current status
and what it proves is possible to build

Free no sign-up
<3 min to fill in
12 months planned

Launch: June 2026 · Real usage data coming soon.

Where it stands now
and what it proves

Promo Calendar is in production and free to use. Any brand can go to the page, fill in the form in three minutes, and receive their personalized annual calendar.

The project proves that today it's possible to go from spotting a recurring problem in a category of clients to having a functional, personalized tool delivered by email — without a team, without months of development, with the right tools and a clear point of view on the problem.

If you have clients who keep missing their marketing opportunities, it's probably not because they don't know what to do. It's because no one has given them the system. That's exactly what can be solved.