Skip to main content

118 docs tagged with "beginners"

View all tags

Architecture & Best Practices

Organising CSS for maintainability -- BEM naming, file structure, CSS resets vs normalisers, utility classes, component-scoped styles, and preprocessor overview.

Arrays

Learn JavaScript arrays -- creating, accessing, mutating, iterating with map/filter/reduce, destructuring, and the spread operator.

Authentication & Permissions

The Users & Permissions plugin, JWT authentication, user registration, roles, API tokens, and controlling access to your Strapi API.

Backgrounds, Borders & Shadows

CSS background images, gradients, background shorthand, border-radius for rounded corners, box-shadow, text-shadow, and multiple backgrounds.

Building a REST API

Build a REST API with Java's built-in HttpServer -- HTTP basics, request handling, JSON serialization, routing, and exposing the task manager over HTTP.

Building a Web Application

Build a complete Notes application with registration, login, CRUD operations, routing, templates, and database integration using concepts from the entire guide.

Building Pages

Using Core Components, the responsive grid, navigation, header and footer, building a homepage and article page, and page properties.

Classes & Objects

Learn Java OOP basics -- classes, objects, constructors, access modifiers, encapsulation, toString, equals/hashCode, static members, and records.

Client Libraries

CSS and JS management in AEM -- clientlib structure, categories, dependencies, embedding, proxy serving, and the ui.frontend module.

Collections

Learn Java collections -- ArrayList, HashMap, HashSet, iterating, generics, immutable collections, and choosing the right collection.

Collections

Vec for dynamic arrays, String for owned UTF-8 text, and HashMap for key-value storage -- creating, accessing, iterating, and common patterns.

Colors & Typography

CSS colour formats (named, hex, rgb, hsl), opacity, font properties, text styling, web-safe fonts, and loading Google Fonts.

Component Dialogs

Touch UI dialogs with Granite/Coral -- field types, tabs, multifields, image upload, validation, and conditional visibility.

Composer & Packages

Dependency management with Composer, installing packages, PSR-4 autoloading, semantic versioning, and security best practices.

Concurrency

Spawning threads, move closures for threads, message passing with channels (mpsc), shared state with Arc and Mutex, the Send and Sync traits, and an introduction to async/await with tokio.

Configuration & Deployment

Environment-based configuration, PostgreSQL setup, deploying Strapi to a VPS with PM2, nginx reverse proxy, HTTPS, and security hardening.

Content Fragments & GraphQL

Content Fragment Models, creating and managing fragments, the AEM GraphQL API, persisted queries, and headless content delivery.

Content Modeling

Defining collection types, single types, field types, components, and dynamic zones in Strapi 5.

Control Flow

Learn Java control flow -- if/else, switch expressions, for/while/do-while loops, enhanced for-each, break, continue, and common patterns.

Control Flow

Learn how to make decisions and repeat actions in JavaScript with if/else, switch, ternary operators, and loops.

Control Flow

Making decisions with if/else/elseif, switch and match, looping with while, do-while, for and foreach, and combining control structures in real programs.

Control Flow

if/else as expressions, loop, while, for with ranges and iterators, break and continue with labels, early introduction to match, and returning values from blocks.

CSS Custom Properties

CSS custom properties (variables) -- defining, using, scoping, fallback values, theming, building a dark mode toggle, and dynamic updates with JavaScript.

CSS Grid

CSS Grid layout -- defining rows and columns, the fr unit, grid areas, gap, auto-fit/auto-fill, minmax(), and implicit vs explicit grids.

Custom Controllers & Services

Extending Strapi's default CRUD controllers, creating custom actions, delegating business logic to services, and sanitizing output.

Debugging & Common Pitfalls

Using browser DevTools to debug CSS, understanding margin collapse, overflow issues, centring gotchas, z-index problems, and cross-browser testing.

Deploy to a VPS with nginx

Building for release, cross-compilation, creating a systemd service, setting up nginx as a reverse proxy, HTTPS with Let's Encrypt, Docker multi-stage builds, and CI/CD with GitHub Actions.

Deploying to a VPS with Nginx

Deploy your Java REST API to a VPS -- installing the JDK, running as a systemd service, configuring nginx as a reverse proxy, and HTTPS with Let's Encrypt.

