techhashiraa
1.54K subscribers
55 photos
3 videos
8 files
43 links
๐Ÿ›  Daily Tech & AI Tips | Gaming | Hidden Apps | Viral Gadget Reviews
๐Ÿง  By Techhashiraa โ€” the brain behind the jugaad
โœ‰๏ธ DM to collab
Download Telegram
techhashiraa
Photo
quote/prompt box |
| 4 | Features | LIGHT_BG | What you get โ€” feature list with icons |
| 5 | Details | DARK_BG | Depth โ€” customization, specs, differentiators |
| 6 | How-to | LIGHT_BG | Steps โ€” numbered workflow or process |
| 7 | CTA | Brand gradient | Call to action โ€” logo, tagline, CTA button. **No arrow.
Full progress bar.** |
Rules:
- Start with a hook โ€” the first slide must stop the scroll. Lead with a value
proposition or bold claim, not a description. Use visual proof (screenshots, images)
to immediately validate the hook.
- End with a CTA on brand gradient โ€” no swipe arrow, progress bar at 100%
- Alternate light and dark backgrounds for visual rhythm
- Adapt the sequence to the topic โ€” not every carousel needs a "problem" slide
- Slides can be reordered, added, or removed based on what the content needs
---
## Reusable Components
### Strikethrough pills
For "what's being replaced" messaging on problem slides.
<span style="font-size:11px;padding:5px 12px;border:1px solid
rgba(255,255,255,0.1);border-radius:20px;color:#6B6560;text-decoration:line-throug
h;">{Old tool}</span>

### Tag pills
For feature labels, options, or categories.
<span style="font-size:11px;padding:5px
12px;background:rgba(255,255,255,0.06);border-radius:20px;color:{BRAND_LIGHT};"
>{Label}</span>

### Prompt / quote box
For showing example inputs, quotes, or testimonials.
<div style="padding:16px;background:rgba(0,0,0,0.15);border-radius:12px;border:1px
solid rgba(255,255,255,0.08);">
<p class="sans"
style="font-size:13px;color:rgba(255,255,255,0.5);margin-bottom:6px;">{Label}</p>
<p class="serif"
style="font-size:15px;color:#fff;font-style:italic;line-height:1.4;">"{Quote text}"</p>
</div>

### Feature list
Icon + label + description rows for feature/benefit slides.
<div style="display:flex;align-items:flex-start;gap:14px;padding:10px
0;border-bottom:1px solid {LIGHT_BORDER};">
<span
style="color:{BRAND_PRIMARY};font-size:15px;width:18px;text-align:center;">{icon}<
/span>
<div>
<span class="sans"
style="font-size:14px;font-weight:600;color:{DARK_BG};">{Label}</span>
<span class="sans" style="font-size:12px;color:#8A8580;">{Description}</span>
</div>
</div>

### Numbered steps
For workflow or how-to slides.
<div style="display:flex;align-items:flex-start;gap:16px;padding:14px
0;border-bottom:1px solid {LIGHT_BORDER};">
<span class="serif"
style="font-size:26px;font-weight:300;color:{BRAND_PRIMARY};min-width:34px;lin
e-height:1;">01</span>
<div>
<span class="sans"
style="font-size:14px;font-weight:600;color:{DARK_BG};">{Step title}</span>
<span class="sans" style="font-size:12px;color:#8A8580;">{Step
description}</span>
</div>
</div>

### Color swatches
For customization or branding slides.
<div
style="width:32px;height:32px;border-radius:8px;background:{color};border:1px
solid rgba(255,255,255,0.08);"></div>

### CTA button (final slide only)
<div style="display:inline-flex;align-items:center;gap:8px;padding:12px
28px;background:{LIGHT_BG};color:{BRAND_DARK};font-family:'{BODY_FONT}',san
s-serif;font-weight:600;font-size:14px;border-radius:28px;">
{CTA text}
</div>

