Enterprise marketing site for Inievo Technologies, built with Reflex (Python) and Tailwind CSS v4.
- Landing page — hero carousel, capabilities grid, featured projects, process, FAQ, blog insights, lead capture
- Inner pages — Services, Projects, Company, Contact
- Responsive header — transparent scroll-reveal on homepage; solid fixed nav on inner pages
- Lead & newsletter forms — persisted via Reflex ORM (SQLite)
- Generated assets — programmatic banners, icons, and thumbnails (Pillow)
| Layer | Choice |
|---|---|
| Framework | Reflex 0.9+ |
| UI | Radix Themes + Tailwind v4 |
| Database | SQLite (reflex.db) |
| Migrations | Alembic |
| Package manager | uv |
inievo-web/
├── inievo_web/ # Application package
│ ├── inievo_web.py # Landing page, navbar, layout, global styles
│ ├── services.py # /services route
│ ├── projects.py # /projects route
│ ├── company.py # /company route
│ ├── contact.py # /contact route
│ ├── constants.py # Content, nav links, offerings
│ ├── design_system.py # Typography & component tokens
│ ├── state.py # Nav, lead, FAQ, portfolio state
│ ├── models.py # Lead & Subscriber models
│ ├── components/ # Reusable UI primitives
│ └── tools/ # Asset generation scripts
├── assets/ # Static files served by Reflex
├── alembic/ # Database migrations
├── rxconfig.py # Reflex app configuration
└── pyproject.toml
- Python 3.12+
- uv (recommended) or pip
# Clone the repository
git clone https://github.com/abumdselim/inievo.git
cd inievo
# Install dependencies
uv sync
# Run database migrations (first time)
uv run alembic upgrade head
# Start the dev server
uv run reflex runOpen http://localhost:3000.
No secrets are required for local development. The SQLite database file (reflex.db) is created automatically and is git-ignored.
uv run python -m inievo_web.tools.generate_assets# Apply database migrations (includes qualified lead fields)
uv run alembic upgrade head
# Run lead capture tests
uv run pytest tests/ -qSee docs/launch-checklist.md for pre-deploy verification and stakeholder sign-off.
See LICENSE for details.