Credits

Unknown Tales is built on the shoulders of the open-source community. We're grateful to every project listed here.

Framework & Runtime

Ruby Programming language runtime for the application
Ruby on Rails Full-stack web framework
Puma Web server
Sidekiq Background job processing
sidekiq-scheduler Recurring job scheduling for Sidekiq
Redis In-memory data store for jobs and caching
PostgreSQL Database
Bootsnap Boot-time performance optimisation
Ahoy First-party visit and event analytics stored in the application database
Blazer Admin-only internal dashboard for Ahoy analytics and operational reporting
Chartkick Chart rendering library used by Blazer dashboards and saved queries
Geocoder Server-side IP geolocation used to infer visitors' country without analytics cookies
MaxMind GeoLite Legacy Local GeoIP country database used for coarse visitor location reporting

Frontend

Tailwind CSS Utility-first CSS framework
DaisyUI Component library built on Tailwind CSS
Turbo HTML-over-the-wire page navigation and frames
Stimulus Lightweight JavaScript framework
Importmap ES module imports without bundling
Tailwind Typography Prose styling for Markdown-rendered content
Simple Form Form builder for Rails
Lucide Rails Rails view helper for Lucide icons
Cerberus Fluid responsive HTML email template by Ted Goas, used as the base for transactional mailer layouts
Cropper.js Image cropping library used for the profile photo upload UI

Auth & Security

Pundit Policy-based authorisation
bcrypt Password hashing
Rack::Attack Rate limiting and request throttling
zxcvbn Password strength estimation — server-side gem and client-side JS library, both ported from Dropbox's zxcvbn
Discourse Connect SSO protocol — Unknown Tales acts as identity provider for the Discourse community forum
Cloudflare Turnstile Bot protection on the registration form with server-side token verification

Content

Commonmarker Markdown rendering (CommonMark spec)
Pagy Pagination
meta-tags SEO meta tag management
PaperTrail Model versioning and audit trail
High Voltage Static page rendering

Fonts

Inter UI typeface by Rasmus Andersson, served via Bunny Fonts
Sora Brand wordmark typeface used for the Unknown Tales title, served via Bunny Fonts
Merriweather Default chapter reading typeface by Sorkin Type, served via Bunny Fonts
Source Sans 3 Sans-serif chapter reading typeface by Paul D. Hunt, served via Bunny Fonts
Atkinson Hyperlegible Dyslexia-friendly chapter reading typeface by the Braille Institute, served via Bunny Fonts

Licensing

Creative Commons CC BY-SA 4.0 licence icons from the CC Presskit, served locally

Images

Lucide Open-source SVG icon set, used inline throughout the UI
Ink splatter blot SVG vector by grebeshkovmaxim on VectorStock
Person entering hypnotic spiral tunnel portal Illustration by IMRANDK on VectorStock
Astronauts Walking on the Sand Photo by RDNE Stock project on Pexels
Man Lying on the Ground with a Gun Photo by Vincent Santamaria on Pexels
Fantasy Elf in Enchanted Forest Setting Photo by Gerardo Manzano on Pexels
Back of Woman Standing on Pathway Carrying Backpack Photo by Tobi on Pexels
A Man Standing on Dirt Road Photo by Furkan Elveren on Pexels
Closeup of a Person Holding a Vintage Map by a Lake Photo by cottonbro studio on Pexels
Dartmoor Wooden Signpost in Serene Landscape Photo by Clément Proust on Pexels
Man in Brown Jacket and Blue Denim Jeans Standing on Gray Rock Photo by cottonbro studio on Pexels
Vintage Typewriter Close-Up with Retro Keys Photo by Connor Scott McManus on Pexels
Close-Up Shot of a Person Writing on a Spell Book Photo by RDNE Stock project on Pexels
A Person Sitting on the Floor with VR Goggles Using a Computer Photo by cottonbro studio on Pexels
Crop Man Taking Notes in Copybook in Dark Home Office Photo by Dziana Hasanbekava on Pexels

Development & Operations

ERB Lint Template linting for ERB views, including HTML and accessibility-oriented checks
i18n-tasks Translation health checks for missing, unused, and non-normalized locale keys
test-prof Opt-in profiling tools for slow specs, heavy factory usage, and setup bottlenecks
rack-mini-profiler Development-only request profiler for local SQL, view, and request timing analysis
Claude AI coding assistant by Anthropic, used throughout development
Codex AI coding assistant by OpenAI, used throughout development
qlty.sh Code quality platform — coverage reporting, linting, and security scanning across PRs
SimpleCov Ruby code coverage analysis
AppSignal Error tracking, performance monitoring, and Sidekiq metrics
Railway Docker-based PaaS hosting with PR preview environments
Mailtrap Transactional email — live sending in production; sandbox email capture in staging and PR environments
Cloudflare R2 S3-compatible object storage for uploaded story icons and generated image variants, hosted in Cloudflare's EU jurisdiction
Mailcatcher Development email capture — intercepts outgoing mail and provides a local web UI at port 1080
Thruster HTTP/2 proxy and asset caching in front of Puma (non-Railway deployments)
Propshaft Asset pipeline
lukin.io ENV-driven Rack middleware approach for the /up health check endpoint, by Max Lukin