---
## Instagram Frame (Preview Wrapper)
When displaying the carousel in chat, wrap it in an Instagram-style frame so the
user can preview the experience:
- Header: Avatar (BRAND_PRIMARY circle + logo) + handle + subtitle
- Viewport: 4:5 aspect ratio, swipeable/draggable track with all slides
- Dots: Small dot indicators below the viewport
- Actions: Heart, comment, share, bookmark SVG icons
- Caption: Handle + short carousel description + "2 HOURS AGO" timestamp
Include pointer-based swipe/drag interaction for the preview, but the slides
themselves are standalone export-ready images.
Important: The .ig-frame must be exactly 420px wide. The carousel
โค1
techhashiraa
Photo
viewport inside it has a 4:5 aspect ratio (420ร—525px). All slide layouts, font sizes,
and spacing are designed for this 420px base width. Do NOT change this width โ€”
the export process depends on it.
---
## Exporting Slides as Instagram-Ready PNGs
After the user approves the carousel preview, export each slide as an individual
1080ร—1350px PNG image ready for direct Instagram upload.
### Critical Export Rules
1. Use Python for HTML generation โ€” never use shell scripts with variable
interpolation, as shell variables corrupt content (especially numbers and special
characters in HTML). Always generate HTML files using Python's
Path.write_text() or open().write().
2. Embed images as base64 โ€” all user-uploaded images (screenshots, profile
photos, etc.) must be base64-encoded and embedded directly in the HTML as
data:image/jpeg;base64,... URIs. This ensures the HTML is fully self-contained
and renders correctly in the headless browser.
3. Keep the 420px layout width โ€” the HTML carousel is designed at 420px
wide. The export uses Playwright's device_scale_factor to scale up to 1080px
output WITHOUT changing the layout. Never set the viewport to 1080px wide โ€”
this would reflow the layout and distort everything.
### Export Script
Use this exact Playwright approach to export slides:
import asyncio
from pathlib import Path
from playwright.async_api import async_playwright
INPUT_HTML = Path("/path/to/carousel.html")
OUTPUT_DIR = Path("/path/to/output/slides")
OUTPUT_DIR.mkdir(exist_ok=True)
TOTAL_SLIDES = 7 # Update to match your carousel
# The carousel is designed at 420px wide, 4:5 aspect = 525px tall
# Target output: 1080x1350
# Scale factor: 1080 / 420 = 2.5714...
VIEW_W = 420
VIEW_H = 525
SCALE = 1080 / 420
async def export_slides():
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page(
viewport={"width": VIEW_W, "height": VIEW_H},
device_scale_factor=SCALE,
)
html_content = INPUT_HTML.read_text(encoding="utf-8")
await page.set_content(html_content, wait_until="networkidle")
await page.wait_for_timeout(3000) # Wait for fonts to load
# Hide the Instagram frame chrome, show only the slide viewport
await page.evaluate("""() => {
document.querySelectorAll('.ig-header,.ig-dots,.ig-actions,.ig-caption')
.forEach(el => el.style.display='none');
const frame = document.querySelector('.ig-frame');
frame.style.cssText =
'width:420px;height:525px;max-width:none;border-radius:0;box-shadow:none;over
flow:hidden;margin:0;';
const viewport = document.querySelector('.carousel-viewport');
viewport.style.cssText =
'width:420px;height:525px;aspect-ratio:unset;overflow:hidden;cursor:default;';
document.body.style.cssText =
'padding:0;margin:0;display:block;overflow:hidden;';
}""")
await page.wait_for_timeout(500)
for i in range(TOTAL_SLIDES):
# Navigate to slide i by moving the track
await page.evaluate("""(idx) => {
const track = document.querySelector('.carousel-track');
track.style.transition = 'none';
track.style.transform = 'translateX(' + (-idx * 420) + 'px)';
}""", i)
await page.wait_for_timeout(400)
# Screenshot with clip to the exact viewport area
await page.screenshot(
path=str(OUTPUT_DIR / f"slide_{i+1}.png"),
clip={"x": 0, "y": 0, "width": VIEW_W, "height": VIEW_H}
)
print(f"Exported slide {i+1}/{TOTAL_SLIDES}")
await browser.close()
asyncio.run(export_slides())

### Why This Works
- **device_scale_factor=2.5714** tells the browser to render at high DPI. A
420px-wide element becomes 1080px in the output image. The layout stays at
420px โ€” fonts, spacing, and element positions remain exactly as they appear in
the HTML preview.
- **clip** ensures the screenshot captures only the carousel viewport, not any
surrounding browser chrome.
- **wait_for_timeout(3000)** gives Google Fonts time to load before
โค2
techhashiraa
Photo
screenshotting.
- **track.style.transition = 'none'** disables the swipe animation so the slide
snaps instantly into position.
### Common Export Mistakes to Avoid
| Mistake | What goes wrong | Fix |
|---------|----------------|-----|
| Setting viewport to 1080ร—1350 | Layout reflows โ€” fonts become tiny, spacing
breaks, images resize | Keep viewport at 420ร—525, use device_scale_factor |
| Using shell scripts to generate HTML | $ signs, backticks, and numbers get
interpolated as shell variables | Always use Python for HTML generation |
| Not waiting for fonts | Headings render in fallback system fonts |
wait_for_timeout(3000) after page load |
| Not hiding IG frame chrome | Export includes the header, dots, and caption |
Hide .ig-header,.ig-dots,.ig-actions,.ig-caption |
| Changing .ig-frame width | Entire layout shifts, nothing matches preview |
Always keep at exactly 420px |
---
## Layout Best PracticesContent must never overlap the progress bar.r.** Use padding-bottom: 52px
on any slide content that extends to the bottom.
2. **User-uploaded images may be JPEGs despite .png extension.** Always
check the actual file format with the file command when embedding as
base64 โ€” use the correct MIME type (data:image/jpeg;base64,... vs
data:image/png;base64,...).
3. **Test every slide visually before export.** Ask the user to swipe through the
HTML preview and screenshot any issues. Iterate on specific slides rather than
regenerating the entire carousel.
---
## Design PrEvery slide is export-readyport-ready** โ€” arrow and progress bar are part of the slide
image, not ovLight/dark alternationlternation** โ€” creates visual rhythm and sustains attention acrosHeading + body font pairingnt pairing** โ€” display font for impact, body font for
reaBrand-derived paletteed palette** โ€” all colors stem from one primary, keeping
everything Progressive disclosuredisclosure** โ€” progress bar fills and arrow guides the userLast slide is specialis special** โ€” no arrow (signals end), full progress bar, cConsistent componentscomponents** โ€” same tag style, same list style, same spacing
across alContent padding clears UI clears UI** โ€” body text never overlaps with the progress bar
Iterate fasterate fast** โ€” show the preview, get feedback on specific slides, fix those
slides. Don't rebuild from scratch unless the direction fundamentally changes.
Save your Instagram account from getting banned with these tips ๐Ÿ’ก
This guide is based on my personal experience because 2โ€“3 days ago, my account also got bannedโ€ฆ and I recovered it within just 5 minutes ๐Ÿ’€โœŒ๏ธ
techhashiraa
Video
Prompt ๐Ÿ”ฅ?

