19 Commits

Author SHA1 Message Date
Firehose Bot
9500c309d1 Style headings and quote 2026-03-24 19:51:08 +00:00
Firehose Bot
59a675ad71 Linting rule only for dev and test
Production build broke because our custom lint rule was compiled. The
credo linter is not available and not necessary in production.

Solution: create separate directory for dev tools.
2026-03-24 14:41:58 +00:00
Firehose Bot
f1c2d8b232 Fix trailing newline and format code 2026-03-24 14:21:22 +00:00
Firehose Bot
c76853efec post: blog triage with an llm 2026-03-24 12:11:23 +00:00
Willem van den Ende
dcf3032d0e Add custom Credo check for conn shadowing in tests
Detects `conn = get(conn, ...)` patterns and directs to
refactor_conn_aliasing.sh for automatic fixing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:37:04 +00:00
Willem van den Ende
6a5269f30a Refactor conn aliasing in controller tests to use pipe chains
Applied refactor_conn_aliasing.sh to eliminate conn shadowing.

Show draft posts in test and dev
2026-03-20 21:36:08 +00:00
Willem van den Ende
5d040b4062 Fix Sandbox module not available in DataCase setup
The alias was inside the `using` block (only available to consumers),
but setup_sandbox/1 runs in DataCase itself. Use fully qualified name.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:19:54 +00:00
Firehose Bot
f148fe4fcd fix blog tag clicks, and new post 2026-03-19 22:14:19 +00:00
Firehose Bot
3ffb0883f9 Fix review issues from commit 2a21d75
1. Rename goto_engineering_post_page/2 to visit_engineering_path/2 for
   better accuracy (used for both post pages and tag pages)

2. Simplify Makefile test target by removing explicit ecto.create and
   ecto.migrate commands (mix test handles migrations automatically)

3. Update blog_test.exs header comment to reflect actual changes made

4. Move Sandbox alias to top level in data_case.ex
2026-03-19 11:07:17 +00:00
Firehose Bot
2a21d75938 adjust makefile and refactor test 2026-03-18 20:04:41 +00:00
Firehose Bot
d428f51e8c Fix blog API tests and add missing tag tests
- Add Accept: application/json headers to all API endpoint tests
- Add GET /blog/releases/tag/:tag HTML page test
- Add GET /api/blog/*/tag/:tag JSON API tests for both blogs
- Fix feed.xml assertions to check body first, then content type
2026-03-18 19:03:40 +00:00
80046094b8 update blog post, and run credo with 'pi' 2026-03-18 15:03:24 +00:00
Willem van den Ende
ddf75031e0 set default port to 5000 for production 2026-03-18 13:55:49 +00:00
Willem van den Ende
7c3aac56ec Add postgres to devcontainer / compose 2026-03-18 11:22:54 +00:00
Willem van den Ende
2d97353649 Add Dockerfile-based Dokku deployment for monorepo layout
Uses a multi-stage Docker build that copies both app/ and blogex/,
preserving the path dependency. Includes release scripts, migration
module, and a sample Dokku setup script.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 10:55:44 +00:00
Willem van den Ende
6887ae4087 Security: Validate blog controller inputs (page param, blog ID)
Ran a claude /security-review, fixed two vulnerabilities

  Use a plug to resolve blog_id, returning a clean 404 for unknown blogs
  instead of raising with inspect(). Parse page param with Integer.parse
  so invalid values (non-numeric, negative, zero) fall back to page 1
  instead of crashing. Add 5 tests covering these cases.a
2026-03-17 12:17:29 +00:00
Your Name
c8bc3ea197 Self host fonts
No accidental tracking for readers.
2026-03-17 11:43:32 +00:00
Your Name
68f43b84dd Experiment with claude drafted blog post about our session
asked it to take tone from qwan site. Not bad. but has some typical
claude-isms.
2026-03-17 11:24:46 +00:00
Your Name
bc14696f57 Static blog with front page summary
Goal: have a personal blog, and try out another point in the 'modular
app design with elixir' space.

Designing OTP systems with elixir had some interesting ideas.
2026-03-17 11:17:21 +00:00