// voice
Voice
Every user-facing string ships from src/lib/copy.ts — never hardcoded in a component. The table below is read straight from that file, so it can't drift from what's actually shipping.
01 · rules
The rules
- Generosity verbs: share, fork, take, borrow, tinker.
- Banned: buy, sell, hire, 🚀, growth-speak.
- Errors take the blame — "something broke on our end — not you, us."
- Empty states are invitations, never a scold.
- Absence, not zero: null stars/likes render nothing, never "0".
- Lowercase-calm, playful register — no exclamation-point energy.
02 · strings
Every string in copy.ts
copy.ctaPrimaryshow your thing
copy.like++
copy.savesave
copy.savedsaved
copy.followfollow
copy.followingfollowing
copy.emptyFeednothing here yet — go find something weird
copy.emptyFeedLeadnothing here yet —
copy.emptyFeedLinkgo find something weird
copy.relatedTitlemore like this
copy.recsTitlebecause you starred
copy.recsImportNudgebring your github stars — we’ll find more like them
copy.navWeirdweird
copy.profileEmptyProjectsnothing published here yet
copy.projectNoReadmeno readme yet — the code speaks for itself
copy.projectDraftBadgedraft — only you can see this
copy.projectRefreshThrottledjust synced — give github five minutes to breathe
copy.newTitlepick a thing to show
copy.newSubtitlepublic repos only — drafts stay yours until you publish
copy.newNoReposno public repos found — push something weird first
copy.newRepoListTruncatedshowing your 500 most recently updated repos
copy.newRepoUnavailablegithub wouldn’t hand that repo over — try again?
copy.newRepoNotYoursthat repo isn’t yours to show
copy.newRepoTakensomeone already showcases this repo here
copy.settingsProjectsTitleyour projects
copy.settingsEmptyProjectsnothing here yet — go show your thing
copy.settingsDeleteConfirmremove this project from dorkhub? the repo stays yours on github.
copy.actionPublishpublish
copy.actionUnpublishunpublish
copy.actionRefreshrefresh from github
copy.actionSavesave
copy.actionSavedsaved
copy.actionRemoveremove
copy.sortTrendingtrending
copy.loadMoreload more
copy.loadingMoreloading…
copy.savedTitlesaved
copy.savedEmptynothing saved yet — go find something worth keeping
copy.followingTitlefollowing
copy.followingEmptyyou’re not following anyone yet — go find your people
copy.listsTitlelists
copy.listNewnew list
copy.listNewPlaceholdername your list
copy.listDescriptionPlaceholderwhat ties these together?
copy.listEmptynothing in this list yet
copy.listsEmptyOwnno lists yet — start one and put your favorite finds together
copy.listsEmptyVisitorno public lists yet
copy.listAddadd to list
copy.listedInUnitOnelist
copy.listedInUnitlists
copy.listedInLabelin
copy.listItemUnitOneitem
copy.listItemUnititems
copy.listsEmptyMenuno lists yet
copy.listNameLabelname
copy.listDescriptionLabeldescription — optional
copy.listCapHityou’ve hit 50 lists — the cap for now
copy.listNameTakena few of your lists already use that name — try a different one?
copy.listSaveFailedLeadcouldn’t save
copy.listSavePartialTail— the rest went through. try again?
copy.listSaveAllTail— try again?
copy.listItemCapHitthis list is full — 400 is the cap for now
copy.listDeleteConfirmdelete this list? the projects in it stay put.
copy.listPrivateBadgeprivate
copy.listVisibilityPublicpublic
copy.listVisibilityHelpprivate lists stay yours — hidden from your profile, and they don’t count toward a project’s list total
copy.tagsTitlebrowse by tag
copy.tagsStackLabelstacks
copy.tagsTopicLabeltopics
copy.signInPromptsign in to join in
copy.searchPlaceholdersearch projects…
copy.featuredLabelfeatured
copy.searchEmptynothing yet — try fewer letters
copy.searchRateLimiteda lot of searching just now — give it a minute?
copy.searchGroupProjectsprojects
copy.searchGroupPeoplepeople
copy.searchGroupTagstags
copy.searchTitlesearch
copy.searchStarttype something — a name, an owner, a tag
copy.searchCappedshowing the strongest matches — narrow it down to see others
copy.searchSeeAllsee all results
copy.searchScopeNotesearches names, owners, taglines and tags
copy.searchFilterLanguagelanguage
copy.searchFilterTagtag
copy.searchFilterStarsstars
copy.searchFilterDemohas a demo
copy.searchFilterClearclear filters
copy.importTitlebring your stars
copy.importSubtitlewe’ll match your public github stars against the gallery — the rest go live right after
copy.importStartimport my stars
copy.importRunningreading your stars…
copy.importDoneHereof your stars are already here
copy.importDoneOwnof your own repos aren’t listed yet
copy.importEmptyno public stars found — go wander github first
copy.importSkiplater — take me home
copy.importMaterializingputting them on the wall…
copy.importDoneLiveof your stars just went live
copy.importDonePolishingmore going live automatically — check back in a bit
copy.sortNewestnewest
copy.unclaimedBadgecurated by dorkhub from public github data · not yet claimed
copy.unclaimedIsThisYouis this you?
copy.claimTitlewe hand-picked your work
copy.claimBodythis page is yours if you want it — or we’ll remove it. no strings.
copy.claimAcceptclaim my page
copy.claimDeclineremove my stuff
copy.claimDeclineddone — your pages are unpublished. change your mind anytime by signing back in.
copy.adminQueueTitlereview queue
copy.adminSourcesTitlesources
copy.adminClaimsTitleclaims
copy.reportActionreport
copy.reportDialogTitlereport this project
copy.reportReasonLabelwhat’s wrong?
copy.reportReasonPlaceholderpick one
copy.projectVisitDemovisit the demo
copy.projectManageInSettingsmanage in settings
copy.reportReasons.spamspam or seo bait
copy.reportReasons.malwaremalware or sketchy code
copy.reportReasons.not-a-projectnot actually a project
copy.reportReasons.abusehateful or abusive
copy.reportReasons.othersomething else
copy.reportNoteLabelmore context — optional
copy.reportSubmitsend report
copy.reportSubmittingsending…
copy.reportThanksgot it — a human will take a look
copy.reportAlreadyyou already reported this one — it’s on the list
copy.reportRateLimitedthat’s a lot of reports for one day — try again tomorrow
copy.errorsomething broke on our end — not you, us. try again?
copy.errorRetrytry again
copy.notFound404: page not found
// maybe it shipped, maybe it never existed
copy.notFoundCtaback to the gallery
copy.forkNudgefork it — it’s yours
copy.heroHeadlinea home for the things you build for fun
copy.heroSubconnect github, pick the repos you love, give each one a page. free to browse, free to fork.
copy.footerLinemade by dorks, for dorks
copy.browseCtabrowse projects
copy.signInsign in with GitHub
copy.isListshow-and-tell for things you built · forkable by design · free, forever
copy.isntLista leaderboard · a marketplace · a hiring portfolio
03 · in the wild
Voice in context
The same strings, rendered by the real components that ship them.
fork it — it’s yours
nothing here yet — go find something weird