Deploying to a VPS with Nginx

Deploy your website to a Virtual Private Server -- server setup, SSH, nginx configuration, HTTPS with Let's Encrypt, and basic security hardening.

Deployment & Cloud Manager

Git repo structure, Cloud Manager pipelines, environments, Rapid Development Environments, content transfer, and going to production.

Dispatcher & Caching

Dispatcher architecture, cache rules, filters, rewrites, vanity URLs, cache invalidation, and local Dispatcher SDK testing.

Display & Positioning

How CSS display modes (block, inline, inline-block) and positioning (static, relative, absolute, fixed, sticky) control element flow and placement.

Docker & Deployment Automation

Containerizing Strapi with Docker, docker-compose for development, and setting up automated deployments with GitHub Actions.

Error Handling

Learn Java error handling -- try/catch/finally, checked vs unchecked exceptions, custom exceptions, try-with-resources, and best practices.

Error Handling

Handle errors gracefully in JavaScript -- try/catch/finally, error types, custom errors, async error handling, and common patterns.

Error Handling

panic! vs recoverable errors, Result in depth, the ? operator, unwrap and expect, custom error types, the From trait for error conversion, the thiserror crate, and when to panic vs return a Result.

Error Handling & Debugging

PHP error levels, configuring error reporting, exceptions with try/catch/finally, custom exception classes, and debugging techniques including Xdebug.

Events & Interactivity

Learn how to handle user interactions in JavaScript -- event listeners, the event object, bubbling, delegation, forms, and keyboard/mouse events.

File I/O

Learn Java file I/O -- Path, Files, reading and writing text files, directories, BufferedReader/Writer, and simple CSV parsing.

Flexbox

CSS Flexbox layout -- flex containers and items, direction, wrapping, alignment, sizing with flex-grow/shrink/basis, gap, and common patterns.

Functions

Learn JavaScript functions -- declarations, expressions, arrow functions, parameters, scope, closures, and callbacks.

Functions

Defining and calling functions, parameters and return values, type declarations, variable scope, closures, arrow functions, and built-in PHP functions.

Functions

Defining functions, parameters and return types, the difference between expressions and statements, implicit returns, the unit type, nested functions, diverging functions, and documentation comments.

Gradle

Learn Gradle with Kotlin DSL -- project structure, dependency management, building fat JARs, and improving the REST API project with Jackson for JSON handling.

HTL Templates

The HTML Template Language in depth -- expressions, block statements, global objects, the Use API, and best practices.

HTML & CSS Essentials

Learn enough HTML and CSS to build web pages -- document structure, semantic elements, forms, CSS selectors, the box model, flexbox, and responsive design.

Inheritance & Interfaces

Learn Java inheritance, method overriding, abstract classes, interfaces, polymorphism, sealed classes, and composition vs inheritance.

Introduction & Environment Setup

What Rust is, why it exists, how it compares to other languages, installing the toolchain with rustup, writing your first program, understanding Cargo, setting up your editor, and reading compiler errors.

Introduction & First Styles

What CSS is, how it works with HTML, the three ways to add styles, the anatomy of a CSS rule, writing your first stylesheet, and a quick look at browser DevTools.

Introduction & Setup

What AEM is, the technology stack (Sling, JCR, OSGi), AEMaaCS vs on-premise, installing the SDK, generating a project with the Maven archetype, and a project structure walkthrough.

Introduction & Setup

What PHP is, how the web works, installing PHP on every major operating system, writing your first script, and understanding the PHP request lifecycle.

Introduction & Setup

What a headless CMS is, why Strapi, installing Strapi 5, understanding the project structure, and your first look at the admin panel.

Iterators & Closures

Closure syntax, capturing variables, Fn/FnMut/FnOnce traits, the Iterator trait, iterator adaptors like map/filter/fold/collect, chaining, lazy evaluation, and the difference between iter, into_iter, and iter_mut.

Lifecycle Hooks & Webhooks

Reacting to content events with Document Service middleware, configuring webhooks, and integrating with external services.

Lifetimes

