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:

Ge5d2h4c65aob57sade6t88efI44n6kd844 7p5bra18odb542tbe8cdd4t5sa 3s3dfee797an5s2i78673ta1i68652v52ec8bb bd2bwbr1d9i2fad5t3319i1c73n9d56g94d 26f7b5y5cad femb234a6k8351ibn6g23b e9dfi99cf4tf0 19c80h425ccaae0bere9d53a1ea9r3d 4ta811ofc 18c2ofp7ey1,5c7e6 a7s8c3c1r83d6a160p6e81e0e7,c 91afo6r792 de2239x8b68tbce45re7ac018acdde7ft87dd 4f9wci4c2e9t5h98o08ub366t667d 69afcp672e361ar5dm329i65117sd5d70s2fbi1o60cne589c.c34c

W0cdh4e1497ne3ec 31yf4o5b055u5c 3761rfe951a7da0d61a93 09f5at02ed575exed8et8 7pear35089o12c88t272e6885c5749td2a7e6d28 68b4153yb1e a7bGfc500h7of0803s5959at7Ic0n5ak4d,7 7fcce227v7ead4rf8e9by2f894t8ec1fh4ei494afn4e8g46d4 0l35b72obo12ka58cs9 24aafnd78a3oc2dremdad9la.8 654B31e0bu023t6 0b869e86eh3814i2205fnafdadf3 753t738h4afd9e31e30 aab57s979a4cd781ee9n20e5a50s56715,504 70dtcbch5e98d1c 0f21cl6ec64bet359t38e9152r6d18sccf 6a0d265r8ee89a fa3l62ad26c8f4ec7a0dd5e580 2b1wbi444t22cfh54 f5870i4681n2v14ie5fecs472ibbff0bba1l12aeae1 dj29eu3c1en6cf68k8f e8c54cd714ah5a338frab5fea02df1c429a7t693e8aac1r2s34c3b 98dd7e238s12882iag1n5c7efa1fd73f45 7c3dt0f3o59f e7bca1oa161n14007f9u9e91s65c7e9 d25b4f8ofac7ta75ffs223,1ae 16c36r968adwc7d53l5874eb27rdfscdab,ad405 42a7125bn2e5de 6e5d57cv8e7anaa esfi9mec5p012l95e6966 e53cdb14o3p7y2/303fdpc9d2ab762as0ad0t6992e78642.d7 4eT18bh7b3d9ef315s722eb5 1ae516x47d6ftd3a9r3caa e9c4h01baaber97a6b3c6t41e92r0sb764c fd2ofef5nd9a953e21t9337e e7a78sbhd0e49o4few8 3fb6ucf4p04 e2fo856n2077 db1t91h6b4a7e37 fs8baccccb0r1e52ec6be9266cn2 97826d abfu80t65e3 b0ddt4fd6fh276ecady4 a52dfdfbo81821 1e42cc2eo49f1m1ec4 4w694feidt76h2cff0 cy84ccco9bua7a8 9933bw7b853hde4n1ea7a d342dy910aoaf9u8 7d0f1tc292r60yed 2t0eo3 2s5dee7t00e3e478ba2flac 6t9h3be51d b123tdeecx2510dt82.4

T498r4y4b07 32fdfifae8td 93da5Yeo2910u9c83r1s54c7e0c5ele72fa5

Se60e52l26f67eded41c3tc432d 00ds9ba2o6e4m47f1e6a 02047oe4fa34d 91fcat7d2ch439b3i7268es8f14 8e1eg7laf0o11101w4id5dn8b083g4f 2b4b6l8u6ab06e2cc 58aGa414h405o4fsb6et24I951nak4bfc6-75c8p1fr919o5c7d9t6c81e26ed7c18t456e7d71032 3e73t2dbee1exf8t42.f50 47cC75cf9o64cpf6e9dy8ef eidt34f03.7 deP5ba99004sat5e3 0bietd1a5e 8a9i69n893d2tc697o2662 ac98fa969 b1n11o13bb4t7e4183p31821a6e7ede08,25 f0824ecm449a41ielce3b,20 0460foeb1r701 4m6ce7se2ddsef0bbaagb618eaf.bc 20-18 726Y9obu776l252l24e7 f92sc254e8181e43f a2bfh1ob3w172f 69e15t44hf24be8a 3cc0717al54e86ea1n8 1s9d7uae2brdf5a5216dc1ed d7d2chbi6dd7e150sb2e9 8fdae60ba eadfm56479e3s8as9ca bbfbua34bnf375bdda10ec83brfnfeaabtfb01h4a217.b8

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.

T653h58i7s4 708id3fsaca32 baeb959 1845dt6efd40sc3tb17b6.9d27