Card title
Optional supporting line
A short description giving context to the card content. Keep it to two or three lines maximum.
Brand System
Traditional car rental. No complications, no apps, no hourly plans. Pick up, drive, return.
01 — Logo
The wordmark is the brand. The two ‘o’ letters are stylized as wheels — the name itself becomes the mark.
Concept
Lowercase wordmark — “zoomi” — in a geometric sans-serif (Geist Sans, weight 600+). Lowercase reads as modern, friendly, and approachable — aligned with mobility brands like bolt, lyft, uber.
The two ‘o’ letters in the middle of the wordmark are stylized as automobile wheels. Each wheel: outer tire ring, central hub, 4–5 spokes radiating outward. The wheels suggest motion — the name itself rolls.
Wordmark · Placeholder
Awaiting designer · This is a typographic placeholder, not the final mark
Designer Brief
Variants
Primary
Website, marketing
Inverted
Dark sections, social media
Accent
Playful contexts, campaigns
Monochrome
Documents, legal usage
Clear Space · Sizing
Minimum clear space around the wordmark equals the x-height of the letters. No other elements may enter this zone.
Do Not
Don’t stretch
Don’t use off-palette colors
Don’t add effects
Don’t rotate
02 — Colors
Asphalt and signal. The road and the evening lamp. Five tones that make the whole system.
03 — Typography
Three typefaces. Geist Sans for headings, Inter for body, Geist Mono for numerals.
← Scroll to see full specimen →
Zoomi is more than car rental. It's freedom to plan your trip on your terms — no apps, no hourly windows, no friction. Pick up the car when you need it, return it when you're done.
| Vehicle | Day | Week |
|---|---|---|
| Toyota Yaris | € 35.00 | € 210.00 |
| Volkswagen Golf | € 45.00 | € 270.00 |
| Skoda Octavia | € 52.00 | € 312.00 |
| Token | Sample |
|---|---|
--text-caption |
Drive at ease |
--text-small |
Drive at ease |
--text-body |
Drive at ease |
--text-lead |
Drive at ease |
--text-h3 |
Drive at ease |
--text-h2 |
Drive at ease |
--text-h1 |
Drive at ease |
--text-display |
Drive at ease |
04 — Spacing
Generous breathing room. Sections own their vertical rhythm; containers cap the width.
--spacing-section · clamp(4rem, 8vw, 7rem)
--spacing-section-sm · clamp(2.5rem, 5vw, 4rem)
05 — Radii
Angular but not sharp. Six steps from subtle to fully round.
--radius-xs
4px
--radius-sm
6px
--radius-md
12px
--radius-lg
20px
--radius-xl
28px
--radius-full
9999px
06 — Shadows
Three shadows. Cards lift gently, elevated elements lift more, focus rings communicate keyboard state.
--shadow-card
Default lift for cards and list items.
--shadow-elevated
Modals, dropdowns, floating panels.
--shadow-focus
Keyboard focus state on interactive elements.
07 — Motion
Three durations, one easing. Movement should feel intentional, not decorative.
--ease-out
cubic-bezier(0.16, 1, 0.3, 1)
Click the track to preview the easing curve
Hover each block to compare durations.
--duration-fast
Hover to preview · 150ms
--duration-default
Hover to preview · 250ms
--duration-slow
Hover to preview · 450ms
08 — Buttons
One primary action per screen. Secondary supports. Ghost recedes.
btn btn--primary
Primary action. One per screen.
btn btn--secondary
Supporting action on light backgrounds.
btn btn--ghost
Tertiary, low visual weight.
btn btn--ghost-light
Ghost on dark backgrounds.
btn--sm
btn--md (default)
btn--lg
default
:hover
:active
:focus-visible
disabled
09 — Icons
Line style, 1.75px stroke, rounded caps. Consistent visual weight across the set.
10 — Forms
Inputs, selects, choices. The building blocks of the booking flow.
Text input · States
As shown on your driver's license
Please enter a valid email address
Generated automatically after confirmation
<input class="form-input" type="text" id="name" placeholder="...">
<input class="form-input is-error" aria-invalid="true" aria-describedby="err">
<input class="form-input" disabled>
Textarea
Max 500 characters
<textarea class="form-input form-textarea" id="notes" placeholder="..."></textarea>
Select
Note: The dropdown panel uses the native browser picker — this preserves accessibility, autofill, and mobile native pickers. Build custom dropdowns only when you need multi-select, search, or grouped options.
<select class="form-input form-select" id="location">
<option value="" disabled selected>Choose a location</option>
<option value="vil-airport">Vilnius — Airport</option>
</select>
Checkbox
Add-ons
<div class="form-checkbox-group">
<input class="form-checkbox" type="checkbox" id="driver" checked>
<label for="driver">Additional driver</label>
</div>
Radio
Insurance coverage
Coverage details available at pickup
<div class="form-radio-group">
<input class="form-radio" type="radio" id="standard" name="insurance" checked>
<label for="standard">Standard — €8/day</label>
</div>
11 — Dates
The core booking component. Pick up and return — one interaction, two dates, instant range preview.
Default · Lithuanian locale
Click either field to open the calendar. Pick a start date, then an end date. Hover shows the range preview. Lithuanian locale with Monday as week start. Pickup and return times default to 10:00 in 30-minute increments, 24/7 availability.
<div data-drp data-drp-options='{"locale":"lt","minDate":"today","maxDate":"+90d"}'>
<!-- Auto-rendered by date-range-picker.js -->
</div>
English locale
Set locale: "en" for English month and weekday names.
Useful for international visitors.
<div data-drp data-drp-options='{"locale":"en","minDate":"today"}'></div>
With default values
Initialize with default dates and times via defaultStart,
defaultEnd, defaultStartTime,
and defaultEndTime.
<div data-drp data-drp-options='{
"locale": "lt",
"defaultStart": "2026-06-23",
"defaultEnd": "2026-06-26",
"defaultStartTime": "14:00",
"defaultEndTime": "18:00"
}'></div>
Constrained · Min 6 hours, Max 14 days
minDurationHours and maxDurationHours
enforce hour-level constraints validated on confirm. Same-day rentals are allowed —
pick up 09:00, return 16:00 = 7 hours (valid). Trying to confirm less than 6 hours shows an error.
<div data-drp data-drp-options='{
"locale": "lt",
"minDurationHours": 6,
"maxDurationHours": 336
}'></div>
Day cell states
Time selection
Hybrid time selects in the footer
Pickup and return times use native HTML <select> elements
with 30-minute intervals across 24 hours (48 slots total, 00:00–23:30).
Hybrid styling — branded trigger, native dropdown panel — for accessibility
and mobile native picker support.
Changing a time updates the trigger input display immediately without closing the popover.
// Time options are auto-generated from timeStep/timeMin/timeMax
// Defaults: timeStep:30, timeMin:"00:00", timeMax:"23:30"
// 48 options: 00:00, 00:30, 01:00 … 23:30
// Access values:
picker.getValue()
// → { start:"2026-06-17", startTime:"10:00", end:"2026-06-22", endTime:"10:00" }
// Set times programmatically:
picker.setTimes("14:00", "18:00")
// Hidden form inputs (separate date + time):
// <input type="hidden" name="pickup_date" value="2026-06-17">
// <input type="hidden" name="pickup_time" value="10:00">
// <input type="hidden" name="return_date" value="2026-06-22">
// <input type="hidden" name="return_time" value="10:00">
Mobile
Bottom sheet on mobile
Below 768px viewport width, the picker transforms into a bottom sheet covering 70% of the screen height, with a single month and swipe or arrow navigation. Tap targets increase to 44×44px per cell. Time selectors and actions stack vertically for comfortable thumb reach. A “Done” button at the bottom confirms the selection and closes the sheet.
12 — Badges
Small status markers. Live on cars, filters, bookings — anywhere state matters at a glance.
Status · With indicator dot
<span class="badge badge--success">
<span class="badge__dot" aria-hidden="true"></span>Available
</span>
Vehicle category
<span class="badge badge--neutral">Standard</span>
<span class="badge badge--accent">Premium</span>
Vehicle features · With icons
<span class="badge badge--accent">
<span class="badge__icon" aria-hidden="true"><!-- zap svg --></span>Electric
</span>
Promotions · Solid fill
<span class="badge badge--solid-signal badge--lg">-20% weekly</span>
Sizes · SM · MD · LG
Outline
Outline variants for low-emphasis contexts — secondary filters, inline tags within paragraphs.
<span class="badge badge--outline badge--accent">Premium</span>
13 — Placeholders
Where content waits. One system for missing images, loading states, and empty results — used across the product.
Image placeholder · Default
<?php echo zoomi_placeholder(['variant' => 'image', 'label' => 'Sedan']); ?>
Skeleton · Loading state
Used when content is loading. Animates left-to-right shimmer.
Respects prefers-reduced-motion.
<?php echo zoomi_placeholder(['variant' => 'skeleton', 'aspect' => '16/10']); ?>
Empty state
No vehicles match your filters
No bookings yet
Your future trips will show up here
<?php echo zoomi_placeholder([
'variant' => 'empty',
'icon' => 'search-x',
'label' => 'No vehicles match your filters',
]); ?>
Aspect ratios
16/10
5/3
4/3
1/1
3/1
14 — Cards
Containers for everything from a vehicle in the fleet to a booking confirmation. One base component, several intent variants.
Base card
Optional supporting line
A short description giving context to the card content. Keep it to two or three lines maximum.
<article class="card card--interactive">
<div class="card__media"><!-- image or placeholder --></div>
<div class="card__body">
<div>
<h3 class="card__title">Title</h3>
<p class="card__subtitle">Subtitle</p>
</div>
<div class="card__footer">
<span class="card__price">€ 45.00<span class="card__price-unit"> / day</span></span>
<button class="btn btn--ghost btn--sm">Action</button>
</div>
</div>
</article>
Vehicle card · Primary use case
Hatchback · 2024
Hatchback · 2023
Sedan · 2024
Sedan · 2024
Minivan · 2023
Commercial · 2023
Badge placement convention: Top-left = status (Available, Booked, Reserved…). Top-right = promo only (New in fleet, -20%…) — optional, never category. Specs row = category, transmission, fuel type, seat count — always.
<article class="card card--interactive" aria-label="View Volkswagen Golf details">
<div class="card__media">
<?php echo zoomi_placeholder(['variant' => 'image', 'aspect' => '16/10']); ?>
<div class="card__media-badge card__media-badge--top-left">
<span class="badge badge--success">
<span class="badge__dot" aria-hidden="true"></span>Available
</span>
</div>
</div>
<div class="card__body">
<div>
<h3 class="card__title">Volkswagen Golf</h3>
<p class="card__subtitle">Hatchback · 2024</p>
</div>
<div class="card__specs">
<span class="badge badge--neutral badge--sm">Standard</span>
<span class="badge badge--neutral badge--sm">Automatic</span>
</div>
<div class="card__footer">
<div>
<span class="card__price">€ 45.00</span>
<span class="card__price-unit"> / day</span>
</div>
<button class="btn btn--ghost btn--sm">View details</button>
</div>
</div>
</article>
Featured · Signal accent strip
Sedan · 2025
Sedan · 2024
Featured cards highlight vehicles surfaced as top picks — recommendations, partner promotions, top of search results.
Inverted · Dark surface
Reach us anytime during your rental. Phone, email, or chat — your choice.
Use sparingly for emphasis sections — testimonials, support callouts, key messaging.
Elevated · Shadow instead of border
30+ days
Save up to 30% on monthly rentals. Flexible plans with no long-term commitment.
All major airports
We deliver to Vilnius, Kaunas, and Klaipėda airports. Skip the queue.
Use when cards sit on a surface with visual texture — feature sections, sponsored placements.
Anatomy
Hatchback · 2024
| .card__media | Image area, holds the placeholder or photo. Always 16/10 aspect ratio. |
| .card__media-badge | Badge overlay — top-left for status, top-right for promo. Never category. |
| .card__body | All text content. Flex column, grows to fill available height. |
| .card__title | Vehicle or content name. Truncates with ellipsis if too long. |
| .card__subtitle | Secondary descriptor — category, year, or supporting text. |
| .card__specs | Row of small neutral badges: category, transmission, fuel, seats. |
| .card__footer | Price and primary action. Pinned to bottom via margin-top: auto. |
| .card__price | Tabular mono numerals. Paired with .card__price-unit for "/ day". |
15 — Voice & Tone
Direct, warm, action-oriented. We sound like a friend who rents cars — not a corporation that does.
Principles
Skip the corporate fluff. Say what we mean in the fewest words that still feel human.
Lead with verbs. “Pick up.” “Drive.” “Return.” Movement is the product.
We’re friendly, not playful. No exclamation marks, no emoji in UI, no “hey there friend!” We respect the user’s intelligence.
When something costs extra, say so plainly. When a car is unavailable, don’t bury it under marketing language.
Taglines
Primary brand line · Two-step rhythm matches the booking flow
Lithuanian
English
Button copy
| ✅ Use | ❌ Avoid |
|---|---|
| Pasirinkti automobilį | Spauskite čia |
| Rezervuoti | Pateikti formą |
| Tęsti į apmokėjimą | Toliau |
| Patvirtinti rezervaciją | OK |
| Atšaukti rezervaciją | Atšaukti |
| Skambinti pagalbai | Pagalba |
Buttons describe the action. Avoid generic words like “OK”, “Submit”, “Click here” — they ignore context.
Error messages
| ✅ Use | ❌ Avoid |
|---|---|
| Šis automobilis užimtas pasirinktomis dienomis | Klaida 400 |
| Reikalingas ne mažesnis kaip 2 metų vairavimo stažas | Nepavyko |
| Įveskite teisingą el. pašto adresą | Neteisinga įvestis |
| Apmokėjimas nepavyko. Patikrinkite kortelės duomenis arba pasirinkite kitą būdą | Bandykite vėliau |
Errors explain what happened AND suggest a next step. Never blame the user. Never hide behind “something went wrong”.
Empty states
Nieko neradome
Pabandyk pakeisti datas arba kategoriją. Mūsų parke daugiau nei 30 automobilių.
Kol kas tuščia
Tavo būsimos kelionės atsiras čia po pirmos rezervacijos.
Tuščia
Pažymėk automobilius širdute, kad rastum greičiau kitą kartą.
Empty states explain the state AND invite the next action. Always have a path forward.
Vocabulary
| Concept | Lithuanian | English |
|---|---|---|
| Vehicle | Automobilis | Car |
| Rental period | Nuomos laikas | Rental period |
| Pick up location | Paėmimo vieta | Pickup location |
| Pick up date | Paėmimo data | Pickup date |
| Return date | Grąžinimo data | Return date |
| Daily rate | Kaina parai | Daily rate |
| Total | Iš viso | Total |
| Add-ons | Priedai | Add-ons |
| Insurance | Draudimas | Insurance |
| Booking | Rezervacija | Booking |
| Booking reference | Rezervacijos kodas | Booking reference |
| Customer | Klientas | Customer |
Use these terms consistently across UI, emails, and documents. Mixing “automobilis” and “mašina” in the same product creates friction.
Numbers · Currency · Dates
€ 45.00 / para — space after €, always 2 decimal places, dot separator. Write Nemokamai / Free, never € 0.00.2026 m. birželio 17 d.2026-06-172026 m. birž. 17 d., 10:00
June 17, 20262026-06-17Jun 17, 2026, 10:00
14:30, never 2:30 PM.1 para, 21 para, 101 para2 paros, 5 paros, 25 paros, 99 paros10 parų, 15 parų, 20 parų, 100 parų1 valanda —
3 valandos —
21 valanda —
10 valandų —
20 valandųIn context · Micro copy examples
Rezervacija patvirtinta ZM-2026-0142
Tavo Volkswagen Golf laukia Vilniaus oro uoste 2026 m. birž. 18 d., 10:00.
Paimk savo Toyota Yaris po 2 valandų
Adresas: Kalvarijų g. 125, Vilnius. Turėk su savimi vairuotojo pažymėjimą.
Grąžinimas šiandien iki 18:00
Pripildyk baką iki to paties lygio, koks buvo paėmus automobilį. Už vėlavimą — papildomas 25 € mokestis.
Brand system v1.0
Future additions: photography library, vehicle photo session results, partner co-branding rules.
16 — Social & Content
Social & content
Where the brand lives outside the website. Platform strategy, visual identity, photography, copy patterns, paid creative, and partner collaborations — the full picture of how Zoomi communicates beyond zoomi.lt.
Social is not the website. It is its own product with its own rules. Each platform speaks a different language to a different audience at a different moment in their day. The Zoomi brand stays consistent across all of them — but how it shows up varies by context.
This section documents that variance so future content creators, collaborators, and agencies can produce work that feels like Zoomi without needing to ask.
16.1 — Platforms
Where we show up
Six platforms, each with a distinct role. We are not everywhere just to be everywhere — each presence has a purpose.
Platform roles
Audience overlap
Tourists & international visitors
Primary platforms: Instagram, Google Search
Discovery happens on visual platforms before arrival; conversion via search at decision time.
Local Lithuanian customers
Primary platforms: Facebook, Google Search, Instagram
Mature platform mix matching daily habits across age groups. Trust built through reviews and reach.
Young domestic users (18–28)
Primary platforms: TikTok, Instagram Reels
First-time renters discovering the category through native short-form video. Awareness-stage.
Business & fleet decision-makers
Primary platforms: LinkedIn, Google Search
B2B research patterns. Long sales cycle, professional context.
Cross-posting rules
When in doubt, ask: would this content perform identically on both platforms? If yes, simplify. If no, adapt.
Brand intensity scale
Brand discipline relaxes with audience age and platform culture. TikTok content has the most creative freedom — but always within the principles in Voice & Tone (#15). Never break the core: honest, direct, action-oriented. The voice adapts; the integrity doesn’t.
16.2 — Visual Identity
How the brand wears each platform
One identity, six surfaces. Each platform has its own profile photo crop, cover dimensions, bio format, and link strategy. Define them once, then never improvise.
Profile photos · Per platform
Instagram
320×320 · PNG · circular
Safe area 280×280
Facebook
320×320 · PNG · circular
Safe area 280×280
TikTok
200×200 · PNG · circular
Safe area 180×180
YouTube
800×800 · PNG · circular
Safe area 720×720
LinkedIn
400×400 · PNG · circular
Safe area 360×360 · light bg
Google Business
250×250 · PNG · square
Safe area 220×220 · wordmark variant
Covers · Banners · Headers
Facebook cover 820×312 desktop · safe zone 640×280 centered
Content outside center 640×280 gets cropped on mobile.
LinkedIn company banner 1128×191 · 6:1 ratio · no mobile cropping
Full image always visible. Keep main elements in the center 60%.
YouTube channel art 2560×1440 · safe zone 1546×423 · TV safe 1235×338
Three viewports: desktop, mobile, TV. Critical content in innermost safe zone only.
X (Twitter) header 1500×500 · profile photo overlaps bottom-left
Reserve bottom-left corner — circular profile photo sits on top.
Cover imagery should hint at movement, freedom, or the road. Never use a literal car photo centered in the banner — too on-the-nose. Suggest the experience, not the product.
Bio copy · Templates
LT
EN
TikTok is one of the few places we allow one emoji per line as a visual anchor. Used sparingly, only here.
Link in bio
One link. One landing page.
Instagram, TikTok, and most other platforms allow only one clickable link in the bio. Do not use third-party multi-link tools (Linktree, Beacons) — they add a step between the user and zoomi.lt, dilute the brand, and leak attribution data.
Every social link points to
zoomi.lt/start(or a campaign-specific landing page when promoting a specific offer). The destination page handles routing — to booking, to specific vehicle categories, to the current promotion — based on UTM parameters and on-page navigation.All bio links carry UTM parameters:
?utm_source={platform}&utm_medium=bio&utm_campaign={current_campaign}Instagram highlights · Cover icons
Highlight order on Instagram should match this list — most important left to right. Reorder as priorities shift, but keep the visual set consistent.
16.3 — Photography
Photography & art direction
Light, distance, intent. Three rules govern every Zoomi photograph — the same rules whether shooting a vehicle, a location, or a moment behind the wheel.
Foundational rules
Light is the brand
Soft, directional, warm
Shoot during golden hour (first 90 minutes after sunrise, last 90 before sunset). Avoid midday harsh sun and flat overcast. Natural light only — no flash, no LED rigs, no synthetic color casts.
✅ 07:30 morning side-light against a stone façade
❌ 13:00 noon flat top-light on asphalt
Distance over detail
Let the vehicle breathe
Wide shots placing the car in a Lithuanian landscape or cityscape beat tight detail shots every time. The viewer should feel where the car is, not just see what it is. Detail shots have a place — but they are supporting, never the hero.
✅ Car parked at Trakai with castle in background, 30m distance, rule of thirds
❌ Hood ornament close-up filling the frame
Intent over polish
Composed, not staged
Every photo answers a question — where could this car take me? Who is using it? Why does this moment matter? Avoid stock-photo poses, forced smiles, and over-produced lifestyle clichés. Real situations, paused for camera, beat fabricated scenes.
✅ Customer pulling a suitcase from the trunk at Vilnius airport, soft backlight
❌ Two models pointing at a map on the dashboard with coffee cups
Photo types
Composition
✅ Always
❌ Avoid
16:9or21:916:10— matches placeholder system1:19:164:5vertical or3:2horizontalColor grade
Warm, not nostalgic
Color grade should feel like late afternoon in Lithuania — warm in the shadows, neutral in the highlights, slight desaturation on greens and blues. Skin tones natural. Asphalt black should sit at true black, not crushed. Cream tones should breathe.
These are starting points, not absolutes. Each photo gets individual attention. The goal is consistency in feeling, not identical numbers.
❌ Avoid
Primary locations
Avoid: shopping mall parking lots, generic suburbs, brand-dominant locations (gas stations with competitor logos visible).
Pre-shoot checklist
Before the shoot
Gear minimums
Delivery format
zoomi_{vehicle-slug}_{shot-type}_{seq}.jpgzoomi_vw-golf-2024_front-34_01.jpgUntil photos exist
The Zoomi photo library is being built. Until the photoshoot for the launch fleet is complete (planned for August 2026), all vehicle imagery uses the Placeholder system (#13). Marketing and social content during this period falls back to:
This is a transition phase. Once vehicle photography is complete, no stock or third-party imagery should appear in vehicle cards or Zoomi-branded marketing material.
16.4 — Instagram
Instagram
The brand’s most visible surface. Feed grid, post types, captions, stories, and hashtags. Reels are covered separately in 16.5.
Account structure
@zoomi.ltzoomi.lt?utm_source=instagram&utm_medium=profile&utm_campaign=bioThe pinned post slots are valuable real estate — always one evergreen, one current, one social proof. Never three of the same type.
Grid rhythm · 3-column visual flow
Instagram’s feed displays posts in a 3-column grid. Visitors often scroll the grid before reading any single post — meaning the grid itself is a composition. Zoomi maintains a rhythm designed to read top-to-bottom as a coherent identity, not a random feed.
Pattern:
Before posting, preview the grid in Planoly, Later, or Instagram’s built-in tool. If three same-category posts would land in a row, reorder or reschedule.
Post catalog
Vehicle hero
Example caption (LT)
Vehicle detail
Example caption (LT)
Lifestyle
Example caption (LT)
Location
Example caption (LT)
Customer story
Example caption (LT)
Quote / typography
Example caption (LT)
Captions · Structure & tone
The first line is everything. Instagram truncates after ~125 characters with “more”. The hook must work standalone.
Expand on the hook. Add one specific detail — a feature, a benefit, a story beat. Avoid generic descriptors.
Always end with one clear next step. Booking link, question, or call to look at link in bio.
✅ Always
❌ Avoid
Stories · 24-hour ephemeral
What stories are for
Stories serve a different purpose than feed posts. The feed is the brand’s portfolio; stories are the brand’s daily presence. Use them for what doesn’t deserve a permanent slot but still matters.
Hashtags · Minimal & targeted
Less is more
Instagram’s algorithm devalued hashtag spam in 2023–2024. 30 random hashtags no longer help reach and signal low-quality account behaviour. Zoomi uses 3–8 hashtags per post, placed in the first comment, all relevant.
Tier 1 — Brand (always)
Include in every post.
Tier 2 — Category (always 2–3)
Pick 2–3 relevant to the specific post and city.
Tier 3 — Context (rotate)
Max 3 context tags per post.
Example
Never use #ad, #sponsored, or #partnership in regular content. Reserve those exclusively for paid partnerships with proper disclosure (see 16.11 — Influencers).
Engagement · Response protocol
Never buy followers, engagement, or hashtag boost services. Never engage with competitor accounts publicly.
Do not post
16.5 — Reels
Reels
Short vertical video on Instagram and Facebook. Same format as TikTok, different audience, different rules.
Why they are not the same
When the same video idea suits both platforms, shoot once but edit and finish twice. Different cuts, different captions, different music.
Reels content pillars
Vehicle reveals
Route inspiration
Booking flow demo
Customer trip recap
Quick tips
Behind the scenes
Production requirements
15–30 s(highest completion rates)Maximum useful:
60 s— drop-off accelerates beyondNever under:
7 s— too short to register narrative250px— username + UIBottom
350px— caption + UI overlayCritical visuals live in center
1080×1320Voiceover: Lithuanian preferred, English for international targeting.
Background music ducked to −18dB under voice.
No copyrighted music outside Meta’s licensed library.
Minimum 48px (readable on smallest mobile).
Maximum 6 words per overlay frame.
Always within safe zone, never behind UI.
First 3 seconds
If you lose them at second 3, you lose them entirely
Reels are scroll-first content. Meta’s algorithm tracks completion rate above all other signals. The first 3 seconds determine whether the viewer stays or scrolls. Build every Reel around the hook.
Open with movement, transformation, or unexpected angle. The viewer needs to see what happens next.
Example: Car cover pulled off a new arrival → fast pan to dashboard → key drop into ignition slot.
Text overlay poses a question the Reel answers.
Example: "Kiek kainuoja savaitgalis su BMW?" — followed by price breakdown across 15 seconds.
Promise a specific content count in the hook.
Example: "3 daiktai, kurių pamiršti neimti" — three tips in 20 seconds.
Show before/after or expected/actual in the first frame.
Example: Split-screen: competitor booking (5+ min) vs Zoomi (under 2 min).
Bold typography overlay with a counter-intuitive or attention-grabbing line.
Example: "Tikrai nereikia aplikacijos."
❌ Avoid as hooks
Captions · Shorter than posts
Reel captions matter less than feed post captions — most viewers never expand them. But they still serve discovery (Meta indexes caption text) and accessibility.
Example
Audio strategy
Meta library only
Reels must use audio from Meta’s licensed library. Original audio from external sources risks takedown and reach suppression. Browse the Reels audio library by mood category before shooting, not after.
✅ Preferred categories
❌ Avoid
Do not post
16.6 — Facebook
Facebook
Where Lithuanian customers convert. Older audience than Instagram, decision-stage rather than discovery, reviews-driven. Facebook is operations as much as marketing.
Page setup
@zoomi.ltzoomi.lt?utm_source=facebook&utm_medium=profilezoomi.lt?utm_source=facebook&utm_medium=ctaMessenger auto-replies
Who is here
Facebook’s Lithuanian audience skews 30–60 years old, married, family-oriented, decision-conscious. They are not browsing for inspiration — they are evaluating options before purchase. They read reviews, check responsiveness, and look for warranty and contact information.
Family decision-maker
Older traveller
Small business owner
Post catalog
Service announcement
New vehicle, new location, new pricing. Image or short video + 2–3 paragraph caption. Boost recommended for announcements affecting service area.
Example (LT)
Customer review highlight
Repost of a strong customer review (with permission). Quote as image — cream background, attribution, star rating visible. Brief thank-you caption + invitation to share own story. Frequency: 1–2 per month.
Educational long-form
Practical post answering common questions — insurance options, documents needed, fuel policy. Carousel or single image + long caption (200–400 words). Frequency: 2 per month.
Promo and seasonal campaign
Time-limited offer, seasonal discount, holiday campaign. Bold visual + specific terms + clear CTA. Boost with geo-targeted audience. Frequency: 1–2 per month — never more (becomes noise).
Location and route content
Suggested weekend destination with vehicle recommendation. Landscape image + 3-paragraph caption: location, why it works, what vehicle to take. Frequency: 1 per 2 weeks.
Community engagement
Question to followers, poll, conversation starter. Text-only or single image, simple. Examples: "Kur važiavote praeitą savaitgalį?" / "Sedanas ar krosoveris šeimos kelionei?" Frequency: 1 per month, never more.
Reviews · The primary conversion asset
Facebook reviews convert more bookings than any single post
For decision-stage customers, the review count and average rating are the strongest trust signal Facebook provides. Treat reviews as a core operational metric, not a marketing afterthought.
❌ Never
Messenger · Customer service front door
More booking questions arrive via Messenger than via the website contact form. Treat the inbox as a sales channel, not just support.
Common inquiry templates
Beyond the page
Where else Facebook works for Zoomi
The Zoomi page is the primary surface, but Facebook offers secondary channels worth attention.
Local community groups
Vilnius / Kaunas / Klaipėda travel and life groups. Members participate organically as Zoomi representatives — not page posts. When relevant questions appear, authentic recommendations with disclosure: "Aš dirbu Zoomi."
Forbidden: Direct promo posts, spam, multiple accounts pushing the same recommendation.
Marketplace
Listings for specific vehicles when seasonal demand needs visibility. Each premium vehicle listed with link to zoomi.lt rental page. Refresh weekly. Target 5–10 active listings.
Events
Branded Facebook events for promotions, opening days, partner collaborations. Events have separate algorithm reach — use for limited-time campaigns.
Example: "Zoomi Klaipėda — atidarymo savaitgalis" as an event with RSVPs.
Paid · Brief note
Facebook paid advertising is covered in detail in 16.10 — Paid ads. Notes specific to Facebook organic vs paid:
❌ Avoid
Full paid creative specifications in 16.10.
Do not post
16.7 — TikTok
TikTok
Awareness platform for Lithuanian and Baltic users 18–35. Relaxed tone, native pacing, algorithm-first reach. Branded casual — relaxed but never off-brand.
Account setup
@zoomi.ltzoomi.lt?utm_source=tiktok&utm_medium=bioTikTok is one of the few places one functional emoji per line is allowed in bio. 🚗 as visual anchor, 👉 as CTA pointer. No more elsewhere on the brand.
Branded casual · What it means
Relaxed but never off-brand
TikTok’s culture rewards casual, native, sometimes scrappy content. But Zoomi is a service business with real money and real responsibility — we cannot drift into territory that undermines trust. Branded casual is the middle ground: relaxed pacing, conversational energy, real people on screen — but always recognizably Zoomi.
If you have to ask “is this too much?” — it probably is. Pull back. The brand will exist 10 years from now; the trend will not.
TikTok content pillars
POV: rental day
"POV: tu rezervuojai automobilį 8 ryto, dabar 8:15 ir tu jau Senamiestyje"
Quick tips
Walking around a car pointing to spots customers should check before driving off
Behind the scenes
Lithuania travel content
"Trakai — 30 min iš Vilniaus. Štai kodėl verta savaitgaliui."
Customer stories
"Justė, 26 m., savaitgalis Kaune"
Reactions and comparisons
Never compare to named competitors. Compare scenarios, categories, price points only.
First 2 seconds
TikTok is even more brutal than Reels
TikTok’s algorithm measures completion rate, replays, shares, and rewatches above all. The first 2 seconds determine whether the video reaches anyone beyond the initial small test audience. Build hooks ruthlessly.
Open with unexpected movement, transformation, or angle.
Example: Car cover yanked off in time-lapse, customer's face reacting to a feature.
Text overlay states what's coming — set up + payoff.
Example: "3 dalykai, kuriuos visi pamiršta" — answer in next 25 seconds.
Camera angle that places viewer immediately into a scenario.
Example: View from driver's seat at Vilnius airport pickup zone.
Start with something that breaks the expected TikTok pattern.
Example: Silence with text overlay (most TikToks start with music — silence catches attention).
Pose a question, hold 1 second of visual, then answer.
Example: "Kiek kainuoja Tesla savaitgaliui Lietuvoje?" — visual of Tesla — price breakdown.
❌ Avoid as hooks
Sounds · Trending with discipline
Trending sounds are reach multipliers — when relevant
TikTok’s algorithm boosts videos using trending sounds. But using a trending sound that doesn’t fit Zoomi’s tone is worse than using none — it reads as desperate or off-brand.
✅ Use trending sound if
✅ Use original / library if
❌ Forbidden
Words on screen
Captions matter more than you think
TikTok captions appear above the video and contribute to search results. They’re indexed.
Example
Position: top ⅓ for hooks, bottom ⅓ for CTAs. Avoid center.
Max 6 words per frame · max 8–10 seconds per overlay.
High contrast — TikTok watched in all lighting.
automobilio nuoma vilniuje·kaip nuomotis auto·ekonomiskas automobilis·elektromobilis nuoma·savaitgalis automobiliuRhythm
Consistency matters more than volume. The algorithm favours accounts that post regularly over accounts that burst.
Week 2: Travel + Customer + POV
Week 3: Reaction + Tips + BTS
Week 4: Travel + POV + Customer
❌ Never
Responding to comments
TikTok comments are public and signal to the algorithm. Active comment threads boost reach. Treat the comment section as part of the content.
What can go wrong
TikTok has a higher risk surface than other platforms. Document the specific risks Zoomi must avoid.
Using a sound 3 weeks after its peak = looks dated and desperate.
Mitigation: Don't reuse sounds discovered in someone else's 2-week-old video. Check sound usage count and freshness.
Stitching wrong content = brand association problem.
Mitigation: Never stitch or duet without explicit team review. Default: don't.
Filming a customer or their licence plate without permission.
Mitigation: Always blur plates in content showing a rental in use. Always get permission before featuring a customer.
A joke that lands in conversation but reads mean-spirited as content.
Mitigation: Ask: would this offend the customer who paid us? If yes, don't post.
Lithuanian and Baltic context has sensitive geopolitical dimensions — routes and neighbouring countries can be misread.
Mitigation: Stick to scenic and operational content. Avoid anything that can be parsed as political signalling.
Failing to disclose paid partnerships or sponsored content.
Mitigation: Always tag #partnerystė (LT) or #partnership when applicable. See 16.11 for influencer specifics.