Ultra-realistic airport celebrity entry. Single continuous handheld shot from crowd POV. No cuts. Natural micro-shake. Documentary realism.

Audio: Real ambient only โ€” loud crowd cheering, people shouting โ€œ[your name]!โ€, camera shutters, phones recording, airport announcements echoing.

Lighting: Natural daylight through airport glass, realistic reflections, soft shadows, slight haze.

๐ŸŽฌ 0.0โ€“2.0s (CHAOTIC HOOK)

Camera inside dense crowd behind barricades. Shaky handheld.
Phones raised, people blocking view, chaotic movement.
Security pushing crowd slightly. Loud cheering and shouting name.

๐ŸŽฌ 2.0โ€“3.8s (REVEAL MOMENT)

Camera lifts slightly through gaps โ†’ celebrity appears walking forward with bodyguards.
Focus shift: blurred โ†’ sharp.
Female companion walking beside him, holding his hand naturally.
Media flashes hitting face.

๐ŸŽฌ 3.8โ€“5.0s (INTERACTION + EXIT)

Camera pushes closer.
Fan shouts: โ€œ[your name] ek photo!โ€
Celebrity turns, smiles, quick wave.
Luxury black car visible ahead.
Female companion steps slightly forward, opens car door โ†’ both enter quickly.
Door shuts โ†’ engine rev โ†’ vehicle starts moving โ†’ END

Website link ๐Ÿ”— - https://create.wan.video/
โค3
Favorite childhood game ๐ŸŽฎ link ๐Ÿ”—๐Ÿ‘‡
https://apkvision.org/games/action/tomb-raider-apk-8994/?utm_source=sp_auto_dm&utm_referrer=sp_auto_dm

Game name - Tomb Raider ๐Ÿ˜
โค1
Indian gta game link ๐Ÿ”—๐Ÿ‘‡

https://play.google.com/store/apps/details?id=com.ANGamingStudio.IndianVehiclesSimulator3d

GAME NAME - Indian Viechles simulator 3d๐Ÿฅณ
Guys our first ever Gameplay video uploaded ๐Ÿ”ฅ

Please go and check it out ๐Ÿ˜
Video link ๐Ÿ”— ๐Ÿ‘‡

https://youtu.be/XJAw9aiWQ9I?si=7iQ81tddE-h7dO2M
Claude prompt๐Ÿ‘‡
Never agree with me by default. Your first instinct should be to stress-test what Iโ€™ve said, not validate it. If I present an idea, strategy, or opinion, your job is to find the weakest point before you affirm anything.
No glazing. Donโ€™t tell me something is โ€œgreat,โ€ โ€œbrilliant,โ€ or โ€œreally smartโ€ unless you can point to specific, concrete reasons why - and even then, lead with whatโ€™s wrong or missing first. Compliments without substance are noise.
Donโ€™t echo my framing back to me. If I say โ€œI think X is the move,โ€ donโ€™t start your response with โ€œX is definitely the moveโ€ or โ€œThat makes a lot of sense.โ€ Instead, start by asking yourself: what am I not seeing? Whatโ€™s the counter-argument? What would someone who disagrees say, and are they right?
When you do agree, earn it. Agreement should come after youโ€™ve genuinely pressure-tested the idea - not as a default starting position. If you agree, say why in a way that adds something I didnโ€™t already say.

Be direct and concise. Skip the warm-up sentences.
Donโ€™t pad responses with filler affirmations. Get to the point. If the answer is โ€œnoโ€ or โ€œthis wonโ€™t work,โ€ say that in the first sentence.
Call out bad logic, weak assumptions, and blind spots immediately โ€” even if I seem confident or excited.
Especially then. The more certain I sound, the more I need pushback.
If you catch yourself about to start a response with
โ€œThatโ€™s a great pointโ€ or โ€œYouโ€™re absolutely rightโ€ - stop and rewrite. Start with the most useful thing you can say instead.