What is Mantequilla Soft?
Mantequilla Soft is an open-source Hive initiative focused on building the tooling that makes Hive apps smoother, faster, and easier to work with.
We believe great infrastructure should feel invisible—quietly doing its job, letting developers build, and users enjoy the experience, like butter melting into the workflow.

This report summarizes the development, infrastructure, and integration work completed this week by the Mantequilla-Soft team across Snapie, 3Speak, and Hive ecosystem tooling.
Snapie Player Improvements - @tibfox
Added autoplay support with sound-first fallback to muted
- Displays an info button when muted
- Autoplay is skipped on Chrome due to unreliable autoplay policies
Fixed pillarboxing issues for vertical videos rendered inside 16:9 desktop containers
Added a local testing page covering all player layout modes
Implemented play / pause / seek controls via
postMessagefor iframe embedsCleaned up logging by replacing
console.logwith a centralizeddebugLogutility
Hive Frontend Embed Fixes (3Speak) - @eddiespino & @meno
Coordinated with multiple Hive frontends to restore and improve 3Speak video embeds:
- Contacted PeakD (Asgarth)
- Coordinated with Ecency (Good-karma)
- Submitted a Merge Request for Hive.blog
Shared and maintained centralized embed documentation:
https://play.3speak.tv/embed-demo-local.html
3Speak Preview Environment - @eddiespino
Created a dedicated
previewbranch and deployment at preview.3speak.tvPurpose:
- Test new features safely
- Reduce the risk of breaking production
- Improve QA and release confidence before merging into
main
Frontend Improvements & Cleanup - @kesolink
Added moment.js for improved and consistent date handling
Improved vote estimation logic:
- Better handling of user voting power
- More accurate effective vesting share calculations
Updated
estimatelogic inhiveUtils.jsusing dynamic blockchain propertiesRefactored community navigation in the video player to support direct community links
Improved loading states and error handling in tooltip components
Updated the NotFound page to use proper internal navigation links
Removed unused code and comments across the codebase for readability
Feed & Config Refactoring - @kesolink
Updated Feed component to consistently use
FEED_URLfrom configAdded
TAG_FEED_URLand centralized API endpoints inconfig.jsUpdated TagFeed and Trending pages to use the new endpoints
Removed unnecessary debug logs from:
- Feed
- UserProfilePage
- Modal components
Improved maintainability and consistency across frontend API calls
MacOS SourceBuffer Quota Fix (Critical Playback Issue) - @meno
Problem
- Videos failed with
MEDIA_ERR_DECODE (code 3)on macOS - Issue occurred across Safari, Chrome, Firefox, and Edge
- Linux browsers were unaffected
Root Cause
- macOS enforces a strict SourceBuffer memory quota (~150 MB)
- Player exceeded this quota during playback due to aggressive buffering
Solution (macOS-wide)
Reduced buffer size to 20s / ~20MB (from 30s / 30MB)
Implemented aggressive buffer cleanup:
- Removes old buffered segments on stalls
- Keeps only ~10 seconds behind the playhead
- Periodic cleanup every 5 seconds during playback
Reduced initial bandwidth selection on macOS:
- Starts at 3 Mbps instead of 5 Mbps
Applies to all browsers on macOS, not Safari-specific
Result
- Memory usage stays well below system limits
- Videos now play reliably across all macOS browsers
SnapieVideoPlayer Backend Updates
Status-Based Placeholder System - @meno
Implemented a unified placeholder system for the videos collection, matching existing embed-video behavior.
Status Handling Overview
- Deleted videos → show deletion placeholder
- Processing videos → show processing placeholder
- Failed videos → show failure placeholder
- Published / Scheduled videos → serve real video
Key Improvements
- Added
statusandisPlaceholderfields to API responses - Verified and normalized all known video status values
- Maintains the full 4-tier CDN fallback system:
BunnyCDN → Supernode → Hotnode → Audionode
Codebase Refactor & Best Practices - @meno
Introduced constants for all video statuses (no magic strings)
Added shared helper functions for:
- Parameter validation
- Placeholder URL generation
- Status-based video resolution
Reduced code duplication by ~40%
Enforced consistent error handling and HTTP responses
Added JSDoc documentation throughout
View Count Protection
Fixed
/api/viewendpoint so views are only counted for playable videosViews are incremented only for:
publishedscheduledpublish_laterpublish_manual
Prevents analytics inflation from:
- Deleted
- Processing
- Failed videos
API now clearly reports whether a view was counted
Deployment & Metrics
- Repository: snapievideoplayer
- Commit:
04f976d - Files changed: 1
- Insertions: +230
- Deletions: −78
Status: ✅ Deployed and production-ready
Weekly Summary
This week focused on:
- Improving video and audio playback reliability across Hive frontends
- Hardening infrastructure against platform-specific issues (macOS)
- Cleaning up and modernizing frontend and backend code
- Establishing safer release workflows via preview environments
- Improving long-term maintainability and analytics integrity

YouTube Mirror:
https://www.mantequilla-soft.com/
https://github.com/orgs/Mantequilla-Soft/repositories
▶️ 3Speak
It was a great meeting guys... I'll make sure to fix my mic volume next week!
The first of many!
Congratulations @mantequilla-soft! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)
Your next target is to reach 300 upvotes.
You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOPwish you guys well in your endevours
Thank you!
Its great update, good job
Excellent.
Good stuff.... need to try 3speak in my TV...
I think the idea of "scoring" how encoders are doing... it can help newer distributions of videos via the gateway. Obviously it requires one or two first attempts for new encoders, but then it "auto balances" and it does not need to rely on hardware requirements.
Just an idea @meno @eddiespino