Summary
Companion to instagram-strategy. Closes its 5 execution gaps:
- Brand voice — codified DO/DON’T patterns so every post sounds like one team.
- Caption templates — 5 fill-in structures so writing a post takes 5 minutes, not 30.
- Format-to-content mapping — links each of the 6 visual templates (
instagram/*.jsxin the design system) to the kind of content it carries. - Positioning lock — pre-launch we are an events aggregator, not an app. Conversion happens at launch, not before.
- Handle source of truth — resolves the conflict between the strategy doc (
@flow.re) and the design system (@chasethe.flow).
This is the playbook the content lead opens every Sunday evening to plan the week.
1. Positioning — Pre-launch contract
We are a local media account that maps and recommends nightlife in Reggio Emilia. The app exists in the background; we do not promote it. We will convert at launch.
Practical consequences:
| Allowed | Forbidden until launch |
|---|---|
| Event recaps, city roundups, venue features, scene culture, “what’s on tonight” | App mockups, feature explanations, “the crew creation flow”, any in-app screenshots |
| Brand voice (“Flow”), the S-curve mark, the @chasethe.flow watermark | ”Download Flow”, “open the app”, “join the waitlist via the app” |
| Vague allusions: “qualcosa di nuovo arriva — segui per saperlo prima" | "Flow Crew”, “Karma score”, “Squad”, “Vibe matching” — all in-app concepts |
Why this matters. Showing the app pre-launch:
- Spoils the launch’s surprise factor (which kills WoM at release).
- Trains the audience to think of you as “an app that posts” instead of “the place to find events” — different mental category, different follow rate.
- Forces you to defend half-built features in comments instead of championing the city.
The waitlist (run by the partner on flow_web) is the only conversion surface that mentions the app. Instagram drives traffic there via the bio link.
This explicitly overrides Pillar 3 (“Behind the scenes — the app”) from the strategy doc. That pillar is shelved until launch week.
2. Handle source of truth
The official Instagram handle is @chasethe.flow — anchored by the design system watermark in every post template. The strategy doc’s older suggestion @flow.re is deprecated. Update the doc on next quarterly review.
| Surface | Value |
|---|---|
| Username | @chasethe.flow |
| Display name | Flow · Eventi Reggio Emilia |
| Bio | 🌀 Trova eventi. Trova persone. Vivi la notte. · 📍 Reggio Emilia · 👇 Lista d'attesa aperta |
| Profile photo | instagram/ProfileImage.jsx rendered output |
| Link in bio | Waitlist page on flow.app (or the flow_web route the partner ships) |
3. Brand voice — 6 rules
Sourced from preview/17-voice.html in the design system, expanded with the rules implicit in the existing copy across the app and brand book.
Rule 1 · Concrete · timebox · verb-first
| ✅ Do | ❌ Don’t |
|---|---|
| ”Porta l’ambiente su in 10 minuti." | "Discover a seamless onboarding journey!" |
| "Sabato 6 eventi a RE — qui sotto i 3 che valgono." | "Don’t miss out on the amazing events this weekend!" |
| "Si chiude alle 04:00." | "The event runs late into the night.” |
Why: numbers and verbs let the reader visualize. Vacuous English marketing copy reads as foreign and corporate — wrong tone for a local scene account.
Rule 2 · One emoji, single celebration
| ✅ Do | ❌ Don’t |
|---|---|
You're in 🔥 | OMG! 🎉🔥✨ You're IN! 🚀🚀 |
Stanotte: 7 eventi 🌀 | Stanotte 🌃✨🍾🎊 SUPER 🤩 EVENTI 🎵🎶 a RE! 🇮🇹 |
Why: emoji stacks are the tell of a beginner account. One brand-relevant emoji (🌀 for Flow, 🔥 for hot events, 📍 for location, 🌙 for night, 🎧 for music) per caption — max.
Rule 3 · Italian-first, English only when the noun has no equivalent
techno, house, after, live, lineup, set — keep in English. They’re scene vocabulary. Everything else: Italian.
| ✅ Do | ❌ Don’t |
|---|---|
| ”Set techno fino alle 4." | "Techno set until 4 AM in the venue." |
| "Aperitivo dalle 19." | "Aperitivo session starts at 7 PM.” |
Rule 4 · No hype words. Numbers do the hype.
Banned: incredibile, pazzesco, top, bomba, imperdibile, super, magico, unico. Replace with the actual fact.
| ✅ Do | ❌ Don’t |
|---|---|
| ”500 persone in fila a mezzanotte. Volo, sabato scorso." | "Atmosfera pazzesca al Volo sabato, davvero magica!" |
| "Lineup: 4 DJ, 6 ore di musica, 1 piano." | "Una serata top, imperdibile per gli amanti del genere!” |
Rule 5 · Caption first line earns the “more” tap
Instagram truncates at ~125 characters. Whatever sits after … altro only reaches the people you already grabbed.
| ✅ First line | What follows after … altro |
|---|---|
| ”Sabato a RE ci sono 6 eventi. Nessuno lo sa.” | The actual breakdown |
| ”Lo Spritz Society chiude i battenti dopo 4 anni.” | Why, what replaces it, when |
| ”La regola del ‘after’ a RE: comincia quando l’altro finisce.” | The map of where to go when |
Banned openers: Ciao a tutti!, Oggi vi parliamo di…, Come state?, Eccoci con un nuovo post, Una novità che…
Rule 6 · Sign with @chasethe.flow or with the question, never with hype
Caption endings either:
- Drop a question that invites a DM/comment (“Quale dei sei farai?”, “Manda il tuo locale preferito nei DM.“)
- Sign with the handle once for findability
- Or just end. White space is fine.
Don’t end with 🔥🔥🔥, Tag a friend who needs this, or Like se anche tu….
4. The 6 visual formats — content mapping
The design system ships 6 ready React-rendered formats under instagram/*.jsx. Each carries a specific kind of content. Don’t mix.
| # | Format file | Use for | Frequency | Pillar |
|---|---|---|---|---|
| 00 | ProfileImage.jsx | Profile picture (one-time) | once | — |
| 01 | PresentationPosts.jsx (3 slides) | The pinned intro carousel — who we are, what we do, why follow. Set once at account launch, refresh quarterly. | once / quarterly | — |
| 02 | PromotionPost.jsx | A single venue partner moment (new opening, anniversary, special night). Branded as a Flow recommendation, not a paid ad. | 2–3× / month | 1 (Hype locale) |
| 03 | SingleEventPost.jsx | One event you really want people to know about — solo focus, no list. The “thursday hero” post. | 1× / week (Thu) | 1 |
| 04 | GenreGroupedPost.jsx | Events of the week grouped by vibe (techno, indie, aperitivo, …). Use when 4–8 eventi are worth flagging. | 1× / week (Mon) | 1 |
| 05 | CityRoundupPost.jsx | ”Stanotte a RE” — 6-slide timeline of every event tonight. THE format that defines you as the local source. | 1× / weekend (Fri or Sat morning) | 1 |
| 06 | DenseListPost.jsx | 12+ events at a glance for the whole week / month. Lower visual impact but high save rate. | 1× / week (Sun evening planning post) | 1 |
| 07 | Stories.jsx | Daily — countdown to events, polls, geotag drops, re-share of partner stories. | daily | 1 + 5 |
Two pillars carry the whole calendar — 1 Hype locale RE (these formats) and 5 Interazione (stories with stickers). The original strategy doc allocated 25% to nightlife culture and 10% to social proof — those still apply but use standard image posts, not the 6 ricorrenti.
Critical rule: the 6 templates exist to make you instantly recognizable on Esplora. If you reskin one, you break the recognition. Tweak inside the template (different events, different city date), never the template itself.
5. Caption templates
Five fill-in structures that cover ~80% of the calendar. Plug the variables, post.
Template A — City Roundup (companion to CityRoundupPost.jsx)
Stanotte a RE: {N} eventi tra le {OPENING_TIME} e le {CLOSING_TIME}.
Dall'{FIRST_VIBE} al {LAST_VIBE}, c'è qualcosa per ogni mood. Swipe per la timeline completa.
📍 Mappa nei nostri salvati · Hot pick: {HOT_EVENT}
@chasethe.flow
Variables: N, OPENING_TIME, CLOSING_TIME, FIRST_VIBE, LAST_VIBE, HOT_EVENT.
Template B — Single Event (SingleEventPost.jsx)
{ARTIST/EVENT_NAME} questo {WEEKDAY} al {VENUE}.
{ONE_LINE_WHY_IT_MATTERS — 12 parole max}.
🎧 {GENRE} · 🕒 {START_TIME} · 💸 {PRICE}
Chi viene? Manda DM.
Variables: ARTIST/EVENT_NAME, WEEKDAY, VENUE, the one-liner, GENRE, START_TIME, PRICE.
Template C — Genre Grouped (GenreGroupedPost.jsx)
{WEEKEND_RANGE}: {N} eventi a RE divisi per vibe.
🌀 Techno · House · Indie · Aperitivo
Salva il post per non perderne uno. Tag chi viene con te.
Template D — Dense List (DenseListPost.jsx)
La settimana a RE — {DATE_START} → {DATE_END}.
{N} eventi mappati. Quelli con il pallino coral sono i nostri pick.
Save 📌 → niente FOMO sabato sera.
Template E — Promotion (PromotionPost.jsx)
{VENUE_NAME}{VENUE_QUALIFIER, optional, e.g. "compie 4 anni"}.
{ONE_LINE_CONTEXT}.
Per noi {VENUE_NAME} è {REASON_WE_PICK_IT_IN_3_WORDS}.
📍 {ADDRESS} · @{venue_handle}
Variables in {} are mandatory; everything outside is template language and must stay.
6. Weekly cadence (revised, no app spoiler)
Replaces §6 of the strategy doc. Same 7-day rhythm, but Wednesday’s “BTS app” is gone — replaced with a culture-led carousel.
| Day | Time | Format | Pillar | Effort |
|---|---|---|---|---|
| Monday | 19:00–20:30 | GenreGroupedPost | 1 — Hype locale | 30 min |
| Tuesday | — | Story poll | 5 — Interactive | 5 min |
| Wednesday | 20:00–21:30 | Standard carousel — culture / scene (no app) | 2 — Culture | 45 min |
| Thursday | 20:00–22:00 | SingleEventPost | 1 | 30 min |
| Friday | morning | CityRoundupPost | 1 | 60 min (it’s the hero) |
| Saturday | live | Story from event (if attending) | 1 | live |
| Sunday | 17:00–19:00 | DenseListPost (next week) or milestone post | 1 / 4 | 45 min |
Friday’s CityRoundupPost is the format the account will be remembered for. Plan it Thursday afternoon, render Friday morning, post by 11.
7. Crisis playbook (closes strategy gap)
The strategy doc doesn’t cover what happens when something breaks. Three scenarios:
Scenario 1 — A partner venue has an incident the same night you featured them
- Within 2h: pull any active story tagging the venue. Do NOT delete the post (looks like cover-up). Stop scheduled stories.
- Within 24h: post a neutral story acknowledging only that you’re aware. No defending the venue, no piling on.
- DM the venue privately to offer support. Don’t post about the offer.
Scenario 2 — A comment goes viral negatively
- Reply once, factually, no defensiveness. (“Ciao [name], quello specifico evento è stato organizzato da [X], non da noi. Per dettagli puoi scrivere a loro: @[handle].“)
- Do not engage further. The first reply is for the lurkers, not the commenter.
- If the comment is abusive, hide it (don’t delete — hiding leaves it visible to the commenter, deletes it for everyone else).
Scenario 3 — A scheduled post is no longer accurate (event cancelled, lineup changed)
- Edit the caption with the update at the top:
🚨 Aggiornamento {ora}: l'evento è stato cancellato. Maggiori info qui sotto. - Add a story explaining what happened in plain language. No drama.
- If you knew before posting, you don’t post.
8. Brand voice quick-reference (printable, pin above the desk)
WRITE DON'T WRITE
───────────────────────── ─────────────────────────
Numbers, verbs, places Adjectives, exclamations
Italian (English for scene) English vacuous marketing
One emoji per caption Emoji stacks
First line earns the tap "Ciao a tutti!"
End with a question or stop End with "🔥🔥🔥"
"Flow" the media account "Flow" the app (until launch)
@chasethe.flow @flow.re (deprecated)
Related
instagram-strategy — strategic frame (algorithm, pillars, 90-day plan, hashtags). This doc is the execution layer.
brand-book — color tokens, lockup spec, type scale.
External: ~/Downloads/Flow Design System (1)/instagram/ — the React-rendered formats. Source of visual truth.