An open API service indexing awesome lists of open source software.

https://github.com/jirzykerklaan/tep-cms

A fast, file-based content management system that's perfect for modern, static and dynamic websites.
https://github.com/jirzykerklaan/tep-cms

cms content-management-system ejs file-based-cms flat-file json typescript

Last synced: 2 months ago
JSON representation

A fast, file-based content management system that's perfect for modern, static and dynamic websites.

Awesome Lists containing this project

README

          


TEP CMS Logo

## ๐Ÿ“š Table of Contents

- [Features](#features)
- [Installation](#installation)
- [File Structure](#file-structure)
- [Developer tips](#tips)

[//]: # (- [Suggestions or Issues](#contribute))

๐Ÿ“ฆ Features

- โšก **File-based Content** โ€“ no DB needed.
- ๐Ÿงฑ **Reusable Blocks** โ€“ with a modular `page_builder`.
- ๐Ÿ“ **Organized Assets** โ€“ with a modern media library.
- ๐ŸŽจ **SCSS Styling** โ€“ modular, maintainable styles.
- ๐Ÿงช **Easy Local Dev** โ€“ run with nearly zero setup.
- ๐Ÿš€ **Lightweight & Fast** โ€“ powered by Express & EJS.
- ๐Ÿ‘ฅ **Multiple users** โ€“ allows the user to have multiple accounts.
- ๐Ÿ•™ **Content scheduler** - plan when a post should be released
- ๐Ÿ”– **Content versioning** - configurable content versioning of entries
- ๐Ÿงฉ **Headless mode** - use headless mode to implement TEP anywhere
- ๐Ÿ”Œ **Plugins** - easy management for a variety of plugins

๐Ÿ›  Installation

1. Clone the repo and install dependencies:
```bash
npm install
```
2. Copy the example config and customize it:
```bash
cp config.example.ts config.ts
```
3. Run the development server
```bash
npm run dev
```
4. Build for production
```bash
npm run prod
```

File Structure

```bash
tep-cms/
โ”œโ”€โ”€ content/
โ”‚ โ”œโ”€โ”€ collections/ # All collections (pages, blogs etc.)
โ”‚ โ”œโ”€โ”€ globals/ # Global site settings (header, footer settings etc.)
โ”‚ โ”œโ”€โ”€ navigation/ # Navigation menu's
โ”‚ โ””โ”€โ”€ schemas/ # Collections & globals schemas
โ”œโ”€โ”€ core/
โ”‚ โ”œโ”€โ”€ interfaces/ # Interface exports
โ”‚ โ”œโ”€โ”€ manager/
โ”‚ โ”‚ โ”œโ”€โ”€ controllers/ # Manager route controllers.
โ”‚ โ”‚ โ”œโ”€โ”€ helpers/ # Manager route helpers.
โ”‚ โ”‚ โ””โ”€โ”€ services/ # Manager controller services.
โ”‚ โ”œโ”€โ”€ middlewares/ # Global middleware
โ”‚ โ”œโ”€โ”€ services/ # Route services
โ”‚ โ””โ”€โ”€ validation/ # Validation system
โ”œโ”€โ”€ public/
โ”‚ โ”œโ”€โ”€ assets/
โ”‚ โ”‚ โ”œโ”€โ”€ base/ # Static theme images, icons, etc.
โ”‚ โ”‚ โ””โ”€โ”€ uploads/ # Uploaded images, icons, etc.
โ”‚ โ””โ”€โ”€ css/ # Compiled SCSS styling
โ”œโ”€โ”€ src/
โ”‚ โ”œโ”€โ”€ blocks/ # Page_builder blocks & components
โ”‚ โ”œโ”€โ”€ plugins/ # Installed plugins
โ”‚ โ”œโ”€โ”€ requests/ # Request validators
โ”‚ โ”œโ”€โ”€ routes/ # System routing
โ”‚ โ”œโ”€โ”€ templates/
โ”‚ โ”‚ โ”œโ”€โ”€ layouts/ # Page layouts
โ”‚ โ”‚ โ”œโ”€โ”€ manager/ # /manager views
โ”‚ โ”‚ โ””โ”€โ”€ views/ # Public views
โ”‚ โ”œโ”€โ”€ types/ # Package definitions
โ”‚ โ””โ”€โ”€ utils/ # Utility functions
โ”œโ”€โ”€ styles/ # SCSS styling
โ”œ config.ts
โ”” server.ts
```

๐Ÿงช Development Tips

- Use version control to track content
- Turn off caching during the development fase
- [error codes](.github/docs/error-codes.md)

[//]: # (

๐Ÿ™‹ Suggestions or Issues

)

[//]: # ()
[//]: # (If you find bugs or have suggestions, feel free to open an [issue](https://github.com/JirzyKerklaan/tep-cms/issues/new).)