Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
a6a7bac
Merge branch 'tidewave'
zeroxbob Jun 2, 2025
9da9140
Remove JS for bookmarklet into Stimulus JS controllers
zeroxbob Jun 2, 2025
e14a9f6
Claude Code settings
zeroxbob Jun 2, 2025
8ea7fb7
Change Info message display
zeroxbob Jun 2, 2025
5f89b73
fixup! Claude Code settings
zeroxbob Jun 2, 2025
0297714
Ignore node_modules properly
zeroxbob Jun 4, 2025
d3cd687
Simplify logout without need for JS
zeroxbob Jun 4, 2025
16cde83
Update Claude settings
zeroxbob Jun 4, 2025
9f3de21
Switch design to use TailwindCSS
zeroxbob Jun 4, 2025
4094219
Fix Tailwind
zeroxbob Jun 4, 2025
6c232bd
Style bookmarklet with Tailwind
zeroxbob Jun 4, 2025
24097cb
Clean up old styles in bookmarklet view
zeroxbob Jun 4, 2025
4855954
Change success message after bookmarklet success
zeroxbob Jun 4, 2025
0086baa
Improve url validations
zeroxbob Jun 4, 2025
4d1173f
Merge branch 'cc'
zeroxbob Jun 18, 2025
4968cdf
Configure Kamal for deploy
zeroxbob Jun 18, 2025
ba48fb7
Provide DATABASE_URL to all DBs
zeroxbob Jun 26, 2025
7ee8e65
Upgrade to Rails 8.0.2
zeroxbob Jun 26, 2025
8175913
Upgrade Kamal and use nostr_ruby fork
zeroxbob Jun 27, 2025
e12b376
Add DB password to queue DBs
zeroxbob Jun 27, 2025
4e94c70
Create DBs for cache, queue and cable
zeroxbob Jun 27, 2025
e61fb63
Use correct syntax for DB creation
zeroxbob Jun 27, 2025
120793f
Change DB setup
zeroxbob Jun 27, 2025
30f1beb
Change DB settings for solid queue on Kamal
zeroxbob Jun 29, 2025
cb684cc
Grant permission to compile assets
zeroxbob Jun 29, 2025
de7c66d
Change precompilation command
zeroxbob Jun 30, 2025
aa22b5b
Improve tailwindcss build
zeroxbob Jun 30, 2025
b693a70
Undo changes to Dockerfile
zeroxbob Jul 1, 2025
569aede
Merge branch 'kamal-deploy'
zeroxbob Jul 4, 2025
90f0b17
Clean up references to nostr extensions
zeroxbob Jul 6, 2025
e885b60
Move debug page outside of bookmarklet controller
zeroxbob Jul 6, 2025
915ae92
Move instructions outside of bookmarklet controller
zeroxbob Jul 6, 2025
9db2ee3
Update README
zeroxbob Jul 6, 2025
035ea9b
Run bundle install with updated Ruby version 3.4.4
zeroxbob Jul 6, 2025
1a59ed6
Update bootsnap
zeroxbob Jul 6, 2025
9bee080
Bump actions/checkout from 4 to 6
dependabot[bot] Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"permissions": {
"allow": [
"Bash(grep:*)",
"Bash(npm run lint)",
"Bash(npm run:*)",
"Bash(rm:*)",
"Bash(bundle:*)",
"Bash(find:*)",
"Bash(bin/rails:*)",
"Bash(ls:*)",
"Bash(cat:*)",
"WebFetch(domain:pinstr.co)"
],
"deny": []
}
}
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Ruby
uses: ruby/setup-ruby@v1
Expand All @@ -27,7 +27,7 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Ruby
uses: ruby/setup-ruby@v1
Expand All @@ -42,7 +42,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Ruby
uses: ruby/setup-ruby@v1
Expand Down Expand Up @@ -77,7 +77,7 @@ jobs:
run: sudo apt-get update && sudo apt-get install --no-install-recommends -y google-chrome-stable curl libjemalloc2 libvips postgresql-client

- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Ruby
uses: ruby/setup-ruby@v1
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,8 @@

