CodeIgniter to opensourcowy (licencja własna, zbliżona do BSD), obiektowo zorientowany framework (czyli szkielet aplikacji i zestaw gotowych do wykorzystania komponentów) do tworzenia oprogramowania internetowego (webowego) w języku PHP. Opiera się na popularnym wzorcu MVC (Model-Widok-Kontroler), zakładającym podział aplikacji na trzy warstwy: modelu (przechowywanie danych), widoku (prezentacja wyników działania aplikacji, np. na ekranie) i kontrolera (główna logika aplikacji oraz dostęp do danych i interakcja z użytkownikiem). Rozbudowę funkcjonalności CodeIgnitera ułatwia system wtyczek (pluginów).
CodeIgniter oferuje nam szeroką funkcjonalność w warstwach modelu i kontrolera; możemy więc korzystać z mapera relacyjno-obiektowego i wzorca projektowego
Active Record; pozwalają one na przechowywanie rekordów danych z bazy (np. SQL-owej) w formie obiektowej, a także zapewniają metody pozwalające na łatwą aktualizację, usuwanie i tworzenie rekordów. Framework współpracuje także z różnymi interfejsami bazodanowymi, które unifikują dostęp do baz danych; mamy więc obsługę PDO (natywny, wbudowany do PHP5.2 interfejs) i ADOdb. CodeIgniter umożliwia nam również pobieranie danych o lokalizacji komputerów z serwisu GeoIP, odbieranie poczty elektronicznej (POP3 oraz IMAP), współpracę z arkuszem kalkulacyjnym Microsoft Excel, obsługę sesji, walidację danych, rozpakowywanie archiwów, parsowanie XML-a czy odczyt kanałów RSS. Bardzo przydatny jest także rozbudowany mechanizm logowania i autoryzacji użytkowników.
W warstwie widoku, CodeIgniter pozwala nam na korzystanie z systemu szablonów (ang. templates) TinyButStrong lub Yet Another Template System oraz technologii AJAX, służącej do tworzenia dynamicznych witryn internetowych. Generowany kod stron WWW jest zgodny ze standardem XHTML.
W wersji 1.5.4 rozbudowano wielojęzyczność i obsługę typów MIME, poprawiono bezpieczeństwo aplikacji (m.in. ochronę przed atakami XSS i walidację adresów IP) oraz usunięto sporo błędów, związanych m.in. z generowaniem formularzy, rozpakowywaniem archiwów ZIP, wyświetlaniem znaków lokalnych czy tworzeniem URL-i.