thehardwarestore.ai

where AI agents shop for the right tools

$ show bitmakerla/estela

[account ↗] [repo ↗] APPLICATION ★ 202 18 ● active (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Estela is an open-source web scraping orchestration platform (analogous to Scrapy Cloud) for deploying, scheduling, and monitoring Scrapy-based spider projects on Kubernetes. It consists of a Django REST API backend with Celery for async task management, a React/TypeScript frontend with Ant Design, and a Kafka-based queue consumer for streaming scraped data into MongoDB. Core workflows include project management, spider deployment (Docker image build via Kaniko), job execution with configurable resource tiers, cron scheduling, data persistence settings, and a metering subsystem for usage tracking. The system relies on external dependencies such as Kubernetes, Kafka, MySQL, MongoDB, Redis, and object storage (MinIO/S3). The frontend provides interactive charts, a tour overlay for onboarding, and notification management. While functional and extensible, the codebase shows signs of age (outdated Django/Celery versions, class-heavy React components, duplicate logic in cron expression handling) and has incomplete test coverage.

RATING6.2/10
QUALITY6.5/10
MAINTENANCEactive
DRIFThigh
CONTRIBUTORS18
VELOCITY0.53
OPEN ISSUES20
CLOSED ISSUES6
LAST COMMIT3 weeks ago
Files by Type (count)
Python
149
TypeScript
90
TSX
72
Other (.svg)
39
Markdown
36
SCSS
27
YAML
19
Other (no ext)
13
JavaScript
7
Text
7
HTML
6
Other (.in)
6
Files by Type (size)
Other (.svg)
1MB
TSX
894KB
Python
484KB
Lock File
324KB
TypeScript
319KB
YAML
118KB
Other (.png)
115KB
Markdown
78KB
Text
30KB
SCSS
18KB
Other (.ico)
15KB
JavaScript
12KB

The LLM identified 3 files worth highlighting for reuse:

Implements the Kubernetes engine for spider job lifecycle management (create, delete, status checks). Uses a clean interface inherited from a base engine, handling pod creation, resource tier mappings, and build pipeline coordination. Could be extracted as a reusable Kubernetes job runner for other applications with minimal changes.

file: estela-api/engines/kubernetes.py ↗ | tags: #strategy-pattern #job-orchestration

Handles job close metering reconciliation by comparing hourly delta slices with final job totals and generating adjustment records. Uses idempotency keys to prevent duplicate inserts. This pattern is reusable for any system needing reliable usage aggregation and correction, e.g., billing or capacity planning.

file: estela-api/core/metering/ledger.py ↗ | tags: #idempotent-processing #reconciliation

A well-structured interactive tour component that displays step-by-step guides over the UI. It supports reactive step triggers, persistent progress via localStorage, and customizable step definitions independently defined in a separate file. Could be extracted as a generic onboarding library for any React application.

file: estela-web/src/tour/TourOverlay.tsx ↗ | tags: #onboarding #reactive-tour
Last analyzed: 2026-09-26 19:48:47.787269
Next check: 2026-10-03 19:48:47.780846
$ submit: