GhostInk

Ghost Ink scrambles text to confuse bots, scrapers, and censorship systems — without affecting human readability.
It uses hidden spans, Unicode confusables, and zero-width spaces to create writing that is human-friendly but machine-resistant.

Status: In development
Goal: Help writers publish safely under surveillance without losing public accessibility.

GhostInk Example

A human sees this:

G0fh840do963es51tcI30f5dnd88k67175 3ap62brd219oedb57teef3c2et0s1 4sde3nfefs7e4i9859atfiaffc2vb9ea6a 6e79w242b4r3a46i505dctcc27i0b96n79e9g664 95b6ayd7d 4mdae8f5k451bi0d3ffn1aagd8 e0ia428tb 25efh45aafcrded57ae49a0rd87 7tb8o2 9205c1o4bp8yb,d c6s2dce5b0fr49d1a0ep70fefe0aa,8 cob8120r7ba2 0626e1d7xa973t2rf66deabcc548tc08 74c6w8i1t3hfoeu6e46ctaeb92 fd89p51783e4d60er127m8e73ia1s1cs51i16446o4c3fn81ee.bff0

W8920bh90641ef5an652ca 9274cyf57bo2u07d 31ca2r01e2e154ad5db3 32tdefc63x88btcb1 602p6fc9reofdfta23de3bfcd6124te1e78ea6df2 05b660cy9 0d7G24hf33od0sc079tedIfd77nf3c93kc46,21f 560eav9eeer29e21y8atfh7i68n3gaae6f e9l417o3o7898k0fs74 3efenfo95265r14bmf1e1ba306lf8.b0 d52B9bu0ctb8 3a834b765e03hde104i51fncb3d6e ataa2hc189cecd fefesb315c9e645cn79696e98seb3,9 9dt3h11edeb4b 4854l524caed2te55taeb572rabs7 f21d5ad4e0rcbeed 479blbfaf4ec0e17dfd3 9968aw9ic601t3h1 9i3n1v5674i7e46sa2ai46b0534lc3efed5 0e94j8udd6ne7k9fe6 92efccfc3fh48aa6r29ea94cd31t5e7r9s07 259cbd146a4efd99s46i900d9g4n3ee0ed929a 230etd2o92 acc30o06622n0d2fe315u25s549e1ef 728bcbob01t2s96e57,d5 9cef4r19272a3c5w85le3e71abr1s5053,63f 7adn07adc 1ce62a2v2aa2e6bnac19a 05sfa5i921mb88fp3facl67cd9ee1 826cbf23o9fe2p97e5yd11c2/0fe8p7a3bs1t41eefe34ae.8a6 7fT7940hfdb55e53csbcd9e6 ceedbe3dd5ax13c0et8110r5ac36 8bcc8ba9h9531ea8db7cr5fab4cce623tbe25r9b825s3 3d8o0n8df573ct8b6 1cs90hefeo6w2a1c4 93ucf6pca b9edo3f10nf ddt05hfd1e69 d2sacdreeeac2fe5d9dn5a8 8c1abc725 d6b9udd36t7 8t783ah4e97d7y7 fedaoadcc5 3103ce6ofmaed1 7f83w582a4i46tdadh94 592y905o6073bue02 d71c0we7h954e3cn5 0474ye14eeo0u9 55at31rbd48dydac88 et63bo8dc6 0a24fs92e10tc972eb5ba3b8l54ee7 f3fe6t403b7hf95eaa47 f1002tb52eee8x7da3atd3.776

Tfr1dfy4ca 1e1ei0t306 9Yfo9453bub7900rcad1see53ad2laebff52359

Sbee64l6653e93cct0b09 949b2s08o2bb46m84138e9 21o8f40e0 2t86h8i3sd9 136d3g5a87l2o2w47i6f501nf3392g258d 2659b9la986uf1eca7 92c7dG669bhe7e4oed081sd8cb9ta5e9Idc637n06e36k0-672c7pc66r532oa0t142e30ccc7499t7de7d83bed adtf4e84ee0x1cet53498.a 495C1bo56738p57yba 0b3i827b9t32415.7a2 8af8cPe7adsaftbbfe2 9ei0t49ef 1i2n2tb9o9ee f3ad70a6 29b45n70o53ae7tfee5b5p3a7badfdbf,45 e0e727m0a76idlbfc4,1 b1o7d1r069 8940m0e73scs98a9c5egce86298.f d-096 54d32Y0obe69u7530bf2l73l93e73 5as4dae5331e2 eh15o95wcc 8t5hd4cdeb06c 7f5c18lfec7afaf30nbd97 312s2ebu362r247f6978ac2c9c4fdeeb74 29haei49daeedb8sc2 670ab057 a494dm80724ec5ecs465esf e5a89u4n9dd2cce7r22bnee412a4433bt9c6h17.f

A machine sees this:

Code Block
Gd9dfhdb0a1of938s5t6370Icdd8enbfef3k9c d6p0654rf4341o2t4e90cf599tf6sfa032 ef45se7d56e883nbsfi80d2ft6fidf3v247be3ff 6e1werca923ida00at59f8ib7n99c82geef09 64b12f46y2de d69m101aeekfebic5e06n2g51e f3b8ib08aat2a015 cb8h13b1a5e59r5ac0da1152ee8r9c9 eb16ftbo3 f38baca51eeo0b99p2f16y22,11 adbbs7440c7a4fcrc572a74p6ef2,a418 3o18d0r36 f6e5932x5f5tebfr975aefcafc5d555t9b 4721awf9a2ie7b98t4cc2h70oc0bu2t553 82p8c95eca9r7b44mef1i6sce8sai2o539n63.8d3

