From 995ad6a1845ad6762e93a2f5cd72ca768558849d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9CPaulo?=
Date: Tue, 1 Oct 2024 16:20:05 -0300
Subject: [PATCH 1/4] better docs
---
README.md | 55 ++++++++++++++++++++++----------
files/images/blog/post-test.jpg | Bin 115361 -> 117217 bytes
2 files changed, 38 insertions(+), 17 deletions(-)
diff --git a/README.md b/README.md
index 49ba045..8f2ab0a 100644
--- a/README.md
+++ b/README.md
@@ -4,23 +4,44 @@
- Python Static Site Generator
+ Python Static Site Generator for Serverless Applications π
-# κάκΟΞΏΟ
+# κάκΟΞΏΟ - Kaktos
[](https://github.com/paulocoutinhox/kaktos/actions/workflows/build.yml)
-Kaktos is a Python Static Site Generator.
+Kaktos is a powerful **Python Static Site Generator** designed to create highly efficient **serverless** applications. Why pay for hosting when you can deploy a completely static site for free?
-The idea is create a simple static site generator for people that don't need server-side languages.
+Create beautiful static websites, e-commerce stores, blogs, landing pages, and sales pages with **advanced pagination** and **dynamic features**, all without the hassle of server-side dependencies! π»
-Designers can use it too, since it don't need people that know a programming language.
+## β¨ Features
-## Demo
+- **Static Website Generator** β Create responsive, fast, and secure static sites πΌοΈ
+- **Static E-commerce** β Build fully functioning static shopping websites π
+- **Static Blog** β Advanced blog with pagination and dynamic content π
+- **Landing Pages & Sales Pages** β Perfect for creating high-conversion pages for any purpose ποΈ
+- **Easy to Use** β Intuitive design that requires no server-side programming π‘
+- **Serverless** β Deploy to platforms like Netlify, Cloudflare, or Render with no need for server management βοΈ
+- **Many Free Hosting Options** β Many companies offer free hosting for static sites, as no server-side processing is required π
+- **Fast & Secure** β Static sites are inherently faster and more secure β‘
+- **No Hosting Fees** β Fully serverless deployment means **no hosting costs** π
+- **SEO Optimized** β Generate clean, SEO-friendly pages π΅οΈββοΈ
+- **Customizable Templates** β Based on the powerful Jinja2 templating engine π¨
+
+## π€ Why Kaktos?
+
+With **Kaktos**, you can deploy your website without worrying about server management, database configuration, or paying for hosting. Focus on your content, and let Kaktos handle the rest. Enjoy the benefits of a **serverless architecture**, which has become a major trend in web development, reducing operational costs and simplifying the deployment process for companies of all sizes.
+
+- No need to manage infrastructure
+- No ongoing hosting fees
+- Scalable and fast deployment
+- Ideal for websites, blogs, e-commerce, and landing pages
+
+## π¬ Demo
**Cloudflare:**
@@ -42,7 +63,7 @@ Designers can use it too, since it don't need people that know a programming lan
- Python 3.8+
-## Setup
+## π How to Get Started
Install python dependencies:
@@ -50,7 +71,7 @@ Install python dependencies:
python3 -m pip install -r requirements.txt
```
-## Development
+## π» Development
To work in development mode, you only need execute one command:
@@ -62,7 +83,7 @@ When you change any file locally, the server will `process` it again and `auto-r
This command *always force* use development mode, with or without environment variable.
-## Production
+## π Production
To generate production files, you only need execute one command:
@@ -84,7 +105,7 @@ If you want start a web server to test files inside `build` folder use:
python3 kaktos.py serve
```
-## Deploy
+## π¦ Deploying with One Click
**Netlify:**
@@ -94,7 +115,7 @@ python3 kaktos.py serve
[](https://render.com/deploy?repo=https://github.com/paulocoutinhox/kaktos/tree/render-support)
-## Structure
+## ποΈ Project Structure
- `kaktos.py` = main file that process your command
- `requirements.txt` = python dependency list
@@ -106,19 +127,19 @@ python3 kaktos.py serve
- `files` = folder that contains all assets and custom files
- `extras/config` = folder that contains some configurations for dynamic sample data
-## Commands
+## π§ Commands
Each command supported by **Kaktos** is a Python file located in the `modules/commands/` folder.
To add new commands, simply create a new Python file in the `modules/commands/` folder and implement the `def run(params={})` method within it.
-## Templates
+## π Templates
All templates (html files) are based on Jinja2 library. You can see it here:
https://jinja.palletsprojects.com/en/3.0.x/
-## Troubleshooting
+## π οΈ Troubleshooting
#### **β’ Python version**
@@ -137,17 +158,17 @@ Invalid Jinja2 syntax can prevent your HTML template from being built.
Check your terminal to see the error message, the HTML file and the line number where invalid syntax was detected.
-## Buy me a coffee
+## β Buy me a coffee
-## Images
+## πΌοΈ Images
All images for demo i got from:
https://unsplash.com/
-## License
+## π License
[MIT](http://opensource.org/licenses/MIT)
diff --git a/files/images/blog/post-test.jpg b/files/images/blog/post-test.jpg
index 74fb513778884208b9501f156bfe69a181e0b797..883337ef42bf7c64ce2e68c4114c013bf54b980a 100644
GIT binary patch
literal 117217
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