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:

G767dh0f3foadd4sb80t7I8ndd3k9 5f9p07r31cocbet9e7cfactfs33 803s6640e07n63bs7360i79957t46i3dbv0f0e6874 a40edw1171r412f6i291t4ab92i26cnc463g67ba4 65f3bf4b2yfe3 fcm66c3a1c3k937cei6f3efn9541dgb32b9 fa5fia7t63840 ac33fh025a757rd33d99e80r5 47t27f3oe 191cc2a7fo0c80dpayb05,39b0a as9dcfrfbbecabb4p16b39ec,e89 c457o703rf e4640e1x5540ct03r126a8a3ac7c078fatfc e03ffwc70ib4e0t94h6cf4oddduce238tc285 3p7da0e5d36r5m58bi14s9b78fs885cei1a3ofn04.c4e1a

W1220h387e5dn4 49fy9d2aoacaa6u95 2f44r5fe3a4b57da4d3 12dft8fd6eed0c0xa4t6f9c b11p6fe52r6e7o7tde9d31c6dta8e54057d0 57d0b93y9 12G4ee8dh3o5bscb4tbI7ca3n8911k707,e919 4e5va4e0dfr53y9fbetedh44i5683n4gba 9329l6c6oaf7o40e24k85s7985 2n534o6r9a2b0m1a1l21.f 9ef7B14237ue74t307 e6f8bc9e7131h8ffiba17na096dd6 1cct57hdae71d14 es2b022c3bceea15n60530e4bse87,9b 3fteh357e493 08l4884eef5tbcetee63feare5918se27 734a95r2289ce01c cee69lb70c2a23ac1effd94b15 awb8i792td66fh23 8cc9iab633nevfi9s544i17bfde89l29403e71 4417j6uce8bn99f6akdb1af ba58c43f3h4aar1dfa3c90c88e8t01ed57er8c486s0c6 4276dd89a5e3s36bi2286g9nf5f26e141bd4e8 9tdbo8343 2c3dcof271n39c40fae0u7s23758e9fa45 80b099aoe03t4c21se,4e2 1c353drcd3abwf7l69adeab9ra7324saf3,4219 ba957n15438de4cc a8bea8d29v86389e03deen1ad1c 20e6sbfdifm341p414lc5eef7d2b cc7o1ep1fy69/60paab85ds75976t9ea630.d 162Tdd75hcd562ec2s0a01e31d82 8d2e4e0016xb0tbrfa0a51 6138cfh58fac2r594a8ecbct913e1r1b247s520d 83cdado5c86en0cc8a96atfedf 64sbhco9w271 6ubp7 a2oa9cecnc42 0t1ae0hbe22b 0se5c4r6e3a8ed0b51e18n05 ec0caf 3b20361u32f48tdb a6cet1d6ha47ebe3dy8187 e17ed440oe8b8 5c3b93obb2edm95941e7 0816wd9e8ia2t5h04c ba38y5eofu5b77 27bwc9hbf5e8n2358 967ayeof7uee8 70161t0rfd735yf427a atf2o5cb1 745ds5et3ef89acb17l66a f9baft71h72e3 d433t579dae36cbx1a0ta8452.81f6

T9ff0br03ay2 aebi64tf9 6Y7o2d7uffr163fs7e500l9fbdeb3

S5d0be58939l82e9fc60t2a45 7450s10b40o7bmde7 d4262o8cf6 801fdtb98c5h90i3a6ffsb80 e116cg446dl0dfeeo7f9wb769ai33n8cgfe3ec c47b2l8fu62efb666 5G9d1h63acodfs8dtf04Iden97kc-21fpb9b73rc2aoec0fte2e165c2ccetfe4ed7f5d08830 1bt39f2e43fe6x44a66t8f.63 22700Cbob9f9p7e4yb567c 68i33ft53057.b 6eP5c1bbac767s6ft978eebfe3 7i2tbe 76aeien0dtb3o9b 4a5e41f 6bf2ndo9tf26ce9cpea965e5db7,c763 dfe465emb5a596i2dc7al9f,6e2 d394fo17cr089de 8m8b7f8e6c7s7a41s67ad6gfec2e8d.e1f9 62929-c 80Y1o1ucd65fa4l91lbf 7c0d8s3decda45e8f 25f2eh8o6fcw19 2beetf6ch2e6525b af0bfc60alddefa9574nb e7sf9u2rc24ef546a63370c88bee5 669ah9b2aci15d7297e257besd3589 6b4aa20f77 3562m5199eeafs0as3 9u8a6n66df3de85r9dn7ce91a33e1t8074ahc0266.aaa

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.

T8h9c765ia9bs6 0f6e1i5422s3e dee64a55 bdtcee1a9es17e4tc9fb0.b667c