Africa's premier DevOps, Cloud & SRE conference.
🌐 Live Site · 📋 PRD · 🤝 Contributing · 🐛 Report a Bug · 💡 Request a Feature
- About the Project
- Tech Stack
- Project Structure
- Getting Started
- Contributing
- Documentation
- Community
- License
This repository contains the official website for the Africa DevOps Summit — a community-driven conference that brings together DevOps engineers, SREs, software developers, cloud practitioners, and tech leaders from across Africa and beyond.
The website is the event's primary digital presence, handling:
- 📣 Event marketing and promotion
- 🎤 Speaker profiles and conference schedule
- 🎟️ Ticket information and registration
- 🤝 Sponsor acquisition and engagement
- 📸 Past summit archives, photo galleries, and recaps
This is a frontend-only React + Vite + TypeScript application. There is no backend server. All content is either statically defined or fetched client-side from a CMS.
Status: MVP complete — actively iterating. See open issues for what's being worked on.
| Technology | Purpose |
|---|---|
| React 18+ | UI component framework |
| Vite | Build tool and development server |
| TypeScript | Strictly typed JavaScript |
| Tailwind CSS | Utility-first styling |
| shadcn/ui | Accessible UI component primitives |
devopssummit.africa-v3/
├── public/ # Static assets (images, fonts, favicons, PDFs)
├── src/
│ ├── components/
│ │ ├── ui/ # shadcn/ui generated components — do not edit manually
│ │ └── shared/ # Custom shared components (Navbar, Footer, etc.)
│ ├── pages/ # Route-level page components
│ ├── data/ # Static content (JSON / TypeScript)
│ ├── types/ # Shared TypeScript interfaces and types
│ ├── lib/ # Utility functions and helpers
│ ├── hooks/ # Custom React hooks
│ ├── styles/ # Global styles
│ ├── App.tsx # Root component and routing
│ └── main.tsx # Application entry point
├── .env.example # Required environment variables (commit this)
├── .env.local # Your local secrets (never commit this)
├── tailwind.config.ts
├── tsconfig.json
├── vite.config.ts
├── components.json # shadcn/ui config
├── PRD.md # Full product requirements and architecture decisions
└── README.md # You are here
Make sure you have the following installed before proceeding.
Node.js — version 24 or higher is required.
We recommend managing Node versions with nvm:
# Install the required Node version
nvm install 24
nvm use 24
# Verify
node --version # should print v24.x.x or higher
npm --version-
Clone the repository
git clone git@github.com:NaiDevOpsCom/devopssummit.africa-v3.git cd devopssummit.africa-v3 -
Install dependencies
npm install
-
Set up environment variables (see next section)
-
Start the development server
npm run dev
-
Open http://localhost:5173 in your browser.
This project uses Vite's environment variable system. Variables must be prefixed with VITE_ to be accessible in the browser.
# Copy the example file
cp .env.example .env.local
# Open .env.local and fill in the required valuesRefer to .env.example for the full list of variables and descriptions. Never commit .env.local — it is gitignored by default.
⚠️ Because this is a static frontend app deployed to shared hosting, environment variables are baked in at build time. Do not store secrets inVITE_variables — they will be visible in the browser bundle.
| Command | Description |
|---|---|
npm run dev |
Start the local development server at http://localhost:5173 |
npm run build |
Build the production-ready site into dist/ |
npm run preview |
Preview the production build locally before deploying |
npm run lint |
Run ESLint across the codebase |
npm run typecheck |
Run TypeScript type checking without emitting files |
💡 Always run
npm run buildand verify it passes with no errors before opening a pull request.
Contributions are what make this project — and the African DevOps community — thrive. Whether you're fixing a typo, improving accessibility, building a new feature, or updating content, every contribution matters.
- 🛠️ Build something — clone the repo, create a branch, and open a PR
- 💬 Start a discussion — have an idea or a question? Open a GitHub Discussion
- 🐛 Report a bug — open a bug report issue
- 💡 Request a feature — open a feature request issue
- 📝 Update content — speaker bios, schedule, photos, copy corrections are all welcome
- Clone the repo and create a branch off
mainusing the naming convention:feat/your-feature-name - Make your changes — follow the code standards in CONTRIBUTING.md
- Run
npm run buildandnpm run lint— both must pass - Open a pull request against
mainwith a clear description and screenshots for any UI changes
Not sure what to work on? Browse open issues or start a discussion — the team is happy to point you in the right direction.
Please read CONTRIBUTING.md for the full guide including branch strategy, PR process, code standards, and how to add shadcn/ui components.
Security issue? Please do not open a public issue. Email us at TODO: security@devopssummit.africa instead.
| Document | Description |
|---|---|
PRD.md |
Full product requirements, architecture, pages, and open TODOs |
CONTRIBUTING.md |
How to contribute, branch strategy, code standards, PR process |
CHANGELOG.md |
History of meaningful changes per release |
SECURITY.md |
How to report security vulnerabilities |
docs/ARCHITECTURE.md |
Key technical decisions and why they were made |
docs/CMS_SCHEMA.md |
CMS content types, fields, and validation rules |
docs/CONTENT_GUIDE.md |
Guide for non-developer contributors updating content |
Some of these documents are works in progress. See the open TODO items in PRD.md.
The Africa DevOps Summit is organised by the Nairobi DevOps Community — a grassroots community of DevOps practitioners across Africa.
- 🌐 Website: devopssummit.africa
- 🐦 Twitter / X:
TODO: @handle - 💼 LinkedIn:
TODO: LinkedIn page - 💬 Community chat:
TODO: Link to Discord / Slack / WhatsApp community - 📧 General enquiries:
TODO: hello@devopssummit.africa
This project is licensed under the MIT License — see the LICENSE file for details.
Built with ❤️ by the African DevOps community.