Staying up to date with the Duke MBB news, season tickets, recruiting, etc

Hey guys, I'm Matt, I did my undergrad at Duke and graduated in 2023.

I felt like since graduating, it's been more difficult every year to keep up to date with what's going on with the program like recruiting news, Scheyer press releases, tickets and regular season games.

Maybe things got busier for me, social media has gotten a lot noisier, or maybe it's just me getting older.

Anyways, I'm pretty excited about the upcoming season and stay updated. I've been working on this project where it's a widget on my computer that scans the internet and sends me any updates about Duke Basketball once a week. I've been using it to:

  • Monitor for when regular season tickets are coming out. I'm trying to buy the Berkeley v Duke game at Berkeley, since I live in the Bay Area now.
  • Any announcements about exhibition games and the upcoming regular season.
  • Monitor any updates about injuries, new recruits coming in, or just what people are talking about on social media about Duke.

Under the hood, it's pretty simple. It pretty much just works by asking ChatGPT once a week to surface any news, except it does it automatically and pops up a notification. I tried doing it on ChatGPT, but they don't do notifications, so that's why I decided to build it myself.

u/matt8p — 13 hours ago
▲ 2 r/foss

I kept forgetting about community PRs on my oss project. Going through the things I tried to fix it.

Hey y'all, I'm Matt, I've been a software engineer for the last 4 years and maintained a couple of open source projects, most recently one full time.

When coding agents blew up, the volume of PRs and issues coming in from the community roughly tripled. It's great but a lot of things slipped by like unreviewed PRs and issues. It was a problem for me because silence push contributors away.

Before that I had the same problem from the other side at a day job. My PRs waiting days for review, not because anyone was busy, but because they forgot and I forgot to bump them.

Things I tried, roughly in order:

GitHub email notifications — notifies you of literally everything. My brain started classifying everything as spam.

Slack / Asana GitHub integrations — messages still get drowned out in the noise. And a task in a list doesn't nudge you. You still have to go into the app

I started building my own thing. A small widget in the corner of the screen where I can say "every morning at 9, go through open PRs on this repo and tell me which ones need a review vs. which are being worked on," and it actually runs that and pings me on the desktop. Turned out the intelligent/conditional part mattered more than the cadence.

I'd love to get y'alls thoughts on what y'all tried if you've had the same problem before.

reddit.com
u/matt8p — 19 hours ago
▲ 1 r/github

Open source maintainers, how do you track GitHub issues + PR reviews?

I maintain two open-source repos both with considerable community sizes, 2k stars and 500 stars. The projects get a lot of issues reported, and people submitting PRs for review.

One thing that I've always wanted to keep on top of as a project maintainer was responding to GitHub issues and reviewing PRs same day. I'm able to keep up most days but it slips a lot. I have email notifications and put stuff on my calendar to keep up.

For other open-source maintainers, what's your guys' method for keeping up with responding to your community?

reddit.com
u/matt8p — 19 hours ago

What kind of notifications do you care about on the day to day?

Hey y'all, I'm building a todo list / notifications app with my twist. I get that todo and notification apps are overdone and unoriginal, but still want to go down the rabbit hole anyways.

I feel like there's still a lot of room for improvement on notifications. I have notifications set up on many things, but find myself ignoring a lot of them for some reason.

What is your profession, and on the day to day, what notifications do you have set up to guide you to doing your work, if any? What apps do you use? Do these notifications work, or do you find yourself mentally blocking them out?

reddit.com
u/matt8p — 1 day ago

what's your favorite place to work on side projects?

I've recently been trying to find new places to work out of. My "side project" became my full time work now, and I was working from home a lot. That got really repetitive, so I wanted to step out more and try out different spots around the city (mine is SF).

Found this cool spot called "The Interval @ Long Now" in Fort Mason, San Francisco.

What's y'alls favorite spot to work out of?

u/matt8p — 7 days ago
▲ 112 r/ClaudeDesign+1 crossposts

Shoutout Claude Design for making building stuff so much fun

Wanted to shout out Claude Design, it's changed the way that I do work. I am a software engineer, design has always been my weakest when it comes to building products.

I think I heard about Claude Design from a showcase on X and gave it a try, and it's SOO good. I like how everything under the hood is HTML. I think Anthropic realized models are really good at writing and interpreting HTML + CSS as a language for design.

