Skip to content

Latest commit

 

History

10,268 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Epesi Logo

An open-source PHP framework and CRM that generates its own UI — so you can build business modules by describing them, not by hand-coding views.

SourceForge downloads PHP 8.0 or newer (8.2 recommended) MIT License


What is Epesi?

Epesi is a module framework with a full CRM built on top of it — a Progressive Web App you install on your own server, then extend. Out of the box you get Contacts, Companies, Calendar, E-mail, Tasks, Phonecalls and a dashboard you can rearrange per user. Because it's a framework underneath, that CRM is also a starting point: add the modules your business actually needs and Epesi grows into a full ERP — inventory, invoicing, project tracking, whatever your domain requires — without you starting from an empty repo.

The core idea: a module author declares what a record looks like — field names, types, relationships — in a plain PHP array, and the framework (Utils_RecordBrowser) generates the add/edit/view/browse/search/filter/ACL screens for it automatically. No HTML, no CSS, no JavaScript to write for the common case — the framework produces a working, responsive UI from the declaration. See AI-shared/design-philosophy.md for the reasoning behind this, straight from the framework's creator.

Gallery

Dashboard with configurable widgets Dark mode theme
Configurable per-user dashboard Built-in dark mode
Contacts browser Companies browser
Contacts — generated list, search & filters Companies — same generated CRUD, different table
Calendar Roundcube webmail integration
Calendar — day/week/month/agenda views Built-in webmail (Roundcube) embedded in the UI
Contacts browser on a phone, portrait Contacts browser on a phone, landscape
PWA on a phone — same generated grid, responsive layout Landscape

New: AdminLTE theme, mobile-friendly out of the box

The UI has been rebuilt on top of AdminLTE/Bootstrap (adminltedark, now the default theme for new installs) — a modern sidebar layout, built-in dark mode, and consistent styling across every screen, replacing the framework's older default theme.

That rebuild included a generic mobile/responsive pass across the whole framework, not a per-module patch: the same data-grid component every Utils_RecordBrowser/ Utils_GenericBrowser list uses (Contacts, Companies, Login Audit, any module you build) reflows into a compact two-line-per-row layout below the tablet breakpoint, non-essential columns (row actions, favorites/watchdog toggles) collapse into a kebab menu, and the sidebar, search, and filter bars all adapt to portrait/landscape phone viewports — see the mobile gallery shots above, taken straight from a phone. Because this lives in the shared grid/theme layer, a module author gets the mobile layout for free the same way they get the desktop one: by declaring fields, not by writing responsive CSS. See AI-shared/adminlte-theme.md and AI-shared/generic-browser-responsive-tables.md for the implementation history.

Why developers like it

  • No boilerplate CRUD. Declare a table's fields once and get a full data grid with search, filtering, sorting, CSV export, printing, and ACL for free.
  • Batteries included. CRM out of the box (Contacts, Companies, Calendar, Tasks, Phonecalls), plus webmail, Watchdog notifications, Shoutbox chat, and a Telegram integration — all real modules you can read as reference implementations.
  • PWA, zero client install. Runs in any modern browser, installable to a home screen, no desktop client to distribute or update.
  • Ordinary LAMP stack. PHP 8.0+ (8.2 recommended) + MySQL or PostgreSQL. No build step — modules/ and theme*/ are served directly, nothing to compile or bundle.
  • AI-agent ready. This repo is set up to be productively worked on by an AI coding agent from the first clone — see below.

Build modules in plain English with an AI agent

This repository ships pre-trained for AI-assisted development. AI-shared/ is a git-tracked knowledge base — architecture rationale, the module-authoring tutorial, known bug patterns, deliberate design decisions that look like bugs but aren't — written specifically so an AI agent (or a new developer) starting from a fresh clone doesn't have to rediscover the framework's conventions from scratch. Combined with CLAUDE.md at the repo root, an agent can go from a plain-English feature request to a working module respecting this codebase's actual conventions, not generic PHP idioms.

Recommended setup:

  1. Clone this repo.
  2. Open it in VS Code.
  3. Install the Claude Code extension and point it at the checkout.

From there, describe the module you want in plain English. The agent reads CLAUDE.md and AI-shared/ first, so it already knows the module anatomy (Install/Common/Main classes), Utils_RecordBrowser field types, the patch system for upgrading existing installs, and where AdminLTE theming does and doesn't apply.

See it for yourself: modules/Custom/Tutorial/ is a complete, working module built entirely by Claude, from a plain-English brief, following AI-shared/Dev-Tutorial.md. It demonstrates every RecordBrowser field type, a lookup table, and an addon tab in one real example — read it side by side with the tutorial to see the pattern an agent follows for any new module.

Getting started

If you just want to run Epesi:

If you want to develop your own modules:

git clone https://github.com/jtylek/epesi.git
cd epesi
composer install

Requires a LAMP-style stack — PHP 8.0+ (8.2 recommended) and MySQL or PostgreSQL. Point your web server's document root at the checkout and open it in a browser to run the setup wizard. See CLAUDE.md for the full architecture, local commands (lint, static analysis, console tooling), and environment notes.

Documentation map

File What it's for
CLAUDE.md Architecture, bootstrap chain, module system, commands — read first
AI-shared/ Living notes: feature status, tutorials, bug patterns, environment gotchas
AI-shared/Dev-Tutorial.md How to write a module from scratch, paired with modules/Custom/Tutorial/
AI-shared/design-philosophy.md The founding principle: business logic in PHP, view generated for you
AI-shared/MIGRATION_NOTES.md PHP 7.4 → 8.2 migration log — root causes and decisions

Support

License

Epesi is released under the MIT License.

Copyright © 2006-2026 by Janusz Tylek and Karina Tylek

LinkedIn: Janusz · LinkedIn: Karina

About

An open-source PHP framework and CRM that generates its own UI

Topics

Resources

Stars

40 stars

Watchers

5 watching

Forks

Contributors

Languages