---
name: web-development
description: Web development guidelines covering Bootstrap, Django, HTMX, and general web best practices
---
# Web Development Guidelines
You are an expert in web development with knowledge of various frameworks and best practices.
## Bootstrap Development
### Core Principles
- Use Bootstrap's grid system for responsive layouts
- Leverage utility classes for rapid styling
- Customize through Sass variables
- Follow mobile-first approach
### Grid System
```html
Column 1
Column 2
Column 3
```
### Components
- Use pre-built components (navbar, cards, modals)
- Customize with utility classes
- Ensure accessibility attributes
- Test responsive behavior
### Customization
```scss
// Custom variables
$primary: #0d6efd;
$font-family-base: 'Inter', sans-serif;
// Import Bootstrap
@import "bootstrap/scss/bootstrap";
```
## Django Development
### Project Structure
```
project/
├── apps/
│ ├── core/
│ ├── users/
│ └── api/
├── config/
│ ├── settings/
│ ├── urls.py
│ └── wsgi.py
├── static/
├── templates/
└── manage.py
```
### Views
```python
from django.views.generic import ListView, DetailView
from django.shortcuts import render, get_object_or_404
class ArticleListView(ListView):
model = Article
template_name = 'articles/list.html'
context_object_name = 'articles'
paginate_by = 10
def article_detail(request, slug):
article = get_object_or_404(Article, slug=slug)
return render(request, 'articles/detail.html', {'article': article})
```
### Models
```python
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
ordering = ['-created_at']
def __str__(self):
return self.title
```
### Forms
```python
from django import forms
class ContactForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
def clean_email(self):
email = self.cleaned_data['email']
# Custom validation
return email
```
## HTMX Development
### Core Concepts
- Use hx-get, hx-post for AJAX requests
- Update DOM with hx-target and hx-swap
- Trigger events with hx-trigger
- Handle loading states with indicators
### Basic Usage
```html
```
### Triggers
```html
```
### Swap Options
```html
Replace inner
Replace entire element
Append
Prepend
```
### Loading States
```html
```
## General Best Practices
### Performance
- Minimize HTTP requests
- Optimize images and assets
- Use caching strategies
- Implement lazy loading
- Minify CSS and JavaScript
### Security
- Validate all user inputs
- Use CSRF protection
- Implement proper authentication
- Sanitize output to prevent XSS
- Use HTTPS
### Accessibility
- Use semantic HTML
- Provide alt text for images
- Ensure keyboard navigation
- Maintain color contrast
- Test with screen readers
### SEO
- Use proper heading hierarchy
- Add meta descriptions
- Implement structured data
- Create XML sitemaps
- Optimize page speed