It's interesting because other design platforms like Figma have their own bespoke format for how they render designs. HTML + CSS is the most well documented language for "design" so it makes sense why they chose that.

Anyways, I really like how the claude design agent can also access my github repos and pull designs from there, and export it back to Claude Code for implementation.

Claude design was so clutch in building the onboarding flow for a desktop assistant I've been working on!

u/matt8p — 8 days ago

Exploring ways to make a mouse cursor intelligent

I've been exploring different ways I can bring intelligence directly into your mouse cursor. Being able to highlight a piece of text, ask it a question, and the cursor will do web research and rewrite the results directly into the doc. 

I think I nearly achieved that, and that's what I wanted to demonstrate today. A couple of cool things I've been able to do with it: 

  • Highlight a certain recipe and talk to Freestyle about it. Brainstorm different alternative ingredients for a recipe. 
  • Turn interesting news articles and content on X into summaries that I send to friends. 
  • I’m a software engineer by trade, so I was even able to have Freestyle drop me hints and guide me through a Leetcode problem.

 

I just put freestyle out yesterday, so the project is super early. It might be a bit buggy, and the intelligence still feels primitive.  I’ll be working over the next couple of weeks on making it more intelligent. Would love any feedback if you get to try it, let me know what breaks. 

u/matt8p — 14 days ago

Exploring ways to make a mouse cursor more intelligent

The vast majority of people who use ChatGPT to write will copy text into ChatGPT, wait for it to finish, then copy + paste the results back.

I've been exploring different ways I can bring intelligence directly into your mouse cursor. Being able to highlight a piece of text, ask it a question, and the cursor will do web research and rewrite the results directly into the doc. 

I think I nearly achieved that, and that's what I wanted to demonstrate today. A couple of cool things I've been able to do with it: 

  • Highlight a certain recipe and talk to Freestyle about it. Brainstorm different alternative ingredients for a recipe. 
  • Turn interesting news articles and content on X into summaries that I send to friends. 
  • I’m a software engineer by trade, so I was even able to have Freestyle drop me hints and guide me through a Leetcode problem.

 

The project is live right now and available on Mac and Windows. 

freestylevoice.com 

I just put freestyle out yesterday, so the project is super early. It might be a bit buggy, and the intelligence still feels primitive.  I’ll be working over the next couple of weeks on making it more intelligent. Would love any feedback if you get to try it, let me know what breaks. 

u/matt8p — 14 days ago

Fort mason vibe check

I got a new Fujifilm camera (XS20), went out this afternoon to catch some clips of Fort Mason.

Also found a really cool bar / coffee shop in the Fort Mason shops area too!

u/matt8p — 16 days ago
▲ 9 r/SaaS

YC company hosting ‘Hackathon’ to farm Product Hunt upvotes

Been to hackathons hosted by small startups in SF where they don’t really care about the participants, or the actual hacking. Just using it as a way to push their product somewhere, get GitHub stars etc.

u/matt8p — 19 days ago

I spent months working on voice dictation (Wispr Flow). Thinking about what's beyond that.

Hey y'all, I'm Matt. My background is in software engineering, I've been working on voice products on the side for the last couple of months. I started working on it full time, and wanted to share my journey so far, how I am thinking about what to build next.

The two months I've been working on it, I shipped Freestyle, it converts what you say into clean polished text at your cursor. Handles filler words, punctuation, formatting to lists and emails. Getting 80% there took a few days. The last 20% was super tough, handling post-processing edge cases, latency e2e down to 600ms.

I put the product out there, it was able to gain some decent traction. Where I'm at right now is at about 1500 dictations / day. However, I felt like voice dictation is a pretty solved space, tons of players out there, and the improvement ceiling is being hit.

I wanted to explore what's next beyond voice dictation. Felt like the natural next step was solving voice-to-intent, having the machine understand what you want done and then doing it for you. I started working on Freestyle remix this week.

The idea is that it will allow you to do things like highlight a piece of text and ask, "Can you convert this to MLA format?". Remix fulfills that command. I'm thinking of phrasing the product like "Writing assistant at your cursor / keyboard". I attached a mockup of what I envision the product to somewhat look like.

I'd love to get some feedback on the idea:

