Go to main content

Author prefixes and registration

Anyone in the Textpattern community who wants to build and share themes and/or plugins must register and use an ‘author’ prefix. A prefix is a three-character (alphanumeric) indication of who the author is, and precedes a theme or plugin name as an assurance that no two themes or plugins will have the same Name value and trip up the software.


Prefix registration rules

Guidelines, courtesies, and points of fact about choosing and registering an author prefix:

You cannot use a prefix already in use. Prefixes are valid for as long as the themes or plugins of an author are still in circulation, with a generous grace period.

You must have a Textpattern community forum account. Provide the link to your forum profile when registering a prefix.

You can only have one prefix. One. (You may see two or three people in the lists having multiple prefixes. Ignore it. Housecleaning is coming eventually.) In other cases, an author will adopt the themes or plugins of another that has abandoned or ‘retired’ from the community and their products are still considered useful. Adoption means the adopter is willing to maintain the themes or plugins, as appropriate, for community use. This is the preferred, respectful practice against simply changing plugin names.

Your prefix should be three alphanumeric characters. Not less and not more. (Ignore any you see in the lists that defy this convention.)

First to market wins the prefix. Prefixes go to the first person who has a theme or plugin to share, regardless if the prefix has already been registered. So, only register a prefix when you have a theme or plugin ready to go (or can show you are near ready to share one).

Prefix ownership may be challenged. Prefix ownership may be challenged if it is found that an author has not created a theme or plugin yet and is squatting on the prefix. In this case, you (the challenger) must produce the first theme or plugin to earn ownership of the prefix in question. At that time, bring the issue to light in the appropriate Theme discussion or Plugin discussion forum with proof of your product ready to share, and others can help recognize and validate the challenge.

See additional notes in the Registered prefixes Legend.

How to register

When ready to register a prefix, open a new prefix registration issue in the user documentation repository and respond to the questions accordingly.

If you do not have a GitHub account and do not want to create one, make your prefix request in the Theme discussion or Plugin discussion. Point out your anti-GitHub position so it is understood. Totally fine.

Registered prefixes

The prefixes in the following alphabetical lists have been registered, meaning they are not available. But see Choosing a prefix about challenging for the right to use an unused/squatted prefix, and note the legend entry below about other potentially available prefixes in the lists.

Prefixes are noted in relation to their owners as:

abc: username

Owners are identified by their Textpattern community forum usernames. Usernames link to forum profiles, not personal websites.

