Welcome, Captain
Manage your team, view your schedule, and submit game scores.
1. Logging In
Open captain.html, tap your team, then sign in with your captain email + password. Each captain has their own login — only you (and the commissioner) can edit your team's data.
- First time signing in? Tap your team and use the email I have on file for you. If you haven't set a password yet, hit "Forgot password?" and the system will email you a reset link.
- Forgot your password? Same flow — tap "Forgot password?" on the sign-in card and check your inbox.
- Stays signed in — once you log in on a device, you'll stay signed in until you tap Sign Out. Safe to install as a PWA on your home screen.
This site is built as a PWA (Progressive Web App), so it works like a real app on your phone — installable, offline-friendly, auto-updating when I push changes. Use it right in your phone's browser and you'll always have the latest version.
2. Managing Your Roster
Your roster lives in the Roster tab. Everything you add here appears on your team page on the main site.
- Add a player — click "+ Add Player" and enter name, jersey number, position, email, phone. Email and phone are used for text/email notifications if the player signs up for them.
- Edit a player — click ✏️ on any row. Useful for updating phone numbers or changing a jersey number mid-season.
- Remove a player — click ✕. This only removes them from the current season's roster, not their historical stats.
If a player on another team joined yours mid-season, add them here and I'll clean up the transfer on my end.
3. Schedule & Google Calendar
The Schedule tab shows every game on your schedule. Past games are locked; future games have an ✏️ Edit button.
- Edit a game — change the date, time, or field. Hit Save and it's updated immediately.
- Google Calendar sync — on the main site, your team page has a "Subscribe to Calendar" link. Each player clicks it once on their own phone to subscribe (the link doesn't subscribe the whole team at once — each device has to do it individually). After that, any time you or I edit a game here, the change pushes to that person's phone automatically. Share the team page link with your players so everyone subscribes.
- Rainouts & field changes — just update the game details here and everyone subscribed gets the new info.
4. Submitting a Score — 4 Ways
After a game, go to Submit Score. You have four options — pick whichever fits how you tracked the game:
- ⚡ Score Live (recommended) — open the live scorer on your phone during the game and track pitch-by-pitch. When you hit Final, everything submits automatically. No extra work after the game.
- 📄 Upload (PDF or photo) — if you tracked with GameChanger, export the game as PDF and drop it in. Or just snap a photo of your paper scoresheet — the site parses both. No re-typing stats.
- 📝 Score Only — fastest option. Just enter the final away/home runs, hit submit, done. No stats. Use this when nobody tracked the game and you only know the final.
- 📊 Box Score — full manual entry. AB / R / H / 2B / 3B / HR / RBI / BB / K for each player, plus pitcher lines. Takes ~5 minutes if you've got a paper scoresheet in front of you.
You only need to do one of these. Just make sure somebody on your team submits something after each game.
5. Building Your Lineup
When submitting stats, you'll build your lineup by tapping players in batting order:
- The first player you tap is your leadoff hitter, second tap = 2-hole, and so on.
- Players not in the lineup (didn't play) — just leave them un-tapped and they'll be marked DNP.
- If you tap in the wrong order, you can always clear and restart.
- Subs who weren't on your official roster? Use "+ Add Batter" during entry to drop them in as a one-game guest.
6. Stats Discrepancies
Both captains submit their version of every game. Here's how conflicts get resolved:
- Scores must match — if your final score differs from the other captain's, the game flags "⚠ Stats differ" and the commissioner settles it.
- Each team owns its own batting stats — your stats for your own players are final. If Team A called a ball a hit and Team B called it an error, both entries stand for their own team. We don't force agreement on every play.
- Click "⚠ Stats differ" on any game card to see exactly where the two submissions don't match.
- Once the commissioner resolves any score discrepancy, it changes to ✓ Stats resolved.
7. Player Attendance (Game Availability)
Players tell you which games they can make through the Player Portal on the main site. Here's the flow:
- Player goes to their Profile — from the hamburger menu on the main site, or directly at
https://dvsl.vercel.app/profile.html. Share that full link in your team chat so players can bookmark it. - Picks their team and enters the team password (same password used across all players on the team).
- Selects their name, then taps ✓ Available / ✗ Out next to each game. They can update anytime.
On your Attendance tab here you have three views:
- My Availability — if you also want to mark yourself as a player, pick your own name from the dropdown.
- Team Summary — see how many players are in/out for each upcoming game. Gives you a count at a glance so you know if you need to recruit subs.
- Captain Edit — mark attendance on behalf of a player who isn't phone-savvy or forgot. Same effect as if the player did it themselves.
Tip: Share the Player Portal link + team password in your team chat so everyone knows where to go.
8. Tracking Payments
The Payments tab shows each player on your roster and whether they've paid league fees for the season.
- Mark players paid/unpaid as checks come in.
- The commissioner can see this in the admin panel — no need to text or email totals.
- Totals paid / outstanding are at the top.
9. Team Chat New
The Team Chat tab is a group conversation with everyone on your roster. Any player who signs in through the Player Portal on their phone can read and post here. Great for field changes, sub requests, or "who's bringing the cooler."
- Send a message — type in the box, hit Send. Players with push notifications turned on get pinged instantly.
- Delete a message — tap the red × on any message bubble. As captain you can delete anyone's message.
- Reset chat — the red "Reset chat" button in the header wipes every message for your team. Double-confirms first. Useful between seasons.
Tip: Pin the Player Portal link in your chat so new players know where to sign in.
10. Captains Chat New
The Captains Chat tab is a private group chat between every team captain and the commissioner. Players can't see it. Sender labels show team abbreviations (DN, TBIR, etc) so you always know who's talking.
- Send — type and hit Send. Every other captain with notifications on gets a ping.
- Delete — tap the × on your own messages to delete them. You can't delete other captains' messages.
You can also reach captains outside the app if needed:
11. Push Notifications New
Push notifications let the site ping you instantly when something happens — no need to check the app.
- Turn them on — on the main site, open the hamburger menu → Notifications. Tap "Enable notifications" and accept the browser prompt.
- Pick categories — Team Chat, Captains Chat, Live game scores, Schedule changes, Pregame reminders (1 hour before your games), Photo uploads, and Commissioner announcements. Toggle what you want.
- iPhone only works if installed to home screen — Safari doesn't allow push unless the PWA is added to your home screen. Android works either way.
If notifications ever stop coming through, re-open Notifications and tap "Enable" again — sometimes iOS quietly drops the subscription.
Still Stuck? Contact Adam
Site breaks, feature requests, "how do I...?" — I'm usually quick on my phone and can push fixes within the hour.
Adam Miller (Site builder)
Email: adam.miller.22@gmail.com
If something feels off or you have an idea to make the site better, just tell me. That's how we get it right.