Loading video...

Video Failed to Load

Go Home

I updated my Runtime Explorer tool I made - Explorer search(server or client) - Simple context menu(delete, cut, copy, paste) - Selection tools(Select models/parts with your mouse) - Better permissions & code execution toggle setting #Roblox #RobloxDev

11,733 views • 1 month ago •via X (Twitter)

0 Comments

No comments available

Comments from the original post will appear here

Related Videos

HERMES AGENT WITHOUT TOOLS IS A CHATBOT. WITH THEM IT BUILDS 3D TOWERS IN BLENDER, CHECKS STOCK PRICES, AND DRIVES VS CODE. tonbi JUST DROPPED THE FULL GUIDE. module 6 of his 10-part Hermes masterclass. best breakdown of the tool layer anyone has published. what you need to know: TOOLS vs SKILLS vs MCP skills = instructions (markdown, loaded into context) tools = callable functions (Python, agent emits call, Hermes executes) MCP = adapters to external systems (Blender, Stripe, Linear, Notion) every tool has three parts: → the function (does the real work) → the schema (what the model sees to decide when to call it) → the registry (makes the tool exist in the agent) the model never runs the function directly. it emits a structured request (tool name + JSON args). Hermes executes and returns the result. if the tool fails, the error goes back as JSON. the agent recovers instead of crashing. TOOL SETS CONTROL THE SURFACE hermes chat --tool-sets web # only web tools loaded. no files, no terminal. hermes chat --tool-sets safe # read-only: web search, vision, image gen. # no file writes. no terminal. no code execution. mid-session: /tools enable video /tools disable terminal or toggle in the dashboard: hermes dashboard → Skills → Tool Sets MCP SERVERS two transport types: STDIO (local subprocess) or HTTP (remote endpoint). add a server: hermes mcp # or ask: "add the MCP server for Blender" filter tools with include/exclude per server. keep only what you trust. security: → OAuth 2.1 PKCE (no long-lived tokens in config) → package scanning via api.osv. dev before launch → all MCP calls go through approval gates HERMES AS MCP SERVER hermes mcp serve exposes 10 tools via FastMCP. connect VS Code Copilot or Cursor to your running Hermes instance. BUILD YOUR OWN TOOL He built a stock price tool live: → Python function calling Finnhub API → schema with name, description, parameters → registered in tool_sets.py → agent calls it automatically when relevant any repeating API call in your workflow can become a native tool. full Hermes architecture deep-dive in the article 👇

YanXbt

32,680 views • 1 month ago

Pi was built when there were already agent harnesses around. Here’s why Mario Zechner(Mario Zechner), found them suboptimal and built Pi, a minimalist self-modifying agent: #1 - Mario initially was a believer in Claude Code: "I was a believer in Claude code because they were the first that packaged agentic search up in a really compelling package. And at the time that fit my workflow really well. Everything around the LLM was kind of nice and tidy and easy to understand. I was super happy. I was proselytising Claude code." #2 - Reverse engineering Claude Code highlighted the degradation that Mario felt as a user: "I personally like simple tools that are stable and that I can rely on. Even if they have non-deterministic parts, all the deterministic parts should be as stable as possible. That was just not the experience with Claude Code around summer 2025. They would take away your control of the context. They would inject stuff behind your back, which is bad. Then, your workflows stopped working because there's now a system reminder that you don't even see in the UI that would modify the behaviour of the model. They would also do this to the system prompt. I built a little service where I can track the progression or evolution of the system, prompt and tool definitions and, with every release, it was messing with stuff. That just messed with my workflows and I don't appreciate that." #3 - PI was built with an appreciation for simple and reliable tools: "If I commit to a development tool, I want it to be a stable, reliable thing like a hammer. I don't want my hammer to break a different spot every day. That's terrible. We need somebody who goes the full velocity kind of way. But I don't want to work with a tool like that."

The Pragmatic Engineer

62,825 views • 2 months ago