W7a8hbc15ee84fn9b84 7f8f6y5d71cobu898ad b303re2ef72a26b94d05 btb87bfe8x2tea0e7 1pa1r567f9oeaa6t5ebc93t5e5ed22fa bfb51bc7cyb ee5bGfd3ahcf649oes22t74I86nfec6kf,0e98d ce0dc95v26ae19rad9y26e3t550h32fiff2bne27g8 f0db8l7e03oc98o87561k22bse383 abe3cn8e74o8r0d3m49eefa5e4cl8ba5.f32 3e877B51ub5060t4dc 8b9e60hcb779if67dndad9 8fad9tc14h6e53b dfs2c4efb5n809e5f60se043,514b2 bt3hfb6cebe 4d74l668bee98btb64td10cefr9s13a9 3a96ccrcc1e9b3 bbl73ab8cee7d2 23w9020i5360ct98h7b23e 9295ci943n1v3i3a78s2i34b84lb7de3f dj1dfcfu76b4nbk8 2482cf0ahac15a937rbab5c71e8dt637f5edr45cs91a 5ac4dc7fecs8fifee12gbn3cebdac6f1 4t53ebo01291 c1bc9o1nefc49u4de9es42bffe0d8 6b44bb49o5t434s7,6 0bc611dcr65b7cac5dwc08alebcefr693a2sde33e,f8 a1a40nacd4a 8e687ee20vc013e2a05n57a5 0a3scd9iff0m6ffp4d43la3baed 8c5f3o15280pe7y280b/7cfp32a5da4se81t5bb2ea7a.f0 5bf7T1f1ehf1cdee5f0s7e5e5 b17e6xfe4tabr0dd83a2d 311acdhca002r1110cabb7c45460tae06er0b4b6sc3d 3847d06dd3o6fb60ncfff7’e55t05 1fs53b9h7e260o31w243 a9ub2b5p9c111 eboaen1 1cte4f2hbb2e2edd9 73ds6c7reee281fe30967n4ced bd—8428f 9552b019ue2ft91 b8tfd649h398e91d3fy369ef 895d7cb31o6e d6e6ecff62ocfe38m5173eeb 8wecedief62t95905hee7 e5593y3o41u8cbc 8fweha01e7c360n62b 4y11ad0obaucb976 337tbcc35rdy0 ft98o67 7es1t58deeacae4dlf2615 4et0b0h3c6a7ef2fe 782t9de5fxeb24t45b5.4

T993r16y06075 e5i17t89b 952aeY922oa97b2u9771brb7d9sb1c20eblc5feeba8

S7eee5e61l5e4c7b7t12 34cs0o72fbcme5ecb1c b9obf5 1t434bh8i9s236 72pd4e5i8fn3k56de 3377G8haeodds516te43I88nack4f17e-66fapcc7rb7deo8bf6t4eec97tf8e5d9e8 551c2t12ee5a8x9c2t796ee.197b4 b44C7fcc5oa4pd006y7c 7901i7d962tc94.67 9eP4f8a1d8as7fb29t51ee02 a17d4i96t7 e9i1nct86cob6 8a9ca9 2d8ndo0ct498e64p5c9a6da1,5d 4ade3c1mb85afa85i2celbfa59,8f0 2da95o41e7er0347 9mcce18c3sbse3b7a69eefg4d4be7.0b9 43-9cdf3 1Yfbbo695u01’f1c1l38l2 2s8e2be15ee8 526eh4o2w3 de3ftbah12d21e3429 6c75fl7e7970a7n395 8461s56707udcabrdfadfadc122b4e886f2 636hd68ifcdfee11s3f aa99 0da7mae2c92sfes6b3 74auc5a7bn00d244ecd9dre0n93fe0b9ae8fft9had.

Limitations

GhostInk is designed to make digital copying, scraping, and extraction more difficult — not impossible. It protects against casual theft, automated crawlers, and basic copy/paste methods, but it can’t defend against everything.

Here’s what it doesn’t prevent:

Screenshots and OCR Anyone can still take a screenshot and use optical character recognition to extract the text — though formatting and accuracy may be reduced.

Manual retyping A determined person can always retype the content by hand, just as they could transcribe anything they see on a screen.

Javascript-disabled environments Some features (like scroll-reveal or hover detection) rely on JavaScript. In environments where JavaScript is disabled, the obfuscation may still appear, but certain protections won’t function as intended.

Skilled scraping Developers with enough time and intent can write scripts to strip out obfuscation — especially if the structure is predictable. GhostInk is meant to raise the cost of scraping, not make it impossible.

GhostInk is best used as one layer in a broader strategy: it slows down unwanted copying, frustrates bots, and makes authorship traceable — but it doesn’t replace common-sense security or legal protection.

Ta3ehf59c2ic00s7 8f89ib51dsec d1395a9 8dte0c6ce3sct6051.2