Why lifetimes exist, lifetime annotations in function signatures and structs, the three lifetime elision rules, the 'static lifetime, and common lifetime patterns and pitfalls.

Managing Content

Using the admin panel to create, edit, and publish content -- drafts, publishing workflow, media library, and bulk operations.

Maven

Learn Apache Maven -- project structure, dependency management, building fat JARs, and improving the REST API project with Gson for JSON handling.

Media & File Uploads

Upload providers, S3 and Cloudinary integration, image optimization, responsive formats, upload validation, and media management.

Methods

Learn Java methods -- defining and calling static methods, parameters, return types, overloading, varargs, scope, and recursion.

Modern CSS Features

Recent CSS additions -- native nesting, the :has() selector, container queries, @layer, logical properties, color-mix(), accent-color, and subgrid.

Modern PHP Features

PHP 8.0 through 8.4 highlights including named arguments, enums, readonly properties, property hooks, and choosing your PHP version.

Modules & Crates

Organizing code with mod, pub, and use, file-based module structure, re-exports, library vs binary crates, workspaces, Cargo.toml dependencies, crates.io, semantic versioning, and feature flags.

Multi-Site Manager & i18n

Blueprints, Live Copies, rollout configurations, language copies, the translation framework, and i18n dictionaries.

Object-Oriented Programming Basics

Classes and objects, properties and methods, constructors, visibility modifiers, getters and setters, static members, class constants, and a practical Product and ShoppingCart example.

Objects

Learn JavaScript objects -- literals, properties, methods, this, destructuring, spread, Object methods, and JSON.

OOP Advanced

Inheritance, abstract classes, interfaces, traits, namespaces, autoloading, and building flexible object-oriented systems.

Operators & Expressions

Learn how PHP combines values with operators -- arithmetic, assignment, comparison, logical, and string concatenation. Understand loose vs strict comparison and operator precedence.

Optionals

Avoid NullPointerException with Java's Optional -- creation, unwrapping, chaining, and best practices for handling missing values.

OSGi Fundamentals

OSGi bundles, services, the component lifecycle, the Web Console, and configuration management in AEM.

Ownership & Borrowing

The stack and the heap, ownership rules, move semantics, the Copy and Clone traits, references and borrowing, mutable references, dangling references, String vs &str, and slices.

Pattern Matching

match exhaustiveness, destructuring structs and enums, if let, while let, the matches! macro, match guards, the wildcard pattern, nested patterns, and matching on Option and Result.

Performance Optimization

Database indexing, query optimization, caching strategies, CDN setup, and monitoring for high-performance Strapi applications.

Practice Projects

Six hands-on projects -- from a simple component to a production Dispatcher config -- to reinforce everything covered in the guide.

Practice Projects

Six hands-on CSS projects from beginner to advanced -- personal profile card, navigation bar, photo gallery, landing page, dashboard layout, and CSS art.

Practice Projects

Six hands-on project ideas -- from beginner to advanced -- to reinforce everything you learned in the PHP Beginners Guide.

Practice Projects

Eight hands-on project ideas -- from beginner to advanced -- to reinforce everything you learned in the Rust Beginners Guide.

Practice Projects

Six hands-on project ideas -- from beginner to advanced -- to reinforce everything you learned in the Strapi 5 Beginners Guide.

Project: Build a Complete Website

Build a multi-page vanilla JavaScript website from scratch -- navigation, theme toggle, form validation, dynamic content, and local storage.

Project: CLI Task Manager

Build a complete command-line task manager in Java -- CRUD operations, file-based persistence, input validation, and packaging as a runnable JAR.

Project: CLI Task Manager

Build a complete CLI application with clap for argument parsing, serde for JSON serialization, file-based storage, proper error handling, and a modular project structure.

Pseudo-classes & Pseudo-elements

CSS pseudo-classes for targeting element states (:hover, :focus, :nth-child) and pseudo-elements for creating virtual content (::before, ::after).

Regular Expressions

Master JavaScript regular expressions -- patterns, character classes, quantifiers, groups, lookaheads, and practical validation examples.

Relations

Defining one-to-one, one-to-many, and many-to-many relations between content types to build a blog data model.

Responsive Design

Building layouts that work on every screen size -- the viewport meta tag, media queries, mobile-first development, breakpoints, responsive images, and fluid typography.