- Have people here used voice dictation before (like Wispr Flow), and what do you mostly use it to write?

- Has anyone here tried out a clipboard / cursor writing assistant? I've been trying to find products like this but it doesn't seem to be heavily explored. Please let me know if you find a really good product like this out there already.

u/matt8p — 21 days ago

Getting voice dictation to handle medical terms accurately

Hey y’all, I’m Matt. My partner is an allergy nurse and at the end of every shift, she spends a ton of time charting (writing patient notes). I’ve been working on a voice dictation app for her that converts what you say into clean polished text. 

I have a strong background in software engineering and I thought it was going to be really easy to build, especially with coding agents too. The dictation part was easy, but nailing medical terms was really hard to pull off. It had a really hard time getting drug and disease names, and units of measurement working.

After working on it for 2 months, I got dictation to handle medical terms pretty well. It's able to nail medical terms pretty accurately, and I got the latency to be under 600ms. So pasting at your cursor feels near instantaneous.

Here’s the progress timeline that I’ve made in the last two months: 

Week 1-3: Start it off trying out basic speech models (ASR), such as Qwen3 ASR, Whisper family models. It was really good for basic dictation, but really struggled to handle complex medical terms. We also start off trying to run models locally on computers, but a lot of computers that people in the medical field use are not powerful enough to run these local ASR models efficiently. 

Week 3-6: Switched over to ASR models that run on the cloud, and introduced post-processing with models on Groq. Post-processing is what cleans up what you say into polished text. This greatly improved the accuracy from just using ASR models. We also prompted the post-processing model to get context clues on what is said and correct medical terms. 

Week 6 - now: We are working on improving latency, and got transcription to work under 600 ms so it feels pretty instantaneous. This was achieved using Soniox streaming ASR, and GPT OSS running on Groq. Medical term accuracy continues to improve as we add more medical vocabulary into the prompt. Dictionary. 

If you're a software developer interested in this kind of stuff, the project is open source and I’m looking to grow a community to work on it. All of the code and system prompts are there for anyone to learn. Please consider joining our Discord community! 

If you work in healthcare, or are just into voice dictation in general, I'd love to have you try out the project and get your feedback on it. I want to know how well voice dictation can work in a real working environment. 

Link: https://freestylevoice.com/healthcare
Discord: https://discord.gg/Fmgt5yZCDu

u/matt8p — 23 days ago
▲ 4 r/mcp

Interesting pattern in the PostHog MCP

The PostHog MCP has a very interesting pattern I haven't seen before:

The MCP has a single tool, PostHog__exec, that allows whatever agent connected to it to run CLI commands. So it's an MCP server that wraps a CLI executor.

I think design decision is pretty much "We know coding agents are better at calling CLI commands than tool calls, but we still want the OAuth convenience of MCP".

I've been playing around with the PostHog MCP and works quite well.

u/matt8p — 1 month ago
▲ 21 r/LLMDevs+1 crossposts

[Open Source] Building a voice dictation pipeline that rivals Wispr Flow’s performance.

Hi y'all, my name's Matt. I've been working on a open source voice dictation app called Freestyle. It works the same way as Wispr Flow: you hold a hotkey, speak, release, and text is pasted where your cursor is. 

When I first started the project, our focus was on local models. Having the ability to pick and choose local voice models and pair them with an optional post-processing step. The customizability is great for those who know what to choose. Local model support is still there.

But we also wanted to provide an out-of-the-box voice dictation pipeline that just works without having to know what the best configuration is. That's why we came up with Freestyle Transcribe. 

The current stack of Freestyle Transcribe is a combination of Whisper Large Turbo V3 with Qwen3-32B as the post-processing model, hosted on Groq and Cloudflare. The latency hovering at around 600 to 800ms which is comparable to what Wispr Flow has. The reliable accuracy is better than Wispr Flow. We've also made it free and open source, so it doesn't come with Wispr Flow's $12/month price tag. 

Looking to get some feedback on the project. For anyone out there that's voice pilled, would love to get your opinion on how it compares to what you currently use.

https://github.com/freestyle-voice/freestyle

u/matt8p — 1 month ago

What it takes to build a dictation pipeline as good as Wispr Flow (open source)

Hey y'all, I'm Matt. For the past 5 weeks, I've been working on an open source dictation app like Wispr Flow. Wanted to share some learnings so far on building the dictation pipeline.

