https://github.com/rafnixg/links
Links Bio RafnixG using Reflex
https://github.com/rafnixg/links
python3 reflex
Last synced: 6 months ago
JSON representation
Links Bio RafnixG using Reflex
- Host: GitHub
- URL: https://github.com/rafnixg/links
- Owner: rafnixg
- Created: 2024-04-19T23:25:34.000Z (about 2 years ago)
- Default Branch: new-links
- Last Pushed: 2025-12-24T17:56:38.000Z (6 months ago)
- Last Synced: 2025-12-26T08:31:47.671Z (6 months ago)
- Topics: python3, reflex
- Language: HTML
- Homepage: https://links.rafnixg.dev
- Size: 2.57 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# LinkBioSite
[](https://www.python.org/downloads/)
[](https://pypi.org/project/linkbiosite/)
[](https://opensource.org/licenses/MIT)
[](https://jinja.palletsprojects.com/)
[](https://github.com/rafnixg/links)
[](https://github.com/rafnixg/links/fork)
A modern, brutalist-designed static site generator for creating beautiful link bio pages. Built with Python and Jinja2 templates, featuring 2026 design trends with cosmic midnight color palettes and experimental layouts.
## โจ Features
- ๐จ **2026 Brutalist Design**: Raw edges, asymmetrical layouts, and bold typography
- ๐ Cosmic midnight color palette with high contrast
- ๐ Built with Python and Jinja2 templating
- ๐ฑ Mobile-friendly responsive layout
- ๐ณ Static site generation for fast hosting
- ๐ Analytics integration ready
- ๐ SEO optimized with meta tags
- โจ **Motion Design**: Subtle animations and interactive hovers
- โฟ **Accessibility**: Reduced motion support
- ๐ ๏ธ **Library API**: Use as a Python library or CLI tool
- ๐ณ **Docker Support**: Multi-stage builds for development and production
## ๐ Quick Start
### Installation
Install LinkBioSite using pip:
```bash
pip install linkbiosite
```
Or install from source for development:
```bash
git clone https://github.com/rafnixg/links.git
cd links
pip install -e .
```
### Create Your First Link Bio
1. Initialize a new project:
```bash
linkbiosite init my-bio
cd my-bio
```
2. Edit `data.json` with your information:
```json
{
"bio": {
"name": "Your Name",
"greeting": "Hi, I'm Your Name",
"subtitle": "Your awesome subtitle",
"handle": "@yourhandle",
"avatar": "/avatar.png",
"avatar_alt": "YN"
},
"links": {
"Social": [
{"text": "Website", "tag": "globe", "url": "https://example.com"},
{"text": "Twitter", "tag": "twitter", "url": "https://twitter.com/yourhandle"}
]
}
}
```
3. Build your site:
```bash
linkbiosite build
```
4. Serve locally for development:
```bash
linkbiosite serve
```
Your link bio will be available at http://localhost:8000
## ๐ป Usage
### Command Line Interface
LinkBioSite provides a comprehensive CLI for all operations:
```bash
# Initialize a new project
linkbiosite init [directory]
# Build the static site
linkbiosite build [--output OUTPUT_DIR]
# Serve locally for development
linkbiosite serve [--port PORT] [--host HOST]
# Show help
linkbiosite --help
```
### Python API
Use LinkBioSite as a Python library:
```python
from linkbiosite import build, init, serve
# Initialize a new project
init("my-bio-project")
# Build the site
output_dir = build()
# Serve for development
serve(port=8000)
```
### Advanced Usage
```python
from linkbiosite import LinkBioSiteGenerator
# Create a custom generator
generator = LinkBioSiteGenerator(project_root="/path/to/project")
# Build with custom output directory
output_path = generator.build_site(output_dir="/custom/output")
# Load and validate data
data = generator.load_data()
generator.validate_data(data)
```
## ๐ณ Docker Usage
### Development
Build and run the development container:
```bash
# Build development image
docker build --target runtime -t linkbio:dev .
# Run with volume mounting
docker run -it --rm \
-v $(pwd):/app/project \
-v $(pwd)/public:/app/output \
-p 8000:8000 \
linkbiosite:dev \
linkbiosite serve --host 0.0.0.0
```
### Production
Build and run the production container:
```bash
# Build production image
docker build --target production -t linkbiosite:prod .
# Run nginx server
docker run -d -p 80:80 linkbiosite:prod
```
## ๐ Project Structure
When you initialize a new LinkBioSite project, you'll get:
```
my-bio/
โโโ data.json # Site configuration and content
โโโ templates/ # Jinja2 templates
โ โโโ index.html # Main page template
โ โโโ styles.css # CSS styles
โโโ assets/ # Static assets (images, etc.)
โโโ public/ # Generated site (after build)
```
## ๐ ๏ธ Technologies
- **Language**: Python 3.8+
- **Templating**: Jinja2 3.0+
- **Styling**: CSS3 with brutalist design
- **Containerization**: Docker with multi-stage builds
- **Package Management**: Modern Python packaging (pyproject.toml)
## ๐ Configuration
### data.json Structure
```json
{
"bio": {
"name": "Your Name",
"greeting": "Welcome message",
"subtitle": "Your subtitle",
"handle": "@yourhandle",
"avatar": "/path/to/avatar.png",
"avatar_alt": "Alt text for avatar"
},
"links": {
"Category Name": [
{
"text": "Link Text",
"tag": "icon-name",
"url": "https://example.com"
}
]
},
"footer": {
"copyright": "ยฉ {year} Your Name. All rights reserved."
},
"analytics": {},
"meta": {
"title": "Page Title",
"description": "Page description for SEO"
}
}
```
### Custom Templates
LinkBio uses Jinja2 templates. Customize `templates/index.html` and `templates/styles.css` to match your design needs.
## ๐ค Author
**Rafnix Guzmรกn**
- Website: [rafnixg.dev](https://rafnixg.dev)
- Twitter: [@rafnixg](https://twitter.com/rafnixg)
- GitHub: [@rafnixg](https://github.com/rafnixg)
## ๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## โญ Show your support
Give a โญ๏ธ if this project helped you!
## ๐ Documentation
For detailed documentation, visit [linkbio.readthedocs.io](https://linkbio.readthedocs.io) (coming soon).
## ๐ Acknowledgments
- Inspired by 2026 design trends
- Built with modern Python packaging
- Thanks to the Jinja2 and Python communities```
3. Install dependencies:
```bash
pip install -r requirements.txt
```
## ๐ป Usage
### Building the Site
To generate the static site:
```bash
python build.py
```
The generated site will be in the `public/` directory.
### Development Mode
Run the application in development mode with hot reload:
```bash
reflex run
```
The application will be available at:
- Frontend: http://localhost:3000
- Backend: http://localhost:8000
### Export Static Files
Export the public files to the `public` folder:
```bash
./public_export
```
### Production Mode
Run the application in production mode:
```bash
reflex run --env prod
```
## ๐ณ Docker Deployment
Build and run the application using Docker:
```bash
# Build the Docker image
docker build -t reflex-links:latest .
# Run the container
docker run -d -p 8000:8000 -p 3000:3000 --name links reflex-links:latest
```
Access the application at http://localhost:3000
## ๐ Project Structure
```
links/
โโโ link_bio/ # Main application code
โ โโโ components/ # Reusable UI components
โ โโโ styles/ # CSS styles and theme
โ โโโ views/ # Page views (header, footer, links)
โ โโโ link_bio.py # Main application file
โโโ assets/ # Static assets (images, icons)
โโโ public/ # Public files
โโโ requirements.txt # Python dependencies
โโโ rxconfig.py # Reflex configuration
โโโ Dockerfile # Docker configuration
```
## ๐ ๏ธ Technologies
- **Static Site Generator**: Custom Python/Jinja2 SSG
- **Language**: Python 3.11+
- **Templating**: Jinja2 3.1.2
- **Styling**: CSS3 with animations and brutalist design
- **Analytics**: Umami Analytics
- **Containerization**: Docker
## ๐ค Author
**Rafnix Guzmรกn**
- Website: [links.rafnixg.dev](https://links.rafnixg.dev)
- Twitter: [@rafnixg](https://twitter.com/rafnixg)
- GitHub: [@rafnixg](https://github.com/rafnixg)
## ๐ค Contributing
Contributions, issues, and feature requests are welcome! Feel free to check the [issues page](https://github.com/rafnixg/links/issues).
## ๐ License
This project is open source and available for personal and commercial use.
## โญ Show your support
Give a โญ๏ธ if this project helped you!