Attention prefix owners: If your username is not linked with your forum profile and you would like it to be, get in touch as described in the previous section and indicate your forum profile link. It will be added for you. (While someone could spend precious hours looking profiles up for everyone on the list and add them without prompting, they won’t.)


  • A (?) next to a username means no forum profile is found and the status of the prefix is questionable. If an external link is known, it will be on the ‘?’. These prefixes can be challenged for new ownership.
  • A (!) next to a username means the indicated author has adopted all the original authors’ abandoned/orphaned themes and/or plugins, whichever the adopter is qualified to maintain.
  • Green prefixes mean the author has long since left the community and no themes or plugins remain usable or adopted with that prefix anymore. These prefixes can be claimed by a new author.
  • Red prefixes are off limits until further notice (notably ‘foo’ and ‘dca’).
  • Yellow prefixes are used internally by Textpattern and are off limits.


  • aaa: jayrope
  • aam: Logoleptic
  • aao: aurelian
  • aba: aba
  • abc (for user docs only)
  • abl: developr
  • act: angryCat (?)
  • add
  • adi: gomedia
  • afa: Anton
  • ais: Alien Internet Services
  • ajt: segfault
  • ajw: Andrew
  • aka: AkaScooter
  • akh: tweak
  • ako: akokskis
  • aks: makss
  • akw: thekolonel
  • all: Giz
  • alt: GeertAki
  • an7: iaian7
  • anc: usonian
  • any: anyNeT
  • arc: monkeyninja
  • arg: argi
  • aro: rloaderro
  • asv: variaas
  • asy: Sencer
  • atb: atbradley
  • ats: schussat
  • aud: Alex McKee (?)


  • bab: benbruce
  • bas: Bastian
  • bau: bauhouse
  • beb: 1beb
  • ben: Baseline_Benny
  • bep: alice_c
  • bit: bit
  • bkp: AkaScooter
  • bnk: Duncan Clarke
  • bos: Zanza
  • bot: redbot
  • bsl: polygon_monkey
  • btx: DougBTX
  • bud: andyb


  • cad: cad
  • cbe: CeBe
  • cbs: cbeyls
  • cfm: aeonflux
  • cgd: Caged
  • cha: chalito
  • chh: takshaka
  • chu: charmston
  • cjm: chrismc
  • ckr: Cedric
  • cng: chess
  • cnj: octover
  • cnk: chriloi
  • cnn: cnewkirk
  • cno: cnolle
  • com (used for plugins resulting from community collaboration)
  • csb: csandberg
  • css
  • cti: Celti
  • cxc: cXc
  • czg: cziggurat


  • dak: Kaiser
  • daz: amordecosmos
  • dca: Dean (founder, R.I.P.)
  • dds: nemoorange
  • dem: demoncleaner
  • dfc: domfucssion
  • djw: wet (!)
  • dmp
  • dom
  • dow: dow
  • dru: Drew
  • dry: Destry
  • dub: jamiew
  • dzd: Dragondz


  • e26: edduddiee
  • ebl: TheEric
  • eck: ecklesroad
  • ect: lenatime
  • ede: edeverett
  • egg: yatil.de
  • end
  • eoi: dubsky
  • esq: cain-mi
  • etc: etc
  • etz: Etz Haim
  • ext (‘extension’ - a module that hooks into another plugin)


  • fab: DA
  • fgr: fathersGrave
  • fha: mamash
  • fly: superfly
  • fng: fungus_sn
  • foo
  • fox: Gr3yFox
  • fpx: Flashpix
  • fxn: Inventor1975



  • hak: hakjoon
  • has
  • hcg: hcgtv
  • hdd: Ron Hickson (?)
  • hed
  • hfw: DarkWulf
  • hhh: hoho
  • hpw: duffe
  • htn: grafzahl
  • hwm: hotwebmatter


  • ice: artagesw
  • ied: Bloke (!)
  • ign: igner
  • imm: mikhail
  • it: Sketch


  • ja: london567
  • jab: jbaty
  • jad: jdueck
  • jas: larry
  • jbb: Jeremie
  • jbe: jot.be,
  • jbx: grundgesetz
  • jcb: jimb
  • jcp: JohnAJ
  • jcr: Jakob
  • jcv: grump.org
  • jdt: iioshius
  • jdw: JanDW
  • jea: Jeadorf
  • jfp: jordi.f
  • jgh: Rufnex
  • jgk: Rufnex
  • jgp: Rufnex
  • jjj: jascha
  • jk: Jeff_K
  • jks: code365
  • jmc: jufemaiz
  • jmd: jm
  • jmr: jmrhoades
  • jnm: juanjonavarro
  • jns: himynameisjonas
  • joe: joewils
  • jof: woof
  • joh: Slaktad
  • jrh: Jan H (?)
  • jsh: pericat
  • jtb: JeffClark
  • jvg: jeroenvg
  • jwl: grapeice925



  • lam: iblastoff
  • leo: LeonNet
  • lhg: 1ukaz
  • low: JustinLow
  • lsx: LeeStewart
  • lum: Themroc
  • lwh: Luke Wesley-Holley (?)


  • mcb: mcbenton
  • mck: MarcoK
  • mcw: mikewest
  • mdn: Remillard
  • mdp: greenrift
  • mem: Manfre
  • mic: micampe
  • mik: mikkeX
  • mim: kemie
  • mka: Martin Kozianka (?)
  • mkp: michaelkpate
  • mlk: milkshake
  • mrd: mrdale
  • mrh: aesop1
  • mrs: marios
  • mrw: nesher
  • mrz: marz
  • msd: MattD
  • msv: Martin Svihla (?)
  • mta: morgant
  • mtp: plummerm


  • nab: nabrown78
  • nav
  • nhn: Skubidu
  • nok: anoke



  • pap: tranquillo
  • pat: pat64
  • pax: johnstephens
  • pcs
  • phq: phq
  • phw: phiw13
  • plh: planeth
  • pnh: placenamehere
  • ppc: kusor
  • prad: fpradignac
  • pro: hilaryaq
  • psa
  • ptv: Borisch
  • pub (‘public’; for use on products resulting from community collaboration)
  • pzc: prizmcloud


