<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: John Sitherstone</title>
    <description>The latest articles on DEV Community by John Sitherstone (@jspickle).</description>
    <link>https://dev.to/jspickle</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4046499%2F823c890b-824d-4ce6-acf0-cd08658d29d0.png</url>
      <title>DEV Community: John Sitherstone</title>
      <link>https://dev.to/jspickle</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jspickle"/>
    <language>en</language>
    <item>
      <title>I Built a Pickleball API. Here Are 7 Things You Could Build With It 🏓</title>
      <dc:creator>John Sitherstone</dc:creator>
      <pubDate>Sun, 26 Jul 2026 09:01:38 +0000</pubDate>
      <link>https://dev.to/jspickle/i-built-a-pickleball-api-here-are-7-things-you-could-build-with-it-2d06</link>
      <guid>https://dev.to/jspickle/i-built-a-pickleball-api-here-are-7-things-you-could-build-with-it-2d06</guid>
      <description>&lt;p&gt;I’ve been building pickleball-api.com, an API for developers who want to build with professional pickleball data.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because I wanted to build things with pickleball data myself — and discovered that getting clean, structured, application-ready data was harder than it should be.&lt;/p&gt;

&lt;p&gt;There’s plenty of pickleball information on the web. But there’s a big difference between information you can look at and data you can build software with.&lt;/p&gt;

&lt;p&gt;So I started building the API I wanted to exist.&lt;/p&gt;

&lt;p&gt;And while working on it, I started thinking about a more interesting question:&lt;/p&gt;

&lt;p&gt;What could developers actually build if pickleball data was easy to access?&lt;/p&gt;

&lt;p&gt;Here are seven ideas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) A live scores app&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The obvious one.&lt;/p&gt;

&lt;p&gt;Instead of building and maintaining the whole data collection layer yourself, you could focus on the actual product: a web or mobile interface showing matches, scores and tournament progress.&lt;/p&gt;

&lt;p&gt;The interesting engineering problems then become things like caching, polling, state updates and designing a UI that makes a tournament easy to follow.&lt;/p&gt;

&lt;p&gt;You could keep it simple with a live scoreboard, or build towards a full pickleball equivalent of the sports apps people already use for football, tennis or F1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) A pickleball stats dashboard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you have structured match and player data, you can start asking questions.&lt;/p&gt;

&lt;p&gt;Which players are in the best form?&lt;/p&gt;

&lt;p&gt;How do results change over time?&lt;/p&gt;

&lt;p&gt;Which matchups produce surprising results?&lt;/p&gt;

&lt;p&gt;You could build a dashboard using React, Vue, Svelte or whatever else you fancy, add a charting library, and turn the API into an interactive way of exploring the professional game.&lt;/p&gt;

&lt;p&gt;This is probably one of the projects I’d recommend if you’re learning frontend development: real data makes a dashboard much more interesting than another demo populated with Lorem ipsum.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Player comparison tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pick two players and compare them.&lt;/p&gt;

&lt;p&gt;It’s a simple concept, but there are lots of directions you could take it.&lt;/p&gt;

&lt;p&gt;Career results. Recent form. Head-to-head records. Tournament performance. Rankings.&lt;/p&gt;

&lt;p&gt;You could even generate shareable comparison pages:&lt;/p&gt;

&lt;p&gt;Player A vs Player B: who has the better record?&lt;/p&gt;

&lt;p&gt;That starts to become useful not just as a coding project, but as something fans might actually use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) A fantasy pickleball game&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where things get more ambitious.&lt;/p&gt;

&lt;p&gt;If you have players, tournaments and results as structured data, you have the foundations for fantasy pickleball.&lt;/p&gt;

&lt;p&gt;Let users choose a roster, award points based on real-world performance and run leagues between friends.&lt;/p&gt;

&lt;p&gt;Suddenly the interesting problem isn’t accessing the sports data. It’s designing scoring systems, authentication, leaderboards, scheduled jobs and all the other infrastructure around the game.&lt;/p&gt;

&lt;p&gt;Someone please build this.&lt;/p&gt;

&lt;p&gt;I’d play it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5) An AI pickleball assistant&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;LLMs are much more useful when they have access to relevant structured data.&lt;/p&gt;

&lt;p&gt;Instead of asking a model:&lt;/p&gt;

&lt;p&gt;Who is playing well at the moment?&lt;/p&gt;

&lt;p&gt;and hoping its training data happens to know, you could let an AI application query current pickleball data and use the model to interpret it.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Show me Anna Bright’s recent results.&lt;/p&gt;

&lt;p&gt;Compare these two players.&lt;/p&gt;

&lt;p&gt;Summarise what happened in this tournament.&lt;/p&gt;

&lt;p&gt;The API provides the facts; the LLM provides the interface and explanation.&lt;/p&gt;

&lt;p&gt;That combination — structured data + natural language — is one of the areas I’m most interested in experimenting with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6) Tournament notifications&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not every project needs a giant frontend.&lt;/p&gt;

&lt;p&gt;You could build a small service that watches for changes and sends notifications when something interesting happens.&lt;/p&gt;

&lt;p&gt;A favourite player starts a match.&lt;/p&gt;

&lt;p&gt;A result comes in.&lt;/p&gt;

&lt;p&gt;A tournament reaches a particular round.&lt;/p&gt;

&lt;p&gt;That could mean push notifications, email, Discord, Slack, Telegram — whatever you want.&lt;/p&gt;

&lt;p&gt;It’s also a nice project for experimenting with scheduled jobs, event-driven architecture and storing user preferences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7) Build something I haven’t thought of&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the reason I wanted to build an API rather than just another pickleball website.&lt;/p&gt;

&lt;p&gt;An API doesn’t decide what the final product should be.&lt;/p&gt;

&lt;p&gt;Developers do.&lt;/p&gt;

&lt;p&gt;Maybe it’s a data visualisation.&lt;/p&gt;

&lt;p&gt;Maybe it’s a prediction model.&lt;/p&gt;

&lt;p&gt;Maybe it’s a Discord bot that posts tournament results.&lt;/p&gt;

&lt;p&gt;Maybe it’s a completely unnecessary Raspberry Pi scoreboard sitting on your desk.&lt;/p&gt;

&lt;p&gt;Those are often the most interesting projects.&lt;/p&gt;

&lt;p&gt;Why I’m building this in public&lt;/p&gt;

&lt;p&gt;Pickleball API is still something I’m actively building.&lt;/p&gt;

&lt;p&gt;That means there are technical decisions to make, data problems to solve, infrastructure to improve and almost certainly things I’ll discover I’ve built badly.&lt;/p&gt;

&lt;p&gt;So rather than only writing about it once everything is polished, I’m going to document some of that process here.&lt;/p&gt;

&lt;p&gt;I’m planning to write about the architecture behind the API, collecting and normalising sports data, infrastructure, API design, things that break, and what I learn trying to turn a side project into a useful developer product.&lt;/p&gt;

&lt;p&gt;And if you build something with the API, I’d genuinely like to see it.&lt;/p&gt;

&lt;p&gt;Especially the Raspberry Pi scoreboard.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;pickleball-api.com — professional pickleball data for developers.&lt;/p&gt;

&lt;h1&gt;
  
  
  api #webdev #javascript #buildinpublic
&lt;/h1&gt;

</description>
      <category>pickleball</category>
      <category>api</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
