Every build, in the order it shipped — what was added, what broke, and what was fixed.
Build 23
Watermark now names the site, with a DMCA note to match
AddedWatermarked certificate previews now also stamp wocerts.link alongside the viewer's name/label and timestamp, so a copy can be identified as coming from Wall of Certificates even after it's been screenshotted or reposted elsewhere.
AddedAdded a section to the DMCA page explaining the watermark's domain stamp and how to report a watermarked certificate found posted elsewhere without permission.
AddedAdded a short explanation next to the "Allow downloads" toggle on the certificate edit page, about what turning it off actually does.
Build 22
Watermark shows when a link was created, and avatars/thumbnails never go stale
BugThe watermark's timestamp showed whenever a viewer happened to open the link, not when the owner actually created it — so a friend viewing late at night could see a time on "the next day."
FixedThe watermark now shows the moment the share link was created, converted into whichever timezone the person looking at it is actually in.
BugAfter changing your profile photo, or after a certificate's preview finished regenerating, people who'd already loaded the page could keep seeing the old photo or preview for up to an hour.
FixedProfile photos and certificate previews now always reflect the latest version, while still loading instantly when nothing's actually changed.
Build 21
Responsive pass across the whole site
FixedThe upload and edit forms' Issuer/Year fields and Visibility picker no longer look cramped on a phone — they stack into a single column below tablet width.
AddedThe dashboard header shows shorter button labels on a phone ("Upload" instead of "Upload certificate", etc.) so it doesn't wrap across several lines.
FixedTightened side padding on narrow screens across every page for a bit more breathing room.
FixedA handful of header rows (homepage, certificate view's related sections, changelog, status) could have overflowed on a very narrow phone — they now wrap properly instead.
Build 20
12-hour timestamps, clearer link errors, and a real admin role
FixedThe watermark timestamp now shows as 08:25 PM instead of 20:25.
AddedOpening a share link that's been revoked or has expired now says so plainly, instead of a generic "not found."
AddedAn invalid certificate link now says "that certificate link is invalid" instead of a generic wall-not-found message.
AddedThe admin report queue is no longer controlled by a hidden password in the server's configuration. The first account ever registered on this app automatically becomes the admin, and only that account gets a special "you're the admin" verification email.
FixedSigning in as any other account and trying to visit the admin queue now shows a proper "not for you" page instead of nothing happening.
Build 19
Watermark now shows your label and your timezone
BugThe watermark stamped on a shared certificate always showed the reason (Public/Friends & Family/Other), ignoring any custom label (e.g. "For LinkedIn") you'd set on that link.
FixedThe watermark now shows your label when you set one, falling back to the reason only when there isn't one — matching the share list.
BugThe watermark's timestamp showed as 2026-07-29 15:25 UTC — year-first, and always UTC no matter who was looking at it.
FixedThe timestamp now reads day-month-year (29-07-2026), and shows in whoever's actually viewing the link's own local time and timezone — someone in Pakistan sees Pakistan time, someone in New York sees New York time, all from the same underlying moment stored in UTC.
Build 18
wocerts.link gets its own site
Addedwocerts.link now shows a real homepage explaining what it is and why it exists, instead of the same homepage as the main app.
AddedAdded a "Verify a link" tool — paste any wocerts.link address to check if it's active, revoked, or expired, without revealing which certificate it points to.
AddedAdded a live stats page for wocerts.link: total links created, active vs. revoked vs. expired, total views, and a breakdown of active links by the certificate's visibility (public/unlisted/private).
AddedAdded dedicated Privacy, Terms, and DMCA pages for the wocerts.link domain specifically, separate from the main app's.
AddedShare links now count views, shown both on the new stats page and available for a future per-link view count.
Build 17
Share link display fixes
BugA custom label on a share link (e.g. "For LinkedIn") wasn't showing up in the share list — only the reason (Public/Friends & Family/Other) was.
FixedA share link's label, if you set one, now shows as the main text, with the reason next to it in parentheses.
BugDates on share links showed as 2026-07-29 (year-month-day) instead of a day-first format.
FixedDates now show as day-month-year, e.g. 29-07-2026.
BugIf the app's domain (or the sharing domain) was ever entered with a trailing slash, links in emails and share pages would show a double slash.
FixedDomain values are now cleaned up automatically, so a trailing slash in configuration can no longer produce a double slash in any link.
Build 16
Sharing a certificate found a missing Report button, and a branding cleanup
BugOpening a shared certificate link (wocerts.link/...) had no way to report it — the Report button only existed on the direct certificate page, not the one an actual recipient of a share link sees.
FixedAdded a Report link to the shared-certificate view, so anyone receiving a share link can flag it too.
FixedThe site's own name is now consistently "Wall of Certificates" everywhere it refers to itself — page titles, legal pages, emails, and every "back to home" link. "WoCerts" is reserved for the short link domain (wocerts.link) only.
AddedContact address across the Contact, DMCA, Privacy, Terms, and Content Policy pages is now contact@wocerts.link.
BugThe signup page's "wocerts.link/username" preview was a hardcoded string that wouldn't have followed a real domain change.
FixedSignup page now reads the sharing domain from configuration instead of a hardcoded string.
Build 15
Legal pages, settings, reporting, and domain roles
AddedAdded Privacy Policy, Terms & Conditions, DMCA, and Contact Us pages, linked from the homepage footer.
Addedwallofcertificates.com (and the vercel.app staging domain) is now the main app; wocerts.link is used only for share links, so the two never mix.
AddedAdded a Settings page — change your display name, username, bio, and profile photo; pick a theme and layout; delete your account.
AddedChanging your username now frees the old one for 90 days before anyone (including you) can take it again, so it can't be reused to impersonate you.
AddedAdded a Report button on every certificate page, so a visitor can flag one they think shouldn't be there.
AddedA certificate is now automatically held from public view if it collects 3+ reports within a day, pending review — never deleted outright.
AddedAdded a private report queue for the site operator to review flagged certificates and restore or confirm the hold.
Build 14
Short, customizable share links
BugShare links were long, random addresses under /api/shares/... instead of something short enough to actually send to someone.
FixedShare links are now short addresses like wocerts.link/my-certification, shown as a proper page instead of a bare image.
AddedOwners can now choose their own link name instead of a random one, or leave it blank for a short random one.
AddedOwners can now set a share link to expire after a day, a week, a month, or never.
AddedAdded a navigation bar with Sign in / Sign up to the top of the homepage.
Build 13
Password reset, easier navigation, and error pages
AddedAdded "Forgot password?" — request a reset link by email, then choose a new password.
AddedThe homepage footer now shows both Sign in and Sign up when logged out.
AddedAdded a link back to the homepage from the dashboard.
AddedAdded proper 403 and 500 error pages, matching the rest of the site's design.
Build 12
Branding refresh and a share-link fix
FixedAn owner opening their own certificate through a share link now always sees the real file, not a watermarked copy of their own certificate.
AddedVerification emails now use a proper template matching the site's look, and show as coming from "WoCerts" instead of a raw email address.
FixedRenamed the site's internal short name from "WoC" to "WoCerts" for consistency.
Build 11
Domain, security review, and real email delivery
BugThe auto-detected certificate title was still occasionally wrong for real-world certificates, picking up a stray misread line instead of the actual course name.
FixedImproved the title detection further using a real example of the exact failure.
FixedReviewed file storage and database access end-to-end; tightened one spot where a certificate's internal storage reference was reaching the browser unnecessarily.
AddedMoved to the wocerts.link domain.
AddedAccount verification emails are now actually delivered (previously only logged for testing).
Build 10
Fixed garbled watermark text
BugThe name/timestamp stamped on shared certificate previews rendered as garbled box characters in production, though it looked correct when tested locally.
FixedThe watermark text now uses a font bundled with the site itself instead of depending on a font already installed on the server.
Build 9
Redesigned certificate sharing
BugThe original file was still reachable by editing the watermarked-preview link's address, since the two links only differed by one word.
FixedReplaced both links with per-purpose share links that share no pattern with each other, so there's no address to guess between.
AddedOwners can now create multiple share links for the same certificate, each tagged with a reason (Friends & Family, Public, Other) that's stamped into that link's watermark.
AddedShare links can be revoked or regenerated at any time, immediately invalidating the old link.
FixedRewrote this changelog to read as a public product history rather than an internal development log.
Build 8
Changelog, live status page, and preview retry
AddedAdded this changelog and a public status page showing live site-wide totals.
AddedAdded a "Retry preview" button for any certificate whose preview never generated, so it doesn't require re-uploading the file.
BugAuto-detected certificate title/issuer text was sometimes wrong for certain certificate layouts.
FixedImproved how the title and issuer are located within a certificate's text, instead of relying on simple keyword matching.
Build 7
Certificate previews now generate reliably
BugCertificate preview images and auto-detected text worked when tested locally, but failed for real uploaded PDFs once the site was live.
FixedReplaced the certificate preview renderer with one designed for the hosting environment, after tracing the failure through several distinct causes.
FixedCorrected how the renderer located its own support files (fonts, character maps, and its text-recognition engine) once running on the hosting platform.
BugOnce previews started generating, the text-recognition step for auto-filling the form still failed in the same environment.
FixedFixed the text-recognition engine failing to load one of its required files after deployment.
Build 6
Watermarked previews and a closed access gap
AddedWhen an owner turns off downloads for a certificate, other viewers now see a preview with the viewer's name and the time stamped across it, instead of the original file.
BugThe original file was still directly reachable even when downloads were turned off, bypassing the watermarked preview.
FixedThe original file is no longer served to non-owners once downloads are turned off; they're redirected to the watermarked preview instead.
Build 5
Malware scanning and faster file loading
AddedUploaded files are now checked by a malware-scanning service, in addition to the existing file-type and content checks every upload goes through.
BugViewing or downloading a certificate's original file could feel slow for larger files.
FixedOriginal files now stream to the browser as they load instead of loading fully into memory first.
Build 4
Public launch
AddedThe site is now hosted and publicly reachable, backed by managed database and file storage so uploads persist across updates to the site.
Build 3
Certificate organization
AddedAdded categories for organizing a wall of certificates.
AddedAdded the ability to edit a certificate's details after uploading.
AddedAdded grouping, for bundling several related certificates (e.g. courses within one program) under a single entry.
Build 2
Upload auto-fill
AddedUploading a certificate now auto-detects and suggests a title, issuer, and year from the file, for review before saving.
Build 1
Initial launch
AddedSign up, upload a certificate (PDF or image), and see it appear on a dashboard.
AddedEvery account gets a public link showing their certificates as a wall, with public, unlisted, and private visibility per certificate.