Marketing site, signup, and Stripe checkout for Crimata
  • Ruby 65.8%
  • HTML 30.4%
  • Dockerfile 3.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Andrew Gundersen a1175ab00d Add passwordless email auth with pre-checkout signup
Flow: enter email → magic link → verified → Stripe checkout → dashboard

- SessionsController: new/create (send magic link), sent, verify, destroy
- Customer model: generate_magic_token!, magic_token_valid?, verify_email!
- Migration: magic_token, magic_token_expires_at, email_verified_at + unique indexes
- CustomerMailer + mailer layout with magic link email (html + text)
- CheckoutController: GET /checkout/start requires auth, passes customer_id
  as Stripe metadata; webhook finds customer by metadata and updates record
- DashboardController: requires auth, uses current_customer from session
- ApplicationController: current_customer, require_auth, redirect_after_auth
  (stores return_to so verify sends user back to where they were headed)
- Resend gem + initializer; production uses :resend delivery method
- Dev logs magic link URL to Rails logger instead of sending email
- Pricing page: simple link to /checkout/start (no more JS fetch)
- Layout: Sign in / Dashboard / Sign out nav links

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:12:23 -05:00
app Add passwordless email auth with pre-checkout signup 2026-02-27 17:12:23 -05:00
bin Add ActiveRecord, customer dashboard, separate DB architecture 2026-02-26 23:51:50 -05:00
config Add passwordless email auth with pre-checkout signup 2026-02-27 17:12:23 -05:00
db Add passwordless email auth with pre-checkout signup 2026-02-27 17:12:23 -05:00
lib Initial commit 2026-02-25 15:32:45 -05:00
log Initial commit 2026-02-25 15:32:45 -05:00
public Initial commit 2026-02-25 15:32:45 -05:00
storage Initial commit 2026-02-25 15:32:45 -05:00
tmp Initial commit 2026-02-25 15:32:45 -05:00
vendor Initial commit 2026-02-25 15:32:45 -05:00
.dockerignore Initial commit 2026-02-25 15:32:45 -05:00
.DS_Store Initial commit 2026-02-25 15:32:45 -05:00
.gitattributes Initial commit 2026-02-25 15:32:45 -05:00
.gitignore Initial commit 2026-02-25 15:32:45 -05:00
.ruby-version Initial commit 2026-02-25 15:32:45 -05:00
config.ru Initial commit 2026-02-25 15:32:45 -05:00
Dockerfile Add ActiveRecord, customer dashboard, separate DB architecture 2026-02-26 23:51:50 -05:00
fly.toml Add ActiveRecord, customer dashboard, separate DB architecture 2026-02-26 23:51:50 -05:00
Gemfile Add passwordless email auth with pre-checkout signup 2026-02-27 17:12:23 -05:00
Gemfile.lock Initial commit 2026-02-25 15:32:45 -05:00
LICENSE Add ActiveRecord, customer dashboard, separate DB architecture 2026-02-26 23:51:50 -05:00
Rakefile Initial commit 2026-02-25 15:32:45 -05:00
README.md Initial commit 2026-02-25 15:32:45 -05:00

README

This README would normally document whatever steps are necessary to get the application up and running.

Things you may want to cover:

  • Ruby version

  • System dependencies

  • Configuration

  • Database creation

  • Database initialization

  • How to run the test suite

  • Services (job queues, cache servers, search engines, etc.)

  • Deployment instructions

  • ...