Don't let your deploys go unnoticed.

Every deployment is a win. Dplyd gives developers a simple public log of what shipped, when it shipped, and why it mattered. Share your wins, build a streak, and celebrate with the community.

Free forever No credit card API access included
Team of developers celebrating a successful deployment

Here's how it works.

Step 1

Deploy your code

Push to production using your favorite tools. Add one curl to your CI/CD — that's it.

Step 2

Share the moment

Your deployment appears in the live feed for the world to see. Add context about what you shipped.

Step 3

Celebrate together

Get reactions from fellow developers. Build your streak and show off with embeddable badges.

Polaroid photos of deployment moments scattered on a desk

Every deployment tells a story.

A midnight bug fix. A major feature launch. A complete rewrite that was totally worth it. Your deployments are more than git commits — they're milestones worth remembering.

Public deploy log

A permanent record of everything you've shipped, visible on your profile.

Embeddable badges

Add a live deploy badge to your GitHub README or portfolio. Updates automatically.

Shipping streaks

Track your consistency. How many days in a row can you ship?

deploy.sh
# After your deploy succeeds...
curl -X POST https://dplyd.com/api \
  -H "Authorization: Bearer $DPLYD_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message": "Shipped v2.0!"}'

View full API docs →

One line in your CI/CD.

Add a single curl command to your deployment script. That's it. Works with GitHub Actions, GitLab CI, Vercel, Netlify, or any pipeline.

  • No SDK required — just HTTP
  • Supports any language or platform
  • Real-time broadcast to followers

Your deploys deserve an audience.

Join developers who celebrate their deployments and build in public. Free forever. No credit card required.

Create your free account

Live Feed

Real-time deployments from the community

Live
Peter Theill
Peter Theill 
deployed a documentation update about 7 hours ago
about 7 hours ago
🔥 Remove .windsurfrules; AGENTS.md is the agent instructions file
📝 Replace Copilot instructions with AGENTS.md for all coding agents
Peter Theill
Peter Theill 
deployed a documentation update about 7 hours ago
about 7 hours ago
🔥 Remove .windsurfrules; AGENTS.md is the agent instructions file
📝 Replace Copilot instructions with AGENTS.md for all coding agents
Peter Theill
Peter Theill 
deployed a feature about 7 hours ago
Peter Theill
Peter Theill 
deployed a documentation update about 7 hours ago
about 7 hours ago
📝 Replace Copilot instructions with AGENTS.md
🔥 Remove .windsurfrules
Peter Theill
Peter Theill 
deployed a security update about 7 hours ago
about 7 hours ago
🔒️ Blocks hold on the website too; reports only reach what the reporter can see

  • The web comment form and "ask for this item" now honour blocks, and the


rule lives in the model (Donation#open_to?, a Comment validation), so any
future path is covered as well.

  • The web comment controller hides drafts like the donation page does.

  • Reports of a draft listing, or of a comment on one, 404 for anyone but


the owner, so they can't be used to find out that a draft exists.
Peter Theill
Peter Theill 
deployed a documentation update about 7 hours ago
about 7 hours ago
:shield: Report, block, filter and terms for user content; new privacy policy and terms; OpenStreetMap tiles
What App Review guideline 1.2 asks of an app with user content:

  • Reports of listings, comments and people (POST /api/reports), emailed to


support straight away.

  • Blocks (/api/blocks): a blocked person's listings, comments and activity


are hidden, their requests are withdrawn, and they can no longer ask for
or comment on the blocker's things.

  • A whole-word filter (config/content_filter.yml) on listing titles,


descriptions and comments, in all seven languages.

  • App users must accept the terms (POST /api/me/accept_terms) before they


post, comment or ask for things.
The privacy policy now names every service that handles data (Hetzner,
Resend, OpenAI for photo suggestions, the sign-in providers), how long data
is kept and how to delete an account; the terms state zero tolerance for
objectionable content and how reports are handled. Both are now in all
seven languages instead of English only.
Maps use OpenStreetMap's tiles, with the attribution they require, instead
of Carto.
Peter Theill
Peter Theill 
deployed a performance improvement about 10 hours ago
Peter Theill
Peter Theill 
deployed a configuration change about 10 hours ago
Peter Theill
Peter Theill 
deployed a feature about 10 hours ago
about 10 hours ago
🌐 Answer the API in the asker's language, photo suggestions too
The API skipped localized routes and so always spoke the default language:
errors, activity messages and notification text reached a Danish iPhone in
English. It now follows Accept-Language. Photo suggestions (title and
description) are written in the request's language as well, on the web
form too.
🔒️ Scope API tokens, use an https sign in callback, never link Apple sign in by email

  • ApiTokens get a scope: mcp tokens (made on the settings page) only work on


/mcp, and the iPhone app's tokens only on /api.

  • The website hand-off redirects to https://<host>/app/callback, which iOS


only gives to the app named in the new apple-app-site-association, instead
of a custom URL scheme any app could claim.

  • Sign in with Apple no longer signs in to an existing account with the same


email, since emails here are not verified.
✨ JSON API for the new iPhone app
Bearer token auth on /api with the existing ApiTokens, Sign in with Apple
(POST /api/session/apple), and a website hand-off at /app/authorize so every
existing way of signing in works in the app without it handling passwords.
Adds posting with a photo, editing and deleting, requesting, approving and
rejecting, regions, charities filtered by currency, notifications, and the
account (including deleting it, which App Review requires).
Peter Theill
Peter Theill 
deployed a bug fix about 11 hours ago
about 11 hours ago
🐛 Return real image URLs from the JSON API and stop leaking internal fields
The API serialised donations with as_json, so image_url came back as the
Active Storage attachment (with the whole record nested inside) instead of
a URL, and every column was exposed - requesters, unsubscribers, transfer,
transaction_id, and a comment's payment details.
Responses are now built field by field, with image_url, thumbnail_url,
charity logo_url and user avatar_url as URLs. Drafts 404 through the API
for anyone but their owner, matching the web page.
✨ Double down on SEO and AEO
Structured data on every public page (Organization sitewide, Product,
NGO, Place, ProfilePage, CollectionPage, Article, BreadcrumbList),
robots directives with noindex on personal and search-result pages,
a sitewide RSS feed, image entries in the sitemap, and llms.txt /
llms-full.txt rendered from the database instead of static files.
Translate the SEO category landing pages and giving guides into
Swedish, Norwegian, German, French and Spanish, and move the guides'
hardcoded badges and calls to action into locale keys.