• Best Products
  • Launches
    Launch archiveMost-loved launches by the community
    Launch GuideChecklists and pro tips for launching
  • News
    NewsletterThe best of Product Hunt, every day
    StoriesTech news, interviews, and tips from makers
    ChangelogNew Product Hunt features and releases
  • Forums
    ForumsAsk questions, find support, and connect
    Kitty Points LeaderboardThe highest scoring community members
    StreaksThe most active community members
    EventsMeet others online and in-person
  • Advertise
Subscribe
HomeRecent commentsSearch all threadsStart new thread

Topic Forums

Forum General categoryp/generalForum Vibecoding categoryp/vibecodingForum AMA categoryp/amaForum Introduce yourself categoryp/introduce-yourselfForum Self-Promotion categoryp/self-promotion

Product Forums

Scrimbap/scrimbaSlimSnapp/slimsnapPusharyp/pusharyRankfenderp/rankfenderBrowser Notesp/browser-notesLinkedInp/linkedinPremastp/premast-templatesPopTask - AI Powered Menu Bar To-do Listp/poptaskfindloc.ai p/findloc-ai-business-location-researchForgp/forgExploreYC p/yc-company-explorerNudgeFilep/nudgefileAI Context Flowp/ai-context-flowProduct Huntp/producthuntVercelp/vercelown.pagep/own-pageFyprop/fyproMurrorp/murrorCiaro Prop/ciaro-proBasedash: AI data analystp/basedash
recent
Self-Promotion

p/self-promotion

by

•1mo ago
I built a Vite plugin that saves CSS changes directly to your source files
... filePath, root.toString()); // formatting preserved For SCSS, postcss-scss is used it understands SCSS syntax including $variables, nesting, and mixins that standard PostCSS doesn't parse. HMR: from setTimeout to confirmation The first version looked like this: after sending the patch over WebSocket, wait 400ms, then re-read the CSSOM. send({ fileUrl, selector, prop, value }); setTimeout(() => { editor.refresh(); }, 400); // fixed wait The problem: after writing the file, Vite goes through several steps the file watcher detects the change, Vite recompiles ... ... slow machines 400ms wasn't enough. On fast ones wasted time. The fix: the server sends a confirmation only after writing the file. The client waits for this signal, not a timer. // server after writeFileSync: socket.send(JSON.stringify({ type: "patched

0

Subscribe
Top Product Categories

Engineering & Development

  • Vibe Coding Tools
  • AI Coding Agents
  • AI Code Editors

LLMs

  • AI Chatbots
  • AI Infrastructure Tools
  • Prompt Engineering Tools

Productivity

  • AI notetakers
  • Note and writing apps
  • Team collaboration software
  • Search
  • AI Workflow Automation

Marketing & Sales

  • Lead generation software
  • Marketing automation platforms

Design & Creative

  • Video editing
  • Design resources
  • Graphic design tools
  • AI Generative Media

Social & Community

  • Social Networking
  • Professional networking platforms
  • Community management

Finance

  • Accounting software
  • Fundraising resources
  • Investing

AI Agents

  • AI Voice Agents
See All Categories >>

Trending categories

  • Vibe Coding Tools
  • AI Dictation Apps
  • AI notetakers
  • Code Review Tools
  • No-code Platforms
  • Figma Plugins
  • Static site generators

Top reviewed

  • Lovable
  • n8n
  • Attio
  • PostHog
  • Vapi
  • Granola
  • Raycast
  • Supabase

Trending products

  • Lovable
  • Screen Studio
  • bolt.new
  • Wispr Flow
  • Framer
  • Replit
  • Vapi
  • Granola

Top forum threads

  • Cursor or Claude Code?
  • POLL: Domain or product first?
  • YC deadline in <2 weeks; Who's applying?
  • We Got into YC, Got Kicked Out, and Fought Our Way Back
  • How Wispr Flow found PMF through pivot
  • Best Vibe Coding tool so far?
  • Landing page roast - 48 hours only
  • Fix your tagline with the PH CEO
© 2026 Product Hunt
NewsletterAppsAboutFAQTermsPrivacy & CookiesPrivacy ChoicesAdvertisellms.txtContact us: hello@producthunt.com