Skip to content

Commit 46d88b3

Browse files
committed
UPD What IS Section (all items)
1 parent 76d7ede commit 46d88b3

24 files changed

+965
-513
lines changed

docs/content/what-is/asgi.mdx

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title : What IS ASGI
3+
sidebar_label : What IS ASGI
4+
---
5+
6+
# What IS ASGI
7+
8+
<SubHeading>Short introduction to ASGI (Asynchronous Server Gateway Interface).</SubHeading>
9+
10+
ASGI stands for "Asynchronous Server Gateway Interface." It is a standard interface or protocol for building asynchronous web applications in Python.
11+
ASGI is designed to address the limitations of the traditional WSGI (Web Server Gateway Interface) when it comes to handling concurrent and long-lived connections,
12+
making it suitable for real-time and asynchronous web applications.
13+
14+
> **Key points about ASGI include**
15+
16+
## **Asynchronous Programming**
17+
18+
ASGI is built on the principles of asynchronous programming, which allows web applications to handle multiple incoming requests concurrently without blocking.
19+
This is particularly important for applications that involve real-time communication, such as chat applications, online gaming, and streaming services.
20+
21+
## **Concurrency**
22+
23+
ASGI servers can efficiently handle a large number of concurrent connections, making them suitable for applications with high traffic or many simultaneous users.
24+
25+
## **WebSocket Support**
26+
27+
ASGI includes support for WebSocket communication, which enables full-duplex communication between clients and servers, making it suitable for real-time applications that require bidirectional data flow.
28+
29+
## **Compatibility**
30+
31+
ASGI is designed to be compatible with existing web frameworks and libraries.
32+
Many popular Python web frameworks and libraries have ASGI adapters or support, allowing developers to migrate existing applications to ASGI or build new ones from scratch.
33+
34+
## **ASGI Servers**
35+
36+
Various ASGI servers are available, including Daphne, Uvicorn, Hypercorn, and more.
37+
These servers are responsible for handling incoming HTTP requests, managing WebSocket connections, and routing traffic to ASGI applications.
38+
39+
## **Middleware**
40+
41+
ASGI supports middleware components that can be used to add functionality to an ASGI application's request and response flow, similar to how middleware works in WSGI-based applications.
42+
43+
## **Framework Agnostic**
44+
45+
ASGI is not tied to any specific web framework or library, which means developers have the flexibility to choose the framework that best suits their project while using the same ASGI-compatible server.
46+
47+
## **Performance**
48+
49+
ASGI's asynchronous nature allows for efficient resource usage and improved performance, making it well-suited for modern web applications and APIs.
50+
51+
## **Scalability**
52+
53+
ASGI applications can be horizontally scaled to handle increased traffic by deploying multiple instances of the application behind a load balancer.
54+
55+
## **Long Polling**
56+
57+
ASGI is well-suited for long polling, which is a technique used to simulate real-time updates in web applications by holding connections open until new data is available.
58+
59+
## ✅ In Summary
60+
61+
While ASGI is gaining popularity and is particularly well-suited for building real-time and high-concurrency web applications,
62+
it may have a steeper learning curve compared to traditional WSGI for developers who are new to asynchronous programming.
63+
64+
However, it offers significant advantages in terms of performance and scalability for applications that require handling a large number of concurrent connections or real-time communication.
65+
66+
## ✅ Resources
67+
68+
- 👉 Access [AppSeed](https://appseed.us/) and start your next project
69+
- 👉 [Deploy Projects on Aws, Azure and Digital Ocean](https://www.docs.deploypro.dev/) via **DeployPRO**
70+
- 👉 Create an amazing landing page with [Simpllo, an open-source site builder](https://www.simpllo.com/)
71+
- 👉 [Django App Generator](https://app-generator.dev/django/) - A 2nd generation App Builder

docs/content/what-is/boilerplate-code.mdx

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,59 @@ sidebar_label : What IS Boilerplate Code
77

88
<SubHeading>Reusable software (boilerplate code) - a short introduction.</SubHeading>
99

10-
In programming, **boilerplate code** is a piece of software that can be reused without changing much.
11-
The whole idea behind a starter (sometimes boilerplate code) is to skip coding that piece of code common to many projects.
10+
Boilerplate code refers to sections of code that are repeated in multiple places in a software project with little or no alteration.
11+
This code is often necessary to achieve common tasks, set up basic structures, or follow conventions, but it does not directly contribute to the core functionality or uniqueness of the application.
1212

13-
- [Boilerplate Code](https://en.wikipedia.org/wiki/Boilerplate_code) - Wikipedia page
14-
- [Boilerplate Code](https://appseed.us/boilerplate-code) - page hosted by AppSeed
13+
Instead, it provides a foundation or framework upon which developers can build their specific features.
1514

16-
<br />
15+
> Here are some **key characteristics and aspects of boilerplate code**:
1716
18-
AppSeed workflow uses boilerplate code to generate usable, production-ready starters.
17+
## **Repetitive**
1918

20-
> Boilerplate code provided and actively supported by AppSeed:
19+
Boilerplate code is repetitive by nature. It appears in multiple places throughout a codebase, often with slight variations to accommodate specific requirements or configurations.
2120

22-
- [Flask Dashboard Starter](https://github.com/app-generator/boilerplate-code-flask-dashboard) - database, ORM, Blueprints, and deployment scripts
23-
- [Django Dashboard Starter](https://github.com/app-generator/boilerplate-code-django-dashboard) - SQLite, Session-based Authentication, Deploy
24-
- [Boilerplate Code 11ty](https://github.com/app-generator/boilerplate-code-11ty) - Eleventy Seed project
21+
## **Standardized**
2522

26-
## ✅ Sample Project
23+
Boilerplate code typically adheres to coding standards, best practices, or conventions established within a programming language, framework, or development environment. It ensures consistency and maintainability across the codebase.
2724

28-
Volt Dashboard Django - open-source dashboard generated by AppSeed in [**Django**](https://appseed.us/admin-dashboards/django) Framework.
29-
Volt Dashboard is a free and open source [**Bootstrap 5**](https://appseed.us/product/volt-dashboard/django/) Admin Dashboard featuring over 100 components, 11 example pages and 3 plugins with Vanilla JS.
25+
## **Non-Unique**
3026

31-
There are more than 100 free Bootstrap 5 components included some of them being buttons, alerts, modals, datepickers, etc.
27+
Boilerplate code is not unique to a particular application or project. It is shared among many projects and developers working in the same technology stack.
3228

33-
- [Django Bootstrap 5 Volt](https://appseed.us/product/volt-dashboard/django/) - `Product Page`
34-
- [Django Bootstrap 5 Volt - Demo](https://django-volt-dashboard.appseed-srv1.com/) - `LIVE Deployment`
29+
## **Initialization**
3530

36-
![Volt Django - Open-source Boilerplate Code](https://github-production-user-asset-6210df.s3.amazonaws.com/51070104/268995581-18f6d8f5-0dae-4b41-ab8f-8ffb04651c32.png)
31+
Boilerplate code often handles initialization, setup, or configuration tasks. For example, it may include code for setting up a database connection, configuring a web server, or defining the basic structure of a class or module.
3732

38-
## ✅ Resources
33+
## **Redundancy**
34+
35+
While boilerplate code serves a valuable purpose, it can be considered redundant because it doesn't directly contribute to the unique functionality or business logic of an application. It's necessary but repetitive.
36+
37+
## **Maintenance Overhead**
38+
39+
Maintaining boilerplate code can be time-consuming, as any changes or updates must be made in multiple places within the codebase. This can increase the likelihood of errors and inconsistencies.
40+
41+
## **Readability**
42+
43+
While boilerplate code can make codebases more consistent, it can also make code harder to read and understand, especially for developers who are new to the project or technology.
44+
45+
## ✅ Examples of boilerplate code:
46+
47+
- Importing standard libraries or modules at the beginning of a file.
48+
- Defining class or function templates with placeholder code.
49+
- Setting up routing configurations in web applications.
50+
- Writing code to establish database connections or execute common database queries.
51+
- Including license headers and comments in source code files.
52+
53+
## ✅ In Summary
54+
55+
To address the challenges posed by boilerplate code, developers often use various techniques and tools, such as code generators, templates, and code scaffolding tools.
56+
These tools can automate the generation of repetitive code, reducing the burden of writing and maintaining boilerplate code manually.
57+
58+
Additionally, some programming languages and frameworks have adopted features or patterns that aim to minimize the need for boilerplate code, promoting cleaner and more concise codebases.
59+
60+
## ✅ Resources
3961

4062
- 👉 Access [AppSeed](https://appseed.us/) and start your next project
4163
- 👉 [Deploy Projects on Aws, Azure and Digital Ocean](https://www.docs.deploypro.dev/) via **DeployPRO**
4264
- 👉 Create an amazing landing page with [Simpllo, an open-source site builder](https://www.simpllo.com/)
43-
- 👉 [Django App Generator](https://app-generator.dev/django/) - A 2nd generation App Builder
65+
- 👉 [Django App Generator](https://app-generator.dev/django/) - A 2nd generation App Builder

docs/content/what-is/centos.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ sidebar_label : What IS CentOS
77

88
<SubHeading>CentOS is a Linux distribution that provides a free, community-supported computing platform.</SubHeading>
99

10-
CentOS, which stands for "Community ENTerprise Operating System," was a Linux distribution that aimed to provide a free, open-source, and community-supported alternative to Red Hat Enterprise Linux (RHEL).
10+
[CentOS](https://www.centos.org/), which stands for "Community ENTerprise Operating System," was a Linux distribution that aimed to provide a free, open-source, and community-supported alternative to Red Hat Enterprise Linux (RHEL).
1111
CentOS was developed by the CentOS Project and was known for its stability, security, and long-term support, making it a popular choice for server environments.
1212

1313
![What IS CentOS - Tutorial provided by AppSeed.](https://user-images.githubusercontent.com/51070104/235929403-b0825364-9172-492b-9d41-87640adfc9e9.png)

docs/content/what-is/django.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ sidebar_label : What IS Django
77

88
<SubHeading>Short introduction to Django</SubHeading>
99

10-
Django is a high-level, open-source web framework written in Python that enables developers to build web applications quickly and with a clean, pragmatic design.
10+
[Django](https://www.djangoproject.com/) is a high-level, open-source web framework written in Python that enables developers to build web applications quickly and with a clean, pragmatic design.
1111
It follows the "batteries-included" philosophy, providing a comprehensive set of tools and libraries that simplify common web development tasks, such as handling databases, managing user authentication,
1212
and generating HTML templates.
1313

docs/content/what-is/eleventy.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ sidebar_label : What IS Eleventy
77

88
<SubHeading>Short introduction to Eleventy (11ty)</SubHeading>
99

10-
Eleventy, often written as "11ty," is a static site generator (SSG) that simplifies the process of building static websites and web applications.
10+
[Eleventy](https://www.11ty.dev/), often written as "11ty," is a static site generator (SSG) that simplifies the process of building static websites and web applications.
1111
It is an open-source tool designed to be simple, flexible, and highly customizable. Eleventy is known for its speed, ease of use, and support for various templating engines and data sources.
1212

1313
![What IS Eleventy (11ty) - Tutorial provided by AppSeed.](https://github-production-user-asset-6210df.s3.amazonaws.com/51070104/269019808-cca28df3-bc2a-4ea8-866c-7ccf8c00fea5.jpg)

docs/content/what-is/flask.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ sidebar_label : What IS Flask
77

88
<SubHeading>Short introduction to Flask</SubHeading>
99

10-
**Flask** is a lightweight **WSGI** web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications.
10+
**[Flask](https://palletsprojects.com/p/flask/)** is a lightweight **WSGI** web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications.
1111
Classified as a microframework, Flask is written in Python and it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions.
1212

1313
Compared to his older brother [Django](https://www.djangoproject.com/), Flask provides a lightweight codebase and more freedom to the developer. This might be a good thing because you have more freedom in terms of app design and structure but at the same time, this freedom might inject problems when your application becomes complex.
1414

15-
## ✅ Set up PC for [Flask](https://palletsprojects.com/p/flask/)
15+
## ✅ Set up PC for Flask
1616

1717
Being a Python framework, Flask requires Python to run and expose his magic. Flask is compatible with Python2, Python3 (the recommended version).
1818

docs/content/what-is/heroku.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ sidebar_label : What IS Heroku
66
# What IS Heroku
77

88
<SubHeading>Short introduction to HEROKU</SubHeading>
9-
HEROKU is a popular Platform-as-a-Service provider (PaaS) which makes it easy for developers to deploy apps in different technologies and frameworks using a short learning curve.
9+
10+
**[HEROKU](https://www.heroku.com/)** is a popular Platform-as-a-Service provider (PaaS) which makes it easy for developers to deploy apps in different technologies and frameworks using a short learning curve.
1011
The platform support all major languages like Python, Ruby, Java, PHP, and popular frameworks: Flask,Django, Express.
1112

1213
To use effectively HEROKU we need to install the CLI, the command line interface that helps us to interact with the deployment platform.

docs/content/what-is/jamstack.mdx

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,60 @@
11
---
2-
sidebar_position: 10
3-
description: Short introduction to JAMstack
2+
title : What IS JAMStack
3+
sidebar_label : What IS JAMStack
44
---
55

66
# What IS JAMStack
77

88
<SubHeading>Short introduction to JAMstack</SubHeading>
99

10-
Modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup
10+
JAMstack is a modern web development architecture and methodology that stands for JavaScript, APIs, and Markup.
11+
It represents a shift in how web applications and websites are built and delivered.
1112

12-
### JAMstack - Short Introduction
13+
![What IS JAMStack - Tutorial provided by AppSeed.](https://github-production-user-asset-6210df.s3.amazonaws.com/51070104/269188374-322db117-586a-49d1-b0e5-112eedd0aec0.jpg)
1314

14-
Apps built in Jamstack architecture met the following criteria:
15+
> Here's a **breakdown of each component of JAMstack**:
1516
16-
- **JavaScript**, any dynamic programming during the request/response cycle is handled by JavaScript, running entirely on the client
17-
- **APIs**, all server-side processes or database actions are abstracted into reusable APIs, accessed over HTTPS with JavaScript
18-
- **Markup**, templated markup should be prebuilt at deploy time, usually using a site generator for content sites, or a build tool for web apps
17+
## **JavaScript (JS)**
1918

20-
### Why using a JAMstack app?
19+
JavaScript is used for client-side functionality and interactivity in JAMstack applications.
20+
It typically handles tasks such as user interface enhancements, form handling, and dynamic content rendering in the browser.
21+
JAMstack projects often use modern JavaScript frameworks like React, Vue.js, or Angular for this purpose.
2122

22-
The major advantages met by the JAMstack pattern are:
23+
## **APIs**
2324

24-
- Apps are much faster because there is no more dynamic build of the pages
25-
- Security - a static app with less API endpoints reduce allot the risk of being hacked
26-
- Better developer experience - using a JAMstack app a developer needs only a simple editor and a console to create and deploy an app
25+
APIs (Application Programming Interfaces) play a crucial role in JAMstack. They provide the dynamic functionality and data retrieval needed for web applications.
26+
These APIs can be third-party services, serverless functions, or custom-built endpoints that deliver data in a structured format (usually JSON) for consumption by the frontend.
2727

28-
### Sample JAMstack App
28+
## **Markup**
2929

30-
For instance, let's build a sample JAMstack app by getting the source code from [Github](https://github.com/search?q=jamstack+fractal). Let's pick up the first result, open the [README](https://github.com/app-generator/jamstack-fractal/blob/master/README.mdx) file and follow the intructions provided:
30+
Markup refers to the pre-built, static HTML files that make up the core content and structure of a JAMstack site.
31+
These files are generated at build time, meaning they don't change unless you explicitly rebuild the site.
32+
This static nature has several benefits, including better performance, security, and scalability.
3133

32-
```
33-
$ git clone https://github.com/app-generator/jamstack-fractal.git
34-
$ cd jamstack-fractal
34+
## ✅ JAMstack Advantages
3535

36-
$ yarn # install modules
37-
$ yarn start # start the app for development
36+
- **Performance:** Static files are served directly from content delivery networks (CDNs), which are optimized for speed and global distribution. This results in faster load times.
3837

39-
$ yarn build # build for production
40-
```
38+
- **Security:** Since there's no server-side code execution in the traditional sense, many common security vulnerabilities are mitigated.
4139

42-
If all goes well, the app can be visited on `http://localhost:8000` As we can see, building an app in JAMstack architecture is quite an easy job.
40+
- **Scalability:** Scaling static assets is straightforward because CDNs can handle large amounts of traffic easily.
4341

44-
### Related Resources
42+
- **Developer Experience:** Separating the frontend from the backend allows for a clear separation of concerns. Developers can work on the frontend independently, and the deployment process is simplified.
4543

46-
- [JAMstack](https://jamstack.org/) - the website
47-
- [WTF is JAMstack](https://jamstack.wtf/) - an well-known resource fpr JAMstack developers
48-
- [Apps built in JAMstack](https://appseed.us/apps/jamstack) - index provided by AppSeed
49-
- Open-Source [JAMstack Apps](https://github.com/app-generator/jamstack) published on [Github](https://github.com/search?q=jamstack)
50-
- [Landed](https://appseed.us/apps/jamstack/html5up-landed) a very popular open-source app designed by **Html5 Up** and coded in JAMstack architecture
44+
- **Maintainability:** JAMstack sites are easier to maintain and update because changes can be made to the content or frontend without worrying about the backend infrastructure.
45+
46+
- **Reduced Hosting Costs:** Hosting static files on CDNs is often more cost-effective than traditional server-based hosting.
47+
48+
## ✅ In Summary
49+
50+
While JAMstack has many advantages, it's not suitable for every type of web application.
51+
It works best for content-driven sites, blogs, e-commerce stores, and other projects where most of the content is relatively static and doesn't require real-time updates.
52+
53+
For more dynamic applications, JAMstack can be combined with serverless functions or other backend services to handle specific functionalities while still benefiting from the overall architecture.
54+
55+
## ✅ Resources
56+
57+
- 👉 Access [AppSeed](https://appseed.us/) and start your next project
58+
- 👉 [Deploy Projects on Aws, Azure and Digital Ocean](https://www.docs.deploypro.dev/) via **DeployPRO**
59+
- 👉 Create an amazing landing page with [Simpllo, an open-source site builder](https://www.simpllo.com/)
60+
- 👉 [Django App Generator](https://app-generator.dev/django/) - A 2nd generation App Builder

0 commit comments

Comments
 (0)