MCP is an absolute game-changer. (Together with DeepSeek, MCP is probably the hottest thing in AI over the last 6 months.) I use Cursor to write code 90% of the time. I built an MCP server to connect the Cursor agent to GroundX, an open-source RAG system, and I'm not going back. This is officially insane! Here is what I did, step by step: First, a little bit of context. I maintain an end-to-end Machine Learning System with several pipelines to process data, train, evaluate, register, deploy, and monitor a model. I've written a lot of documentation explaining how the system works and how to modify and maintain it. There's also the documentation of the few libraries I used to build the system. I'm a massive fan of GroundX, an open-source enterprise-grade RAG system you can run on your servers or deploy to any cloud provider. I've been working with them for a long time. GroundX offers two services. First, the "ingest" service uses a custom, pretrained vision model to ingest and understand your data. I used this to process all the documentation I have for my code. Markdown files, source code, HTML files, and even PDF documents. Everything I've written related to my project went into GroundX. Their second service is "search," which combines text and vector search with a fine-tuned re-ranker model to retrieve information from the data. I needed to connect Cursor with this service, and that's where MCP came in. I built an MCP server with two tools: 1. The first tool would go to GroundX and retrieve the available topics. Splitting the data into topics (or "buckets," as GroundX calls them) allows me to use the same setup to serve documentation from different topics. 2. The second tool would search GroundX under a specific topic for the context related to the supplied query. The magic happens after connecting the MCP server with Cursor. Now, I can ask any questions related to my project, and Cursor's AI agent retrieves the list of available topics from the RAG system and then searches it to provide relevant context to the model. I went from getting mediocre, sometimes wrong answers to 100% truthful, complete answers. Here is the crazy part:

Santiago

255,433 views • 1 year ago

#COLDCARD Firmware Update # Shared Mk4 & Q New Features: 📳 PushTX: once enabled with a service provider's URL, you can tap the COLDCARD and your phone will open a webpage that transmits your freshly-signed transaction onto the blockchain. See Settings > NFC Push Tx to enable and select service provider, or your own webpage. More at pushtx org. You can also use this to broadcast any transaction found on the MicroSD card (See Tools > NFC Tools > Push Transaction). 🕵️‍♂️ Transaction Output Explorer: allows viewing all output details for larger txn (10+ output, 20+ change) before signing. Offered for large transactions only because we are already showing all the details for typical transactions. 🏷️ Setting to enable always showing XFP as first item in home menu. Enhancement: ⏫ When signing, show sum of outgoing value at top. Always show number of inputs/outputs and total change value. ⏫ Add Sign PSBT shortcut to NFC Tools menu ⏫ Stricter p2sh-p2wpkh validation checks. ⏫ Show master XFP of BIP-85 derived wallet in story before activation. Only words and extended private key cases. ⏫ Add Theya option to Export Wallet ⏫ Mention the need to remove old duress wallets before locking down temporary seed. Bugfix: 👨‍🔧 Fix PSBTv2 PSBT_GLOBAL_TX_MODIFIABLE parsing. 👨‍🔧 Decrypting Tapsigner backup failed even for correct key. 👨‍🔧 Clear any pending keystrokes before PSBT approval screen. 👨‍🔧 Display max 20 change outputs in when signing, and max 10 of largest outputs, and offer the Transaction Output Explorer if more to be seen. 👨‍🔧 Calculate progress bar correctly in Address Explorer after first page. 👨‍🔧 Search also Wrapped Segwit single sig addresses if P2SH address provided, not just multisig (multisig has precedence for P2SH addresses) 👨‍🔧 Address search would not find addresses for non-zero account numbers that had been exported but not yet seen in a PSBT. ## Mk4 Specific Changes 5.3.2 - 2024-06-26 👨‍🔧 Displaying change address in Address Explorer fails if NFC and Vdisk not enabled. ## Q Specific Changes 1.2.2Q - 2024-06-26 ⏫ Coldcard multisg export/import format detected in Scan Any QR Code. ⏫ Support newer-version QR scanner modules. 👨‍🔧 Exporting BIP-85 derived entropy via NFC was offered even when NFC disabled, leading to a Yikes error.