I started off with supporting local ASR models that run on-device as the main focus, models like Qwen3 ASR, Whisper.cpp. Quickly noticed they were not enough for practical use.

Local models by themselves had a really hard time with context and terminology, especially for developers. Some examples of testing I did on Qwen3 ASR:

What I Said What Qwen3 ASR produced
"Upload a file to S3, which fires EventBridge, which triggers Lambda" "Upload a file to S three, which fires an event bridge, which triggers lambda."
"We're on Postgres 16 with pgvector 0.7" "We're on Postgres sixteen with PG vector zero point seven."

That's when I started to explore strapping on a post-processing layer, which allows us to make contextual adjustments and cleanup to the transcription. Latency and accuracy was always a fighting tradeoff.

After experimenting with different setups for the dictation pipeline, I landed on this pipeline. Super simple:

  1. Hold hotkey, speak, release → audio hits the pipeline, hosted on Cloudflare Workers
  2. Transcribe with Whisper Large v3 Turbo (on Groq), biased toward developer vocabulary
  3. Post-process with Qwen3-32B. Grammar/punctuation + dev-vocab fixes ("my sequel" → MySQL)
  4. Paste at your cursor

So far, I'm happy with the result. It's able to pick up on software dev vocabulary and pretty accurate. The transcription latency end to end is ~600ms which is competitive to Wispr Flow's.

If this project sounds interesting to you, I've released all of my work so far on GitHub. Please consider checking it out and giving it a star! ⭐

https://github.com/freestyle-voice/freestyle

u/matt8p — 2 months ago

Open source voice dictation for devs (like Wispr Flow)

Hey guys, I'm Matt, I'm the maintainer of Freestyle, it's a free open source voice dictation app, alternative to Wispr Flow if you've ever used that.

The inspiration for building Freestyle was that I was voice-pilled and loved using Wispr Flow. To their credit, they've built a great product I was using daily. It's fun speaking to prompt coding agents, as well as do all of my writing like this post.

However, I felt like voice dictation was a commodity, and shouldn't be costing $12 / month, nor understood how Wispr Flow is worth $2B. Voice notation should also be local first. You don't need to send your private thoughts to remote servers.

Here's what I've built so far:

  • Basic voice dictation: Hold a hot key, speak, and text will paste at your cursor.
  • We provide local models like Qwen3, or cloud models with BYOK.
  • Grammar and punctuation cleanup via post-processing. No more "um, oh, but".

If this kind of stuff sounds interesting to you, please consider checking out the project and giving it a star, it would mean a lot! ⭐

https://github.com/freestyle-voice/freestyle

u/matt8p — 2 months ago

Did lime just prohibit riding in the Presidio?

I was able to ride a Lime scooter through the Presidio a couple of days ago. Did they just put out this ban? Couldn't find anything on their website about it.

u/matt8p — 2 months ago
▲ 109 r/LocalLLM+3 crossposts

How I implemented ASR bias for voice transcription models [Open Source]

I've been spending the last couple of weeks building a Wispr Flow clone as an open source project. For context, it is a voice dictation app that lets you type faster, by speaking instead of actually typing.

I spent the first week building the basic STT capabilities. One of the coolest features that Wispr Flow has is ASR biasing. Wispr Flow calls it its dictionary. I was able to figure out how to implement that for my project and wanted to share how it was done.

What is ASR biasing?

ASR biasing is a transcription technique that guides the model with hints on how words are spelled, or what phrases are common. In my example in the video, I gave guidance that I wanted to talk about the “Knicks” and “OG Anunoby”.

When you have biasing set up, the words that you have set up are more likely to show up when you say phrases that sound similar.

How it's implemented in code

Implementing ASR biasing is actually incredibly easy. Each model provider handles it differently, and they call it different things. For example, OpenAI and Groq set a prompt as its bias mechanism, similar to an LLM system prompt. Local models like whisper.cpp and local Mac models from MLX also run the same prompt system.

In other providers like Deepgram and Eleven Labs, they call them key terms and are configured by search parameters.