None at this time.


  • r11: skipper
  • rah: Gocom
  • ras: rsilletti
  • rcb: Russell Brown (?)
  • rdi: ian
  • rdt: rdtietjen
  • rei: ReinierBiz
  • rlt: richtestani
  • rmc: ruairi
  • rob/Rob Bell (?)
  • rom: Romuald
  • rpc: ARCanine
  • rpg: leralle
  • rsd
  • rss: wilshire
  • rsx: ramanan
  • rtr: rob_roy
  • rvm: ruud


  • sab: supa
  • sac: saccade
  • saw: ninj
  • scs: steph
  • sdr: sderuiter
  • sed: net-carver
  • see: sthmtc
  • sen: gago
  • set
  • sgb: sungodbiff
  • sho: stephan
  • sir: fabio sirna
  • ske: skeptisch
  • skp: piyashrija
  • smd: Bloke
  • smf: txfrog1999
  • smu: e-sven
  • soo: jsoo
  • spc: spchampion
  • spf: spiffin
  • spi: photonomad
  • spr: springworks
  • srh: Vitruvius
  • ste: stefan
  • stm: monsta
  • stw: santheo
  • swf: swf


  • tab
  • tbs: thebombsite
  • tch: Sketch
  • tcm: tmacwrig
  • tem: gu
  • tda
  • tfu: carton
  • the
  • thg: the_ghost
  • tin: jeroen
  • tok: ToK
  • tom: Sacripant
  • tps: Tomsec
  • tpt
  • tru: truist
  • tsw: mwaldtha
  • tuk: paradotsky
  • txp


  • uli: uli
  • upm: Mary
  • uri: urizen


  • vag: vagari
  • vdh: larf
  • vg: Vincent Grouls (?) INVALID


  • wan: wanni
  • waz: wazdog
  • wcz: whocarez
  • wet: wet
  • wlk: Walker
  • wm: watts
  • wnp: datafirm
  • wow: nighthawk


  • xkl: nimnix



  • zem: zem
  • zen: zenigy
  • zmk: maxk

Using the prefix as Name value

When using the prefix for a theme or plugin Name value, the conventions are the same, except themes use hyphens between words and plugins use underscores. This is to ensure when talking about one type or the other in the community forum, for example, it’s clear from the name what type of product it is.

Theme name pattern:


Plugin name pattern:


Where else to use the prefix

For themes there is only one place: the Name value of the theme package, created using the New theme form via the Themes panel in Textpattern’s back end.

For plugins, including a plugin’s name, all of the following apply:

  • The names of PHP classes, functions, and global variables in the plugin’s code.
  • The database table and indices names.
  • The names of stored preferences in the _txp_prefs_ table and/or the $prefs array;.
  • Any global JavaScript variables or function names you use for modifying the backend or adding features to the front-end.
  • IDs, and to some extent, classes of HTML elements that you add to the backend interface. (The exception to this is if an element of your markup is logically similar to an already existing core element and you wish it to be styled in the same way by themes. Doing this saves theme designers from having to write specific rules to target your plugin’s markup.)
  • URL parameter names. Replace ?foo=bar&baz=1 with ?abc_foo=bar&abc_baz=1, where “abc” would be your own prefix.

If you notice any kind of problem with this page's construction or content (outdated information, typos, broken links, or whatever), open an issue to have it sorted. Or have a go at it yourself. :)