COLDCARD

211,273 views • 2 years ago

How Jason Calacanis Got Claw-Pilled: An AI Agent Prompted Itself to Build Him a CRM in Seconds “ The moment I became Claw-pilled, I was like, ‘Hey, I want to build my network, I know these 20 people in Japan, I had dinner with them during my recent trip, I want to know who they know, so check out LinkedIn and other things, and who they're associated with, and make me a mind map of it, and then the next trip I want to meet with the next circle of those connections.’” “It's like, ‘Okay, I got the results,’ and it said, ‘Where do you want me to put them?’” “I was like, ‘Well, where can you put them?’” “And it said, ‘I can put it in a Google sheet, I can put it in a Notion table, I can put it here, I could give you a PDF, I could give you a CSV file, or I could write you a CRM.’ And I was like, ‘Yeah, sure, make me a CRM system…’ and it made a CRM system.” “I think maybe 1/1000 people working with AI have had that experience. Maybe it's 1/10,000, where your agent says, ‘I'll make you bespoke software.’ The context is so good because the memory's getting better. When did that happen?” Perplexity CEO Aravind Srinivas: “I think it happened with Opus 4.5. That was the inflection point when models started being amazingly good at orchestration, and reasoning, and tool calls.” “The models started becoming very good at handling the context, so the context window no longer became a problem, and that made it suddenly so good at doing very long orchestration tasks.” —------------------------------------------ Our episode is sponsored by the New York Stock Exchange - a modern marketplace and exchange for building the future. It all happens at the NYSE 🏛 -

The All-In Podcast

170,946 views • 4 months ago

What am I actually building with Leon AI? Many of you joined the $LEON community recently, but I've been building the foundation since 2017. My goal is simple but ambitious: to build the ultimate open-source personal assistant. Usable by hardcore devs and non-tech users. Private. Local. Autonomous or scripted if you want more reliability and faster execution, your choice. Here is the 3-phase roadmap I'm executing now: 1. The Atomic Architecture I moved away from monolithic scripts. - The flow: Skills > Actions > Tools > Functions (> Binaries). - Real-world example: a "Video Translator" skill isn't just a script. Leon orchestrates atomic components (voice isolation -> zero-shot voice cloning -> ONNX runtime and more) to execute complex workflows dynamically. 2. Self-Evolution (Leon Codes Leon) This is my current focus. This is the game changer. I'm building a meta-skill that allows Leon to write his own code following the granular structure I developed. - If you ask for a skill that doesn't exist, Leon will find the tools, write the code, and inject it into his own memory for next time. 3. True Autonomy (Local Agents) Moving from scripts to ReAct (Reason + Act) logic. - Leon won't just follow commands, he will reason. - He will autonomously pick tools from his toolkit (e.g., FFmpeg) to solve problems. - Optimization: heavy focus on **Local LLMs**. I am implementing context filters to prevent hallucinations and run fast on consumer hardware (no cloud required).

Louis Grenard

21,122 views • 6 months ago