This is what it looks like to implement in Groq. It's as simple as injecting the dictionary words into the model's “system prompt”.

 const transcription = await groq.audio.transcriptions.create({
    file: fs.createReadStream("YOUR_AUDIO.wav"),
    model: "whisper-large-v3-turbo", 
    prompt: "vocabulary: Knicks, OG Anonuby", // Optional
    response_format: "verbose_json",
    timestamp_granularities: ["word", "segment"], 
    language: "en", 
    temperature: 0.0, 
  });

In Freestyle, we've implemented ASR biasing and call it our “Vocabulary” feature. When you create a vocabulary, it is saved locally within Freestyle. Every time you run inference, your saved vocabulary is freshly injected into models’ system prompt or keyterms.

Freestyle oss project

All of the work that we've done around ASR biasing is open source and available in our GitHub repo. If this project sounds interesting to you, consider giving it a star!

We're also looking to build a community of people interested in working on open source voice dictation.

https://github.com/freestyle-voice/freestyle

u/matt8p — 2 months ago

Thoughts on Apple's Systemwide Dictation?

Hey y'all, I saw that Apple just announced their system wide dictation. Looks like their dictation models are running locally. Does anyone have any thoughts or guesses on how they're achieving this, and the quality of their dictation?

reddit.com
u/matt8p — 2 months ago

Sharing how I built Wispr Flow's floating pill on React / Electron

Hey y'all, for context, my friend Aditya and I have been working on a Wispr Flow alternative called Freestyle. We were both Wispr Flow addicts, but felt like voice dictation is a commodity, and should be free and local first.

Two weeks into the project, wanted to share some learnings and cover how we built the "floating pill" thing:

The pill is its own Electron window

We built Freestyle in Electron, the framework that lets us build desktop apps in React inside a Chromium window. In Wispr Flow and Freestyle, the pill is the little capsule that pops up when you talk, shows a waveform, then disappears.

The trick to rendering the pill is that it's not part of the app. The pill is a separate BrowserWindow that floats. BrowserWindow is part of the Electron API.

pillWindow = new BrowserWindow({
  width: 260,
  height: 90,
  frame: false,
  transparent: true,
  hasShadow: false,
  resizable: false,
  alwaysOnTop: true,
  skipTaskbar: true,
  focusable: false,
  ...(process.platform === "darwin" ? { type: "panel" } : {}),
});

pillWindow.setAlwaysOnTop(true, "screen-saver");
pillWindow.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true });

Making the pill's waveform feel alive

The fun part about building the pill is creating its reactive waveform.

The pill itself is the window that activates your mic. Since it's a Chromium window, it grabs the mic via the getUserMedia() API.

From there, it attaches an AnalyserNode to the mic, which analyzes the audio and hands back snapshots of frequencies and intensity. It's those frequencies that become the bars.

const stream = await navigator.mediaDevices.getUserMedia({
  audio: {
    echoCancellation: false,
    noiseSuppression: false,
    autoGainControl: false,
  },
});

const ctx = new AudioContext();
const source = ctx.createMediaStreamSource(stream);
const analyser = ctx.createAnalyser();
analyser.fftSize = 256;
source.connect(analyser);

Each frame, we take that frequency snapshot, slice it into 14 buckets, one per bar, and average the energy in each to get a target height.

const BARS = 14;
const RISE = 0.55;
const FALL = 0.22;

function smoothBars(current: number[], target: number[]): number[] {
  return current.map((now, i) => {
    const goal = target[i] ?? 0;
    const speed = goal > now ? RISE : FALL;
    return now + (goal - now) * speed;
  });
}

function nextFrame(analyser: AnalyserNode, bars: number[]): number[] {
  const spectrum = new Uint8Array(analyser.frequencyBinCount);
  analyser.getByteFrequencyData(spectrum);

  const binsPerBar = Math.floor(spectrum.length / BARS);
  const target = Array.from({ length: BARS }, (_, i) => {
    let sum = 0;
    for (let j = 0; j < binsPerBar; j++) sum += spectrum[i * binsPerBar + j];
    return sum / binsPerBar / 255;
  });

  return smoothBars(bars, target);
}

That asymmetry in smoothBars gives it the smooth, voice-y feel that settles with a decay. Lastly, these are all rendered via plain SVG lines, and a requestAnimationFrame loop drives the motion. This is far more effective than leaning on React's re-rendering, which would drop frames.

reddit.com
u/matt8p — 2 months ago