iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Stop wasting hours searching books. Find your perfect audition monologue in seconds with AI search. 19,000+ monologues from plays, films, and TV. Free to start, no credit card required.
MediaPython · TypeScriptGitHub @canberkvarliOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
AI-powered monologue discovery for theater and film/TV actors
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A platform for actors, built with Next.js and FastAPI. Find audition material in
plain English, then actually rehearse it.
Live at actorrise.com.
Every piece is 100+ words for stage and 75+ for screen (see
monologue_quality.min_words_for_source — the floor is per-source and lives in
one place). Full text is stored only where the rights allow it; everything else
links out to where an actor can buy the script.Read the full README ↗A platform for actors, built with Next.js and FastAPI. Find audition material in plain English, then actually rehearse it.
Live at actorrise.com.
| monologues | titles | |
|---|---|---|
| Plays | 13,998 | 732 |
| Film | 4,069 | 1,208 |
| Television | 1,313 | 224 |
| Searchable total | 19,380 |
Every piece is 100+ words for stage and 75+ for screen (see
monologue_quality.min_words_for_source — the floor is per-source and lives in
one place). Full text is stored only where the rights allow it; everything else
links out to where an actor can buy the script.
A known gap, stated plainly: the play corpus is public domain, which means nothing written after 1929. There is no contemporary play in the library, and no amount of scraping changes that, because every contemporary play is in copyright. 8% of searches ask for contemporary work.
Frontend — Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS v4, shadcn/ui, Framer Motion, Zod 4. Deployed on Vercel.
Backend — FastAPI, SQLAlchemy, Pydantic, uv. Deployed on Render
(auto-deploys on pushes touching backend/**).
Data — Supabase Postgres with pgvector. Embeddings are
text-embedding-3-large at 1536 dimensions, searched with cosine distance over
an HNSW index. gpt-4o-mini handles query parsing and content analysis.
Auth and storage — Supabase.
Prerequisites: Node 18+, Python 3.9+, uv, a
Postgres database with the vector extension, and a Supabase project.
git clone <your-repo-url> && cd actorrise
# Frontend
npm install
npm run dev # http://localhost:3000
# Backend, in a second terminal
cd backend
uv pip install -e .
uv run uvicorn app.main:app --reload # http://localhost:8000
Create .env.local and backend/.env by hand from the blocks below. There are
no .env.example files to copy: .gitignore excludes .env*, so a committed
example would be invisible to everyone who cloned the repo.
Tables are created by SQLAlchemy on first startup.
Frontend, .env.local
NEXT_PUBLIC_API_URL=http://localhost:8000
NEXT_PUBLIC_SITE_URL=http://localhost:3000
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
# NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX # optional
Backend, .env (the settings app/core/config.py reads)
DATABASE_URL=postgresql://user:password@localhost:5432/actorrise
JWT_SECRET=
JWT_ALGORITHM=HS256
CORS_ORIGINS=http://localhost:3000
SUPABASE_URL=
SUPABASE_SERVICE_ROLE_KEY=
SUPABASE_STORAGE_BUCKET=headshots
OPENAI_API_KEY=
ENVIRONMENT=development
SUPERUSER_EMAILS=
REVIEW_EMAILS=
app/ Next.js App Router
(auth)/ login, signup
(marketing)/ public pages, SEO collection pages
(platform)/ monologues, practice, rehearse, scenes, callboard,
greenroom, audition, resume, profile, billing, admin
components/ React components (search/, profile/, ui/, ...)
lib/ api client, auth context, Supabase client
backend/
app/api/ route modules, incl. admin/
app/models/ SQLAlchemy models
app/services/
search/ semantic_search, title_lookup, query_optimizer
extraction/ TEI XML, Gutenberg plain text, screenplay PDF parsers
data_ingestion/ pipeline.py — the only supported way to add monologues
ai/ embeddings, content analysis
scripts/ corpus maintenance and audits (see below)
tests/ 119 files, 1,537 tests
ingest_play() in app/services/data_ingestion/pipeline.py is the only
supported way to add monologues. It enforces the rights model
(services/licensing.py), the word floor, and cross-source deduplication.
Useful scripts:
python -m scripts.audit_corpus_quality # run after EVERY ingest
python -m scripts.audit_search_constraints # replay real searches, check results
python -m scripts.apply_table_storage_params # DB storage params, in version control
Two habits worth keeping:
cd backend && pytest -q # 1,537 tests
npm run lint # frontend
MIT