I’ve been using quite heavily over the past few days, alongside Claude Code on its other platforms. The first thing that caught my attention was the “Research preview” label, which likely indicates that this experience is still in an experimental phase. That said, compared to Claude Desktop in Code mode, the web version feels slightly more advanced. You can select branches, and previous sessions display clear status icons, which is a small but very meaningful UX improvement. My impression: I liked it much more than Claude Desktop, especially the use of branches, which is essential when working with agents outside a local environment. What’s missing: The sandbox is very limited. It only allows installing packages from PyPI (maybe npm as well, but I didn’t test it). CLI tools are essential in these environments. I tried installing GitHub CLI (gh), but it failed due to network restrictions. Even though I had all the required domains enabled in Claude’s settings, this execution sandbox clearly does not respect that configuration. Another important issue: environment variables added through the UI are not automatically picked up by the sandbox runtime. I had to restart the session for it to recognize the GitHub token I had just added. I also tried installing the Vercel CLI, without success. In the end, Claude usually finds a workaround, but it burns a lot of tokens trying different installation strategies or alternative external calls. What I would add: In the development environment settings, it should be possible to: Configure the sandbox’s network access and define which CLI tools and packages come preinstalled I don’t want to waste tokens installing gh, vercel, wrangler, or supabase CLIs over and over again. These are relatively simple changes that would dramatically improve execution quality and efficiency on the web. If you’re interested in trying I hope this feedback is useful. It’s definitely a tool worth paying attention to, especially since it syncs with Claude Mobile, allowing you to start a task on your phone and continue it later on your computer. Hope this feedback helps Boris Cherny Thariq Anthony Morris ツ

Daniel San

11,626 views • 6 months ago

Big moment for Postgres! AI coding tools have been surprisingly bad at writing Postgres code. Not because the models are dumb, but because of how they learned SQL in the first place. LLMs are trained on the internet, which is full of outdated Stack Overflow answers and quick-fix tutorials. So when you ask an AI to generate a schema, it gives you something that technically runs but misses decades of Postgres evolution, like: - No GENERATED ALWAYS AS IDENTITY (added in PG10) - No expression or partial indexes - No NULLS NOT DISTINCT (PG15) - Missing CHECK constraints and proper foreign keys - Generic naming that tells you nothing But this is actually a solvable problem. You can teach AI tools to write better Postgres by giving them access to the right documentation at inference time. This exact solution is actually implemented in the newly released pg-aiguide by Tiger Data - Creators of TimescaleDB, which is an open-source MCP server that provides coding tools access to 35 years of Postgres expertise. In a gist, the MCP server enables: - Semantic search over the official PostgreSQL manual (version-aware, so it knows PG14 vs PG17 differences) - Curated skills with opinionated best practices for schema design, indexing, and constraints. I ran an experiment with Claude Code to see how well this works, and worked with the team to put this together. Prompt: "Generate a schema for an e-commerce site twice, one with the MCP server disabled, one with it enabled. Finally, run an assessment to compare the generated schemas." The run with the MCP server led to: - 420% more indexes (including partial and expression indexes) - 235% more constraints - 60% more tables (proper normalization) - 11 automation functions and triggers - Modern PG17 patterns throughout The MCP-assisted schema had proper data integrity, performance optimizations baked in, and followed naming conventions that actually make sense in production. pg-aiguide works with Claude Code, Cursor, VS Code, and any MCP-compatible tool. It's free and fully open source. I have shared the repo in the replies!

Avi Chawla

186,931 views • 7 months ago

