Skip to content

Commit c29241f

Browse files
committed
feat: Add database seeds with CORE work story
1 parent ad44a66 commit c29241f

File tree

1 file changed

+136
-6
lines changed

1 file changed

+136
-6
lines changed

db/seeds.rb

Lines changed: 136 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,139 @@
11
# This file should ensure the existence of records required to run the application in every environment (production,
22
# development, test). The code here should be idempotent so that it can be executed at any point in every environment.
33
# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup).
4-
#
5-
# Example:
6-
#
7-
# ["Action", "Comedy", "Drama", "Horror"].each do |genre_name|
8-
# MovieGenre.find_or_create_by!(name: genre_name)
9-
# end
4+
5+
puts "Seeding database..."
6+
7+
# CORE work story
8+
core_story = <<~MARKDOWN
9+
# CORE: When I Stopped Overthinking Everything
10+
11+
Real talk - I had this whole grand plan. Seven different projects, seven repos, microservices architecture, Docker containers, Kubernetes, the works. Was gonna build this whole ecosystem for rectorspace.com with Next.js for the frontend, separate Node backends, maybe throw in some Rust microservices because why not, right?
12+
13+
And then one Saturday morning, I'm sitting there with my third cup of coffee, staring at my whiteboard covered in architecture diagrams, and I'm like... wait. Why am I doing this to myself?
14+
15+
Here's the thing about being a developer. We love to overcomplicate stuff. It's like a disease. Someone says "I need a website" and we're already planning the distributed system with event sourcing and CQRS. Meanwhile, Rails exists. Rails 8 specifically. And I'd been sleeping on it.
16+
17+
So I made a decision that felt kinda blasphemous for someone who's been doing TypeScript and Solana work. I deleted everything and typed `rails new core`. Just like that. Two days ago, actually. November 2nd, 2025. Bismillah.
18+
19+
**The Bet**
20+
21+
I gave myself a challenge: can I ship a production-ready platform in one weekend? Not a prototype. Not an MVP. Production. With SSL, proper deployment, GitHub Actions CI/CD, the works. And it had to actually look good - none of that "I'll design it later" Bootstrap nonsense.
22+
23+
Spoiler: kind of did it. With a bunch of bugs along the way, but hey, that's the fun part.
24+
25+
**Why Rails? (The Honest Version)**
26+
27+
Look, I could give you the technical reasons. Monolithic architecture, convention over configuration, mature ecosystem, all that. But real reason? I was tired of config files. So. Tired.
28+
29+
With my previous setup, I had:
30+
- 7 different repos to maintain
31+
- Different package.json files
32+
- Separate deployment pipelines
33+
- Database connections between services
34+
- API versioning headaches
35+
- "Which port is this running on again?" moments
36+
37+
Rails? One repo. One deployment. Database migrations that actually work. Background jobs built-in (Solid Queue is amazing btw). It just... works. And after spending months in blockchain dev where nothing works the first time, that's refreshing.
38+
39+
Plus, Rails 8 came out with all these new goodies. Solid Queue for background jobs, Solid Cache, authentication generators. It's like DHH looked at what we were doing with external services and said "nah, let's just include it."
40+
41+
**The Design Thing**
42+
43+
Here's where it got interesting. I have this MonkeDAO NFT as my profile pic - pixel art monkey with this warm color palette. Orange, yellow, cream, brown. And I thought... what if the whole site matched that vibe?
44+
45+
So I grabbed Tailwind CSS v4 (because of course), pulled the colors from my NFT, and built this whole warm, pixel-art-inspired design system. JetBrains Mono for everything - yes, even the body text. It's monospace. It's a bit unusual. I don't care, it looks cool and screams "developer made this."
46+
47+
The layout is inspired by DHH's personal site - minimal nav, letter-style content, just text and links flowing naturally. None of that corporate navbar/sidebar/footer stuff. Just... content. The way blogs used to be before everyone decided they needed to look like SaaS products.
48+
49+
**The 48-Hour Sprint**
50+
51+
Friday night: Set up Rails, configure PostgreSQL, pick the color scheme. Got the homepage working around 2am.
52+
53+
Saturday: This is where it got messy. Built the GitHub API integration to show my projects dynamically. Wrote a background job that syncs my repos every hour. Set up Tailwind with custom colors. Made like 15 commits just fixing CSS spacing lol.
54+
55+
Then came deployment. Set up a VPS, configured Nginx, got SSL working with Let's Encrypt. Puma kept crashing because I forgot Unix sockets exist. Fixed that at 3am. Then SECRET_KEY_BASE wasn't loading. Then Ruby version mismatch. Then... you get the idea.
56+
57+
Sunday morning: Alhamdulillah, it's live. rectorspace.com points to a actual working Rails app. The version footer shows which commit is running in production. GitHub Actions automatically deploys when I push to main. It's not perfect but it's real.
58+
59+
**The Seven Sections** (Most Don't Exist Yet lol)
60+
61+
The plan is seven sections under one domain:
62+
- Homepage (✅ live)
63+
- Work (📋 building this now actually)
64+
- Labs (📋 for experiments)
65+
- Journal (📋 Ghost CMS integration)
66+
- Cheatsheet (📋 dev notes)
67+
- Dakwa (📋 Islamic content)
68+
- Quran (📋 Quranic resources)
69+
70+
Yeah, only homepage works right now. But that's fine! Ship first, build second. The infrastructure is solid. Adding new sections is just controllers and views.
71+
72+
**What I Learned** (The Real Stuff)
73+
74+
1. **Monoliths aren't evil.** Microservices are great when you need them. For a solo developer building multiple related things? Monolith wins.
75+
76+
2. **Rails is still good.** Really good. The "Rails is dead" people don't know what they're talking about. Rails 8 feels modern and fast.
77+
78+
3. **Ship broken things.** I deployed with bugs. Fixed them in production. It's fine. Perfect is the enemy of done.
79+
80+
4. **Design matters but don't overthink it.** I spent 3 hours tweaking colors. Was it worth it? Maybe. But it makes me happy to look at it, so yeah.
81+
82+
5. **Use boring technology.** PostgreSQL, Nginx, Puma, Rails - all boring, all battle-tested, all just work. Saved me so much debugging time.
83+
84+
**Where It's Going**
85+
86+
Right now I'm building the /work section with story-driven project pages. Not just "here's my projects" but actual narratives. Why they exist, what I learned, the messy parts. Because boring portfolios are... boring.
87+
88+
Then Labs for experiments. Then Ghost CMS integration for writing. Then the Islamic sections because building for eternity means building for dunya AND akhirah, you know?
89+
90+
The repo is public now (just made it public today actually). So you can see all the commits, all the fixes, all the "wait why did I do it that way" moments. Real code, real mess, real progress.
91+
92+
**The Philosophy**
93+
94+
There's this thing in Islam called "ihsan" - excellence in everything you do. Not perfection. Excellence. Doing your best work because Allah is watching. That's what this is about.
95+
96+
Not trying to build a unicorn startup. Not chasing VC funding. Just building something useful, something beautiful, something that serves both my worldly goals and my faith. "Building for Eternity" isn't a tagline - it's literally the mission.
97+
98+
Will people use it? Maybe. Will it make money? Not the priority. Will it be something I'm proud of in 10 years? InshaAllah, yes. That's enough.
99+
100+
So yeah. That's CORE. Two days old. Already in production. Lots of placeholder sections. Even more bugs probably. But it's mine, it's real, and it's just getting started.
101+
102+
And if you're wondering whether you should build that thing you've been planning for months - yes. Stop planning. Just build it. You can refactor later.
103+
104+
---
105+
106+
**Tech Stack:** Ruby on Rails 8, PostgreSQL, Tailwind CSS v4, Nginx, Puma
107+
108+
**Status:** Live in production (with bugs, naturally)
109+
110+
**Links:** [GitHub](https://github.com/RECTOR-LABS/core) • [Live Site](https://rectorspace.com)
111+
112+
**Timeline:** Started Nov 2, 2025 • Deployed Nov 3, 2025 • Still actively building
113+
MARKDOWN
114+
115+
work = Work.find_or_initialize_by(slug: "core")
116+
work.assign_attributes(
117+
title: "CORE",
118+
github_url: "https://github.com/RECTOR-LABS/core",
119+
live_url: "https://rectorspace.com",
120+
repo_name: "RECTOR-LABS/core",
121+
story: core_story,
122+
summary: "Rails 8 monolith for the complete rectorspace.com ecosystem - built in one weekend to prove monoliths aren't dead",
123+
category: "Infrastructure",
124+
status: "Live",
125+
technologies: [ "Ruby", "Rails 8", "PostgreSQL", "Tailwind CSS", "Nginx", "Puma" ],
126+
started_at: Date.parse("2025-11-02"),
127+
launched_at: Date.parse("2025-11-03"),
128+
featured: true,
129+
github_stars: 0,
130+
github_forks: 0
131+
)
132+
133+
if work.save
134+
puts "✓ CORE work created/updated successfully"
135+
else
136+
puts "✗ Failed to create CORE work: #{work.errors.full_messages.join(', ')}"
137+
end
138+
139+
puts "Database seeding completed!"

0 commit comments

Comments
 (0)