Audio By Vocalize
The tension between artistic expression and state control in Kenya dates back to the 1970s and 1980s, when repression of intellectuals reached extraordinary levels.
Beyond the harassment and detention of writers, the state once infamously went in search of a man called Matigari, only to discover that he was a fictional character in a novel, Matigari, by Ngugi wa Thiong’o. The incident was emblematic of a regime so wary of dissent that it blurred the line between imagination and reality.
Over the years, these tensions have extended to literature set books, with some being censored for content deemed morally or politically subversive. However, the ban on any piece “perceived” to be political at this year’s Kenya National Drama and Film Festival suggests a more aggressive resurgence of institutional “gatekeeping”, often justified under the guise of pedagogical discipline.

This latest phase can be traced to the controversies in April 2023, when Echoes of War, a play by Butere Girls High School, was blocked at the national level. The play was deemed too politically sensitive by the Ministry of Education and festival organisers, acting at the behest of “powers from above”.
The situation escalated when police used tear gas to disperse protesting students and members of the public. Legal organisations such as the International Commission of Jurists-Kenya cited violations of Article 33 of the Constitution, which guarantees freedom of expression.
Notably, this was not the first time Butere Girls found itself at the centre of artistic repression. In 2013, the school’s play Shackles of Doom was banned after being adjudged to contain “hate speech”, highlighting a pattern where student theatre has become a site of contestation between authority and expression.
It now appears the crackdown has evolved from ad hoc bans into formal policy, with bans on plays that appear to engage in politics “directly or indirectly”.
These blanket restrictions ironically emerge at a time when Kenya prides itself on a progressive constitutional order and a new education system that emphasises critical thinking as a core competency for the modern world. To curtail artistic exploration, particularly among young learners, is to undermine the very intellectual curiosity and analytical engagement that education seeks to cultivate.
Literature, of which drama is a central pillar, has always functioned as a mirror to society. Through artistic expression, communities confront their foibles, infirmities, and excesses, often with a mix of satire, reflection, and moral urgency. It is through this process that societies find the impetus to correct themselves and aspire towards justice, unity, and harmonious coexistence.
When young people are prevented from articulating social and political concerns through art, the troubling message conveyed is that it is preferable to obscure uncomfortable truths rather than confront them.
Admittedly, not all politically themed scripts possess artistic merit. Indeed, there is validity in cautioning against works that are merely propagandistic. However, the appropriate response lies not in blanket prohibition but in rigorous adjudication. Plays that lack subtlety, depth, or aesthetic value should fail on their own artistic shortcomings, not because they are pre-emptively barred from engagement with political themes.
After all, the societal ills highlighted in these contested performances are the very issues political leaders routinely pledge to address. In these plays, they should find not an adversary, but an ally in the ongoing project of national reflection and renewal.
.std-banner-wrap {
max-width: 100%;
width: 100%;
position: relative;
margin: 2.5rem 0 2rem;
font-family: Georgia, ‘Times New Roman’, serif;
}
.std-top-rule {
display: flex;
height: 4px;
}
.std-top-rule .r1 {
background: #CC0000;
flex: 3;
}
.std-top-rule .r2 {
background: #C9A84C;
flex: 1;
}
.std-top-rule .r3 {
background: #0D0D0D;
flex: 6;
}
.std-banner {
background: #F9F5F0;
padding: 2rem 2.2rem 1.8rem;
position: relative;
overflow: hidden;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.10), 0 1px 0 #C9A84C;
border-left: 4px solid #CC0000;
}
.std-banner::before {
content: ‘S’;
position: absolute;
right: -1rem;
top: -2rem;
font-family: Georgia, serif;
font-size: 14rem;
font-weight: 900;
color: rgba(204, 0, 0, 0.04);
line-height: 1;
pointer-events: none;
user-select: none;
}
.std-eyebrow {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-size: 0.62rem;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
color: #CC0000;
margin-bottom: 0.85rem;
font-family: Arial, sans-serif;
}
.std-eyebrow::before {
content: ”;
display: block;
width: 18px;
height: 1.5px;
background: #CC0000;
}
.std-banner-title {
font-family: Georgia, ‘Times New Roman’, serif;
font-size: clamp(1.3rem, 3.5vw, 1.75rem);
font-weight: 900;
color: #0D0D0D;
line-height: 1.2;
margin: 0 0 0.75rem;
letter-spacing: -0.02em;
}
.std-banner-title .std-hl {
color: #CC0000;
font-style: italic;
}
.std-divider {
display: flex;
align-items: center;
gap: 0.6rem;
margin-bottom: 0.9rem;
}
.std-divider::before,
.std-divider::after {
content: ”;
flex: 1;
height: 1px;
background: #d8d0c6;
}
.std-divider-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: #CC0000;
flex-shrink: 0;
}
.std-banner-body {
font-size: 0.97rem;
line-height: 1.7;
color: #2C2C2C;
font-weight: 400;
margin: 0 0 1.4rem;
font-family: Georgia, serif;
}
.std-banner-body strong {
font-weight: 700;
color: #0D0D0D;
}
.std-cta-row {
display: flex;
align-items: center;
gap: 1rem;
flex-wrap: wrap;
margin-bottom: 1.2rem;
}
.std-btn-subscribe {
display: inline-flex;
align-items: center;
gap: 0.6rem;
background: #CC0000;
color: #fff !important;
font-family: Arial, sans-serif;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
padding: 0.72rem 1.5rem 0.72rem 1.3rem;
border: none;
cursor: pointer;
text-decoration: none !important;
border-bottom: none !important;
position: relative;
overflow: hidden;
transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
box-shadow: 0 4px 16px rgba(204, 0, 0, 0.3);
clip-path: polygon(0 0, calc(100% – 10px) 0, 100% 50%, calc(100% – 10px) 100%, 0 100%);
padding-right: 1.8rem;
}
.std-btn-subscribe:hover,
.std-btn-subscribe:focus,
.std-btn-subscribe:visited,
.std-btn-subscribe:active {
background: #A00000 !important;
color: #fff !important;
transform: translateY(-1px);
box-shadow: 0 6px 22px rgba(204, 0, 0, 0.4);
text-decoration: none !important;
border-bottom: none !important;
outline: none;
}
.std-btn-subscribe:active {
transform: translateY(0);
}
.std-btn-arrow {
display: inline-block;
font-size: 1rem;
line-height: 1;
transition: transform 0.18s ease;
}
.std-btn-subscribe:hover .std-btn-arrow {
transform: translateX(3px);
}
.std-dismiss {
font-size: 0.75rem;
color: #999;
background: none;
border: none;
border-bottom: 1px dashed #ccc;
padding: 0 0 1px;
cursor: pointer;
font-family: Georgia, serif;
letter-spacing: 0.03em;
transition: color 0.2s;
}
.std-dismiss:hover {
color: #333;
border-bottom-color: #333;
}
/* Payment logos */
.std-payment-row {
display: flex;
align-items: center;
gap: 0.45rem;
flex-wrap: wrap;
padding-top: 1rem;
border-top: 1px solid #e0d9d0;
margin-bottom: 0.7rem;
}
.std-pay-label {
font-size: 0.6rem;
color: #aaa;
letter-spacing: 0.14em;
text-transform: uppercase;
font-family: Arial, sans-serif;
margin-right: 0.2rem;
white-space: nowrap;
}
.std-pay-badge {
display: inline-flex;
align-items: center;
justify-content: center;
height: 24px;
padding: 0 0.5rem;
border-radius: 3px;
border: 1px solid #e0d7ce;
background: #fff;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
/* M-Pesa */
.std-mpesa-text {
font-family: Arial, sans-serif;
font-size: 0.7rem;
font-weight: 900;
}
.std-mpesa-m {
color: #39b74a;
}
.std-mpesa-dash {
color: #db3939;
}
.std-mpesa-p {
color: #39b74a;
}
/* Visa */
.std-visa-text {
font-family: ‘Times New Roman’, Times, serif;
font-size: 0.82rem;
font-weight: 900;
font-style: italic;
color: #1a1f71;
letter-spacing: -0.03em;
}
/* Mastercard */
.std-mc-wrap {
position: relative;
width: 28px;
height: 16px;
}
.std-mc-left {
width: 16px;
height: 16px;
border-radius: 50%;
background: #eb001b;
position: absolute;
left: 0;
top: 0;
}
.std-mc-right {
width: 16px;
height: 16px;
border-radius: 50%;
background: #f79e1b;
position: absolute;
right: 0;
top: 0;
mix-blend-mode: multiply;
}
/* Airtel Money */
.std-airtel-text {
font-family: Arial, sans-serif;
font-size: 0.64rem;
font-weight: 800;
}
.std-airtel-a {
color: #ec2427;
;
}
.std-airtel-m {
color: #dd3436;
font-weight: 600;
}
/* Equitel */
.std-equitel-text {
font-family: Arial, sans-serif;
font-size: 0.6rem;
font-weight: 700;
color: #003087;
letter-spacing: 0.02em;
}
.std-equitel-eq {
color: #e2001a;
}
/* Trust strip */
.std-trust-strip {
display: flex;
align-items: center;
gap: 0.45rem;
flex-wrap: wrap;
}
.std-trust-strip .std-shield {
width: 11px;
height: 11px;
fill: #C9A84C;
flex-shrink: 0;
}
.std-trust-strip span {
font-size: 0.67rem;
color: #aaa;
letter-spacing: 0.03em;
font-family: Arial, sans-serif;
}
.std-trust-strip .std-dot {
width: 3px;
height: 3px;
border-radius: 50%;
background: #ccc;
flex-shrink: 0;
}
/* Bottom rule */
.std-bottom-rule {
height: 2px;
background: linear-gradient(to right, #C9A84C, #CC0000, #0D0D0D);
}
/* Entrance animation */
@keyframes stdSlideUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.std-banner-wrap {
animation: stdSlideUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
Support Independent Journalism
Stand With Bold Journalism.
Stand With The Standard.
Continue
→
Pay via
Secure Payment
Kenya’s most trusted newsroom since 1902
Follow The Standard
channel on WhatsApp
By Kagundu Njiiru