If your MCP server has dozens of tools, it’s probably built wrong. You need tools that are specific and clear for each use case—but you also can’t have too many. This creates an almost impossible tradeoff that most companies don’t know how to solve. That’s why I interviewed my friend Alex Rattray (Alex Rattray), the founder and CEO of Stainless. Stainless builds APIs, SDKs, and MCP servers for companies like OpenAI and Anthropic. Alex has spent years mastering how to make software talk to software, and he came on the show to share what he knows. I had him on Every 📧’s AI & I to talk about MCP and the future of the AI-native internet. We get into: • Design MCP servers to be lean and precise. Alex’s best practices for building reliable MCP servers start with keeping the toolset small, giving each tool a precise name and description, and minimizing the inputs and outputs the model has to handle. At Stainless, they also often add a JSON filter on top to strip out unnecessary data. • Make complex APIs manageable with dynamic mode. To solve the problem of how an AI figures out which tool to use in larger APIs, Stainless switches to “dynamic mode,” where the model gets only three tools: List the endpoints, pick one and learn about it, and then execute it. • MCP servers as business copilots. At Stainless, Alex uses MCP servers to connect tools like Notion and HubSpot, so he can ask questions like, “Which customers signed up last week?” The system queries multiple databases and returns a summary that would’ve otherwise taken multiple logins and searches. • Create a “brain” for your company with Claude Code. Alex built a shared company brain at Stainless by keeping Claude Code running on his system and asking it to save useful inputs—like customer feedback and SQL queries—into GitHub. Over time, this creates a curated archive his team can query easily. • The future of MCP is code execution. Instead of giving models hundreds of tools, Alex believes the most powerful setup will be a simple code execution tool and a doc search tool. The AI writes code against an API’s SDK, runs it on a server, and checks the docs when it gets stuck. This is a must-watch for anyone who wants to understand MCP—and learn how to use them as a competitive edge. Watch below! Timestamps: Introduction: 00:01:14 Why Alex likes running barefoot: 00:02:54 APIs and MCP, the connectors of the new internet: 00:05:09 Why MCP servers are hard to get right: 00:10:53 Design principles for reliable MCP servers: 00:20:07 Scaling MCP servers for large APIs: 00:23:50 Using MCP for business ops at Stainless: 00:25:14 Building a company brain with Claude Code: 00:28:12 Where MCP goes from here: 00:33:59 Alex’s take on the security model for MCP: 00:41:10

Dan Shipper 📧

15,645 views • 10 months ago

Why I use Cline - a free VS Code plugin - for AI engineering. Saoud Rizwan has: Flexible context management: It lets you include only what's relevant, making it ideal for large codebases. Attach files, folders, URLs and problems. Visualizes how much of the context window you've used too. Model flexibility: Cline isn't tied to one provider; it supports models from Anthropic, DeepSeek, Google Gemini, OpenAI, local models (via ollama or LM Studio) and more, allowing you to switch models for cost efficiency and capability. Plan/Act Modes: The v3.2.6 update introduces modes for designing solutions (Plan) or direct implementation (Act), providing control when you need it most. DeepSeek-R1 (Plan) + Claude 3.5 Sonnet (Act) workflow: This hybrid approach can reduce costs by up to 97% while improving output quality. DeepSeek as an architect, Sonnet for implementation. Checkpoints: Beyond git, Cline captures workspace states, offering granular rollback and comparison, especially useful for exploring solutions or debugging. Runtime awareness: Cline's integration with running systems is a game-changer, allowing real-time interaction with browsers (automatically check UI, interactions) and terminals to verify changes. Model Context Protocol (MCP): This allows for custom tool integration, making Cline extensible for specific enterprise needs without complex prompt engineering. How does it compare to alternatives? Cline shines with its system-level integration, model flexibility, and control, though it requires more attention to model selection and cost. My take: Cline aligns with professional engineering practices, offering control, visibility, and extensibility for complex system development. Totally worth considering for serious engineering teams.

Addy Osmani

53,487 views • 1 year ago

New Tools for a New Era. Coding agents like Claude and Cursor have dramatically reduced the time it takes to go from idea to functional software. But the experience of designing and refining with them sucks. One reason for this is that while the terminal is an incredible tool for communicating direction with language, it is a terrible tool for defining and exploring visual and interactive objects. Here is one idea for how we might fix a small part of that. In the old world, when you wanted to create a transition or animation in your app, you would type some code, refresh your local server, and click to run your animation. It probably wasn't right, because after all no one can know what 'cubic-bezier(0.3, 0.05, 0.45, 1)' really feels like when you read it. You need to see it. Feel it. Interact with it in a real world context. So you'd edit some values, save, refresh, and keep guessing and checking until it felt right. Today, you can write a quick, single-use tool that's a visual studio for designing animations. You can then configure some components and containers common in all apps, and explore different animations in real time, adjusting key properties, and getting it just right. Then, you can copy a highly detailed prompt (or export a skill containing all your animations) that captures your intent and direction with perfect clarity. Paste this into your terminal and your agent instantly implements it everywhere. To me, this is an improvement over the old world, and a better way to work in today's. I'm extremely excited to see the ways in which our ability to rapidly create software will shape how we design software tomorrow. Feedback, ideas, and critiques welcome!

