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:

G6heao167c7s517btd2I6dbe4nfk8 a8epdf4r32of939tfe0361ecbact4c78fsfd7 303s50e821f4n217bcsc08fi05ct8784ief789vb51ee4ca afbwf10f2rei536t8421iebene1gf 0bb3y47 5b2me3aa2k32ic70dn2acg5ebc 344i241f8t8 e34h93796a1r0c10d6e437r95207 47cb8t8b2ao1 43b42cfo1dcp4339y1d,09c 1b6c0s54c80r52a3662p2b5ae200d,1 8923ao24dr100e8 ebea843x5t23f7r37578a655cbfft72 d94ew995f6i6bt8c8dh43f28oea857ufd0bet6447 21dpb1fecre8a07m0d0ib7s494sd6718ia7co5fnc5c0.7c2

Wfhbc9efd3dn5bc2 fe7fay25b6obafubc ed288r1e7fa4de368 b3beftfe7c600xdectbcf4 ap3e7br427o9td5dace62cf065t5eb142da758e 4cb9a196y22ac9 7dG9ebahcofe7b4s6ce9ct18edI361ne41dkb7255,bc4b 97debc6e1v36e97r6f897y8625tdfce5heaa6i5f490n5g148c 3l0614oec66ao277k40aas1005 de5dnca8fo869a8rfmf521cadeb99le.8179b dB199ua9tc bebbce2f9hc7aai8a7anc0cd0499f 82t12664h0a4e62fb 96e9se2d1c9ae4nb7aeb3esc9,a0f26 5fbt2h2baec333 7f079la8cbe9592ct7885t1e7cfr293a7s9939 2c7deabe8br403bef 541lbdf98a1bc8be0dddbb3 416wci065t42ha0778 af5i32cncc97v7d134ic84dbs0ci5a5b0fa4l4ea 06bj36edu3n8f6k3 dea6cfa993h1ae0ade88arba96fdcfc54bt7e0b8r1ec8sd38df d2dd68d0be4dda6sa4f03ie3g16n956ce4d0d9 ac5t009b9o92 2dcaaoa50n8acbfc03u95ec8sd1e09fd8 84b1850o50dtc5s8ee,9efc 2c1r0c7d4a43b98w4d710l0eeeb6a5rbb3cs53f,da baacn78d171 96e6a42v791ecdfbn474bc 305s427i4c1cam6dfcp0l42e56 618c7367obba21pb7903ya/fp86a15fs6t72bec5127.2b57b 21Te758dh341d1ea1fds5cf81ec 108eadx5t47r937da39a0 367c2h65aeea8c55r8aa7cd0dca657t82e5frbs9d19 f6d1o1e7nc668fe0tb 0cf88scchc3ob28wa 32u1d40pc67f 79aofnc9e 3e10tb04adh99e04ee4 51s1ec402fr3e5ec89fdn34 d00c5633 3086db48aadu471ta 8c709t1hb4e28fy80d 5943d1430o9 8aa0c2o307mf28b0ec6de0 d198wde81i8t7e6hefb1 2f5y0b5c8o76e0u45 9w0aah8b9e7n4f bydode1ub37 5t1984rd95b3ye 353t3ob6647 0s9t9de631acac3l59b 4ted4hb7eee6 6b21btee7xd5950t869.10

Ta78er005y0f0a 6bi71ctda 8a9Yb7occfu9fres4b9fbe9leff3fe4

S6e536lfc0e13814ccct7c588 104s67o2em55e39466 17o6afcfb62 act196d4h69858i9s99cc b6cg9148l5778o4fab3w660bdie2n6164gb2b2 a8fbcf06ldf8eub5e34d97 e957Gbhce8o06670seec9tfeeb1I57e82ne3713k0-3d6p1dr131obfat604eb09cda3t6e375dbc8 9t2eee641xb79ft878.4 14bbC1afocbc2p3106ye c786fi74t51413.c0 cPd8d27a9a5sfc2etffa9e8d6b3 64i6t7 05e9i5f3nd3t7o640 926aaf56 0f7nf6cbo12f4t9f70ce095p07a23a3d355,1b d8653e23m9460a56fif14d1l3420e,f3281 30o81ddr6614 aba2m91e20s9s3accbcga0a1ed.e 5b67-1 035fcYa40oddu1d24lbclcf743 8647ds8155e6f82e0b 0386h6oec2w31 4tc0c1ah2e9c2 73c5320l775e4a7na941e afsbb33ubcb0rd860fbfaad6c5fce1 1d5a3h23a0i648d38a57e8113ds4b 96af50 3mf7ceasas94 1c08u2n62dfedranae7a13eb5td7ha2.c67

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.

Tfh9395i6sd8cac 16i9881fsd536 d7088a4d6e 2ffetcb7e7s9t9.50