REST API

Strapi's auto-generated REST API -- endpoints, filtering, sorting, pagination, field selection, population, and testing with curl.

REST API with Actix Web

Building a REST API with Actix Web: project setup, routes, handlers, extractors, JSON with serde, application state, middleware, CORS, and connecting to SQLite.

Routes, Policies & Middleware

Custom routes for new endpoints, access control policies, request/response middleware, and the Strapi request lifecycle.

Selectors

How CSS targets HTML elements -- element, class, ID, universal, grouping, descendant, child, sibling, and attribute selectors.

Sessions & Cookies

HTTP statelessness, cookies with setcookie(), PHP sessions, flash messages, and building a secure login/logout system.

Sling Models

Injecting JCR content into Java models -- annotations, adaptables, child resources, OSGi services, exporters, and best practices.

Specificity & the Cascade

How CSS decides which rule wins -- the cascade algorithm, specificity calculation, inheritance, the !important keyword, and cascade layers.

Streams & Lambdas

Functional Java -- lambda expressions, method references, the Stream API, and practical data processing pipelines.

Strings & Arrays

Master PHP strings -- concatenation, heredoc, common functions, and multibyte handling. Then dive into indexed and associative arrays, looping, essential functions, and practical examples.

Structs & Enums

Defining structs, field init shorthand, tuple structs, unit structs, impl blocks, methods, associated functions, enums, enum variants with data, Option, and Result.

Templates & Policies

Editable templates, template types, structure vs initial content, component policies, allowed components, and page structure.

Testing

Write your first Java tests -- JUnit 5 setup, assertions, test structure, parameterized tests, and testing the Task Manager and REST API.

Testing

Unit tests with #[test], the cfg(test) module, assert macros, testing panics, integration tests in the tests/ directory, doc tests, cargo test options, and test organization.

Testing Strapi Applications

Unit testing services and controllers, integration testing API endpoints, and end-to-end testing strategies for Strapi 5.

The Box Model

How browsers calculate element sizes using the CSS box model -- content, padding, border, margin, box-sizing, and debugging with DevTools.

The DOM

Learn how JavaScript interacts with web pages through the DOM -- selecting elements, modifying content, creating and removing elements, and traversing the tree.

The JCR & Sling

The Java Content Repository, node types and properties, resource resolution, CRXDE Lite, and how Apache Sling maps URLs to content.

Traits & Generics

Defining traits, implementing traits for types, default methods, generic functions and structs, trait bounds, where clauses, standard library traits, derive macros, and trait objects.

Transitions & Animations

CSS transitions for smooth state changes, transform functions (translate, rotate, scale, skew), keyframe animations, timing functions, and performance tips.

TypeScript

TypeScript adds static types to JavaScript -- learn type annotations, interfaces, generics, union types, and how to set up a TypeScript project.

TypeScript Integration

Setting up TypeScript in Strapi 5, generating types from content schemas, typing controllers, services, and Document Service queries.

Units & Sizing

CSS length units -- px, em, rem, percentages, viewport units, and when to use each one for font sizes, spacing, and layout.

Variables & Data Types

Declaring variables with the dollar sign, understanding PHP's data types, working with constants, type juggling, and inspecting values with var_dump.

Variables & Types

Declaring variables with let, understanding immutability by default, the mut keyword, shadowing, scalar types, compound types, type inference, type annotations, constants, and numeric overflow.

Variables, Types & Operators

Learn Java's primitive types, String basics, type casting, var, final, arithmetic, comparison, and logical operators.

Variables, Types & Operators

Learn about JavaScript variables (let, const, var), primitive data types, type coercion, operators, and template literals.

Working with Data

Learn how to fetch data from APIs, handle JSON responses, use async/await, and store data with localStorage and sessionStorage.

Working with Databases

Relational databases, PDO, CRUD operations, prepared statements, transactions, and building a simple task manager.

Working with Files

Reading and writing files, CSV and JSON, directory operations, file uploads, path functions, and security best practices.

Your First Component

Component anatomy in AEM -- the cq:Component node, HTL template, dialog, and Sling Model. Creating, deploying, and using a simple component.