joshpuckett

82,065 views • 6 months ago

I started using Blender through MCP about two weeks ago, and I quickly realized that you can build almost anything with AI. This model was created using Blender, Hunyuan3D, Gemini, and ChatGPT. Here’s how I did it: I opened Gemini, uploaded an image of the Gundam model, and asked it to generate a clean front-view image. I uploaded that front view to ChatGPT and asked it to generate two additional angles: a back view and a 45-degree front-left view. I went to: I signed up with my email and translated the page into English. Then I opened Image to 3D and selected the multi-image option. You’ll see a diagram of a whale from several angles. Upload each reference image in its corresponding position, such as front, 45-degree front-left, and back. I selected the 1.5M-face option. This produces a very high-poly model, but don’t worry, we’ll fix that next. Once the generation is complete, download the model as a GLB file. From the Hunyuan homepage, open 3D Studio using one of the dropdown menus. Select the topology or retopology tool and upload your GLB. I chose the High setting to preserve as much detail as possible. After a few seconds, the model was retopologized. It kept most of its visual detail while using far fewer polygons. The original head and rifle didn’t look very good, so I generated them separately. I returned to ChatGPT and created dedicated reference images for the Gundam’s head and rifle. I generated each part individually in Hunyuan at the 1.5M setting, then ran both through the same retopology process. Next came the textures. Open the texture section, select the multi-image option, and upload the same reference images according to the whale orientation indicators. However, instead of using the original clean textures, I asked ChatGPT to recreate them with wear, rust stains, scratches, and other surface damage. This gave the Gundam a much older and more authentic appearance. Once every part was textured, I imported everything into Blender. You can ask Codex through MCP to remove the original head and rifle, or you can do it manually. Select the main model and press Tab to enter Edit Mode. Press 3 to enable face selection, then press C to activate Circle Select. Paint over the faces belonging to the original helmet or rifle. You can press X to delete those faces or P to separate them into another object. Then position the newly generated, more detailed head and rifle in their place. I demonstrate this process in one of my older videos. And that’s it. You now have a very cool 3D Gundam model! Afterward, I created the cockpit, separated the model into movable sections, and rigged everything for use in my Three.js game. That process deserves its own tutorial, though. If anyone wants to see it, let me know. Or just ask your AI, I guess. They seem to know everything these days. xD

Spectro 🇺🇸

73,529 views • 3 days ago

Why is nobody talking about Polymarket's official API? You open Polymarket Wait for it to load... Click on a market... Wait again... Try to check another one... More waiting... By the time you see the price, it's already stale The opportunity moved while you were clicking through pages Someone else got there first There's a better way // Found the gem hiding in plain sight - library py-clob-client Official from Polymarket. MIT license I spent a week working with multiple markets Checking prices across different positions Monitoring various categories Tracking market movements Then discovered this library Game changer for workflow efficiency // Real example from last week: UI approach: Checking markets one by one through the interface API approach: Monitoring all relevant markets simultaneously with live updates Having comprehensive real-time data makes a meaningful difference Speed and information clarity are valuable advantages // Want to go deeper? Build an arbitrage bot You'll need Rust for execution speed Deploy the server geographically close to Polymarket's infrastructure Every millisecond counts when opportunities last 1-2 seconds. I built mine in Go for monitoring and analysis. Works great for that. But if you're hunting arbitrage at scale against other bots, Rust + low latency setup is the only way. The infrastructure race is real // "But I can't code" With today's AI tools you actually can Cursor, ChatGPT, Claude, Gemini, Kimi, Grok - they write code for you You just describe what you want AI generates it You copy-paste and run Join Polymarket to create: Programming is no longer a barrier Anyone can build now

BuBBliK

44,204 views • 7 months ago

