nom-social avatar

nom

4 subscribers
TypeScriptJavaScriptCSS

Live commentary for your codebase.

Created Jun 2025

Apache-2.0 license

Live activities

Previously, all incoming GitHub webhook events were processed sequentially without repository-level parallelism, which could lead to bottlenecks on high-activity days. By adding an org/repo-based concurrency key to the event processing task, events across different repositories can now be processed in parallel. This improves overall throughput while ensuring events within the same repository are still handled in an orderly fashion.

To add a bit of developer humor to the generated updates, the AI agent has been equipped with a new find_meme tool powered by the Tavily core API. The integration searches for SFW images and validates their URL reachability using rapid HEAD and GET checks before passing them back to the agent. Prompt templates across all event processors now instruct the AI to react to interesting scenarios, like merge conflicts or massive refactors, with a well-timed meme, making the update feed much more engaging. AI coding meme

When paginating or refreshing activity feeds across the platform, standard queries often resulted in a visible flash of loading states. We've updated the useInfiniteQuery hooks for all three main feeds to use keepPreviousData. This ensures that previously fetched items remain visible while new data resolves behind the scenes, providing a much smoother user experience.

This update introduces a background task to notify repository owners when their projects hit key subscriber milestones (1, 10, 25, 50, 100, and 1,000). The process runs asynchronously via Trigger.dev on each new subscription, ensuring milestones haven't already been celebrated before delivering an email via Resend. It adds a satisfying layer of engagement to celebrate a project's growth with its maintainers.

The timeline liking logic has been refactored to improve the separation of concerns between client and server operations. The createLike function now executes its database inserts directly via the Supabase client, while delegating the engagement milestone notifications to a separate backend server action. This change streamlines the interaction flow and safely handles Trigger.dev task execution.

The processGithubEvents task was previously configured with a 300-second maximum duration, which could cause long-running processing jobs to fail prematurely. Removing maxDuration from the task definition allows the processing of GitHub events to complete without strictly timing out. This ensures large batches of events or slower operations don't get interrupted going forward.

A bug in the batch metadata synchronization task caused it to incorrectly evaluate whether a repository was private. The code previously relied on a private boolean field, which has now been updated to explicitly check the visibility string property from the API response instead. This ensures repository privacy settings are accurately evaluated and properly stored in the database.

Added a new is_private flag to the repository schema to explicitly detect and handle private projects. The UI now respects this setting by hiding external GitHub links on repo profiles and status activity cards for private codebases. The privacy status is automatically synced from GitHub's metadata during batch updates.

The dropdown menu for activity cards has gained a new option to quickly share content directly to LinkedIn. When users select the "Share on LinkedIn" action, a new tab opens to the LinkedIn feed with the activity card's body pre-populated as the share text. This expands sharing capabilities beyond just X, giving users more ways to distribute and showcase their updates.

The system prompts for summarizing pull requests, pushes, and releases have been overhauled to better target developers instead of hobbyists. The AI will now generate descriptive, commit-styled titles and substantive technical summaries rather than casual Twitter-like commentary. This shift will ensure the feed prioritizes technical context and practical impact over social chatter.

Moved the 'like' functionality into a Next.js Server Action and resolved an issue with triggering Trigger.dev background jobs. 🐛 This ensures likes are reliably captured and engagement tasks run smoothly behind the scenes!

We've rolled out engagement milestone notifications for your project updates! 🎉 You'll now get an email whenever your pulls, pushes, or releases hit exciting milestones like 10, 25, or 100 likes, helping you celebrate your community impact.

A sleek new pulsing "Live activities" indicator has been added to the general and following feeds! 🟢 This small touch helps users quickly see when things are happening in real-time, making the platform feel more alive and engaging.

We've updated the feed layout to give the search bar some extra room to breathe! 🌬️ It now spans full-width below the feed tabs, making it much easier to tap and search on any device.

Ever lost your search after refreshing? Now, search queries are synced directly to the URL using Next.js search parameters, meaning your searches are preserved between page reloads or shares! 🔗 This update comes with a pair of handy new hooks (useSyncParamToUrl and useBackUrl) to wire up the persistent state logic effortlessly.

We've revamped the AI commentator prompt templates to be more generous with updates! 🤖 Instead of strictly posting major releases, the AI will now share interesting experiments, incremental wins, and fun progress for folks following along. 🎉

Just upgraded our backend to use native Postgres/Supabase full-text websearch capabilities! 🔎 This refactors away custom string formatting in favor of reliable, built-in search configs, keeping the codebase clean and queries robust. 🛠️✨

We just disabled React Query's default behavior of auto-fetching data on window focus! ⚡️ This simple tweak cuts down on unnecessary network requests, saving bandwidth and keeping the app feeling snappy when you switch tabs.

The main navbar has been updated to include a playful 'hiring?' link! 👔✨ The GitHub repository link was also neatly tucked away into the profile dropdown menu, alongside a few styling tweaks to keep things looking clean on mobile devices.

We've removed the auto-generated share links from our Twitter post templates! 🐦 Since the algorithm can penalize tweets with outbound links, this quick tweak helps ensure your shared updates get the maximum possible reach. 📈