# Ignore master key for decrypting credentials and more.
/config/master.key
./node_modules
/node_modules
todo.md

/app/assets/builds/*
!/app/assets/builds/.keep
4 changes: 3 additions & 1 deletion .kamal/secrets
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@

# Grab the registry password from ENV
KAMAL_REGISTRY_PASSWORD=$KAMAL_REGISTRY_PASSWORD

RAILS_MASTER_KEY=$(cat config/master.key)
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
DATABASE_URL=$DATABASE_URL
# Improve security by using a password manager. Never check config/master.key into git!
RAILS_MASTER_KEY=$(cat config/master.key)
10 changes: 6 additions & 4 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
source "https://rubygems.org"

# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
gem "rails", "~> 8.0.0"
gem "rails", "~> 8.0.2"
# The modern asset pipeline for Rails [https://github.com/rails/propshaft]
gem "propshaft"
# Use postgresql as the database for Active Record
Expand Down Expand Up @@ -29,18 +29,18 @@ gem "solid_queue"
gem "solid_cable"

# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", require: false
gem 'bootsnap', require: false, git: 'https://github.com/midnight-wonderer/ruby-bootsnap.git', branch: 'bug/test-forks-before-usage'

# Deploy this application anywhere as a Docker container [https://kamal-deploy.org]
gem "kamal", require: false
gem "kamal", ">= 2.7", require: false

# Add HTTP asset caching/compression and X-Sendfile acceleration to Puma [https://github.com/basecamp/thruster/]
gem "thruster", require: false

# Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
# gem "image_processing", "~> 1.2"

gem "nostr_ruby"
gem 'nostr_ruby', git: 'https://github.com/zeroxbob/nostr-ruby.git'
gem "websocket-client-simple"

group :development, :test do
Expand All @@ -67,3 +67,5 @@ group :test do
gem "capybara"
gem "capybara-playwright-driver"
end

gem "tailwindcss-rails", "~> 4.2"
77 changes: 49 additions & 28 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
GIT
remote: https://github.com/midnight-wonderer/ruby-bootsnap.git
revision: 0e0df3395d5ee25713cb47e843236fcaded209f1
branch: bug/test-forks-before-usage
specs:
bootsnap (1.18.4)
msgpack (~> 1.2)

GIT
remote: https://github.com/zeroxbob/nostr-ruby.git
revision: d83273332ee991620481379b078141b1738ba6b6
specs:
nostr_ruby (0.3.0)
base64 (>= 0.2.0)
bech32 (~> 1.4.0)
bip-schnorr (~> 0.4.0)
faye-websocket (~> 0.11)
json (~> 2.6.2)
unicode-emoji (~> 3.3.1)

GEM
remote: https://rubygems.org/
specs:
Expand Down Expand Up @@ -75,19 +95,15 @@ GEM
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
ast (2.4.3)
base64 (0.1.2)
base64 (0.3.0)
bcrypt_pbkdf (1.1.1)
bcrypt_pbkdf (1.1.1-arm64-darwin)
bcrypt_pbkdf (1.1.1-x86_64-darwin)
bech32 (1.4.2)
thor (>= 1.1.0)
benchmark (0.4.0)
bigdecimal (3.1.9)
bindex (0.8.1)
bip-schnorr (0.4.0)
ecdsa (~> 1.2.0)
bootsnap (1.18.4)
msgpack (~> 1.2)
brakeman (7.0.2)
racc
builder (3.3.0)
Expand All @@ -113,7 +129,7 @@ GEM
irb (~> 1.10)
reline (>= 0.3.8)
diff-lcs (1.6.1)
dotenv (2.8.1)
dotenv (3.1.8)
drb (2.2.1)
dry-configurable (1.3.0)
dry-core (~> 1.1)
Expand Down Expand Up @@ -145,7 +161,7 @@ GEM
dry-logic (~> 1.4)
zeitwerk (~> 2.6)
ecdsa (1.2.0)
ed25519 (1.3.0)
ed25519 (1.4.0)
erubi (1.13.1)
et-orbi (1.2.11)
tzinfo
Expand All @@ -157,9 +173,9 @@ GEM
json (~> 2.0)
mime-types (~> 3.4)
rack (~> 3.1)
faye-websocket (0.11.3)
faye-websocket (0.11.4)
eventmachine (>= 0.12.0)
websocket-driver (>= 0.5.1)
websocket-driver (>= 0.5.1, < 0.8.0)
fugit (1.11.1)
et-orbi (~> 1, >= 1.2.11)
raabro (~> 1.4)
Expand All @@ -180,16 +196,17 @@ GEM
actionview (>= 5.0.0)
activesupport (>= 5.0.0)
json (2.6.3)
kamal (1.3.0)
kamal (2.7.0)
activesupport (>= 7.0)
base64 (~> 0.2)
bcrypt_pbkdf (~> 1.0)
concurrent-ruby (~> 1.2)
dotenv (~> 2.8)
ed25519 (~> 1.2)
net-ssh (~> 7.0)
sshkit (~> 1.21)
thor (~> 1.2)
zeitwerk (~> 2.5)
dotenv (~> 3.1)
ed25519 (~> 1.4)
net-ssh (~> 7.3)
sshkit (>= 1.23.0, < 2.0)
thor (~> 1.3)
zeitwerk (>= 2.6.18, < 3.0)
language_server-protocol (3.17.0.4)
lint_roller (1.1.0)
logger (1.7.0)
Expand Down Expand Up @@ -243,14 +260,7 @@ GEM
racc (~> 1.4)
nokogiri (1.18.7-x86_64-linux-musl)
racc (~> 1.4)
nostr_ruby (0.3.0)
base64 (~> 0.1.1)
bech32 (~> 1.4.0)
bip-schnorr (~> 0.4.0)
faye-websocket (~> 0.11)
json (~> 2.6.2)
unicode-emoji (~> 3.3.1)
ostruct (0.6.1)
ostruct (0.6.2)
parallel (1.27.0)
parser (3.3.8.0)
ast (~> 2.4.1)
Expand Down Expand Up @@ -396,6 +406,16 @@ GEM
stimulus-rails (1.3.4)
railties (>= 6.0.0)
stringio (3.1.6)
tailwindcss-rails (4.2.3)
railties (>= 7.0.0)
tailwindcss-ruby (~> 4.0)
tailwindcss-ruby (4.1.8)
tailwindcss-ruby (4.1.8-aarch64-linux-gnu)
tailwindcss-ruby (4.1.8-aarch64-linux-musl)
tailwindcss-ruby (4.1.8-arm64-darwin)
tailwindcss-ruby (4.1.8-x86_64-darwin)
tailwindcss-ruby (4.1.8-x86_64-linux-gnu)
tailwindcss-ruby (4.1.8-x86_64-linux-musl)
thor (1.3.2)
thruster (0.1.12)
thruster (0.1.12-aarch64-linux)
Expand Down Expand Up @@ -450,26 +470,27 @@ PLATFORMS
x86_64-linux-musl

DEPENDENCIES
bootsnap
bootsnap!
brakeman
capybara
capybara-playwright-driver
debug
importmap-rails
jbuilder
kamal
nostr_ruby
kamal (>= 2.7)
nostr_ruby!
pg (~> 1.1)
propshaft
pry
puma (>= 5.0)
rails (~> 8.0.0)
rails (~> 8.0.2)
rspec-rails (~> 7.0)
rubocop-rails-omakase
solid_cable
solid_cache
solid_queue
stimulus-rails
tailwindcss-rails (~> 4.2)
thruster
tidewave
turbo-rails
Expand Down
2 changes: 2 additions & 0 deletions Procfile.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
web: bin/rails server
css: bin/rails tailwindcss:watch
24 changes: 4 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,8 @@
# README

This README would normally document whatever steps are necessary to get the
application up and running.
A Nostr app to bookmark URLs.

Things you may want to cover:
- The user signs in and authenticates through their Nostr extension.
- Any bookmark that is added is broadcast to one or multiple Nostr relays.
- Bookmarks are sent as Nostr notes following the format defined in NIP-B0.

* 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

* ...
Empty file added app/assets/builds/.keep
Empty file.
Loading
Loading