OpenClaw has 186K GitHub stars and 1.5M compromised API keys. I needed a secure alternative. So, I built it with n8n and Claude Opus 4.6. It can already: - Reply to your Telegram messages - Access selected folders from your laptop - Access Gmail, Drive, Notion, Linear, etc. - Install new local tools in a sandbox - Run autonomously for hours - Create multiple subagents - Learn from experience - Wake up regularly But, unlike OpenClaw, it: - Can't access your API keys - Can't modify its environment - Can't access folders you haven't shared - Can't access tools you haven't approved - Must get your confirmation, e.g., when sending emails These aren’t prompt instructions. They’re hard architectural boundaries — Docker isolation, mounted folder permissions, n8n’s tool approval system. Key components: ✅ The VPS on Hostinger hosts n8n and a sandbox container. Agents can also connect to my laptop's sandbox via a Claudeflare tunnel + Desktop Commander MCP. ✅ The Manager agent is the brain. It plans, decides, delegates, and talks to the user. It never touches files. It never runs scripts. It works entirely from executor summaries. ✅ The Executor agents are the hands. Each receives a task (what to do + why it matters), decides how to execute it, and reports back. They can install new tools and execute code only in their dedicated sandboxes. ✅ Data Tables in n8n store both memories and sessions — no external database, no vector store, no infrastructure. Just rows in a table. Turns out, that's enough. Two memory types: - Manager memory: user preferences, facts, corrections, relationship, skills, context - Executor memory: what tools are installed, what’s broken, workarounds ✅ Sessions are short-term state for multi-step tasks. Original request, plan, assumptions, and what happened so far. When the Manager loops with fresh context, the session is all it gets. That's a Ralph Wiggum loop. I've been using it for 5 days. And already can't imagine not having it on my phone. What's next: - Heartbeat via Cron (a scheduled prompt) - Civic Nexus governance + MCPs - Supermemory integration - WhatsApp as an additional surface - Hardening The architecture supports all of it. OpenClaw proved people want personal AI agents. It also proved that 'just trust the prompt' isn't a security model. Docker isolation, mounted folder permissions, tool approval — none of this is new technology. It's just discipline. You can easily do this even with n8n — no coding required. --- Want to try it or read more? More, what I learned, and a setup guide: productcompass[.]pm

Paweł Huryn

53,999 views • 5 months ago

I've been building a music player with Next.js for fun. Here's a quick demo of how it works (it's open source!) • Demo: • Code: If you want to learn more about how it's built, here's more details ↓ I'm using Postgres (with Drizzle) to store information about the songs and playlists. Audio and image files are stored in Vercel Blob (object storage), and the URLs are then referenced in the database. For the UI, I'm using shadcn/ui (so Tailwind CSS and Radix). This made it easy to copy/paste in some nice components, like the dropdown menus. I built the entire first version of the UI in v0 and then iterated from there, feeding it my Drizzle schema as a source in the project and having it scaffold some of the boilerplate for me: I added support for keyboard navigation (using arrow keys) or vim motions (j/k to go up/down, and h/l to go between playlists and tracks). Also, space to toggle the now playing song, and / to focus the search input. The search function has a nice utility to highlight the currently searched text on the page in yellow. Then, I was exploring how to pass metadata from my application to macOS or iOS. Turns out there's an API for that – MediaSession. Web apps can share metadata about what media is playing (title, artist, album artwork) and sync play/pause/seek with system media controls. Works across modern browsers — even integrates with iOS dynamic island and shows up on lock screens: I set up my app like a PWA – it has a manifest.json file, so it can be installed to my iOS home screen or added to my dock on macOS. On iOS, it then uses the full screen height `100dvh` (dynamic viewport) and has padding on the bottom for the safe area with the `env()` CSS function. Finally, I was able to use the Vercel AI SDK in a script to clean up the metadata on audio files I downloaded from YouTube. Bonus: I even was able to dogfood the React Compiler, which helped me fix a performance bug! That's all! It's fun to make personal software:

Lee Robinson

118,242 views • 1 year ago