Skip to content

Rebrand as Ethereum-native holding & migrate to Vercel Django template#17

Merged
masuda-so merged 4 commits into
mainfrom
claude/elated-rhodes-d22462
May 5, 2026
Merged

Rebrand as Ethereum-native holding & migrate to Vercel Django template#17
masuda-so merged 4 commits into
mainfrom
claude/elated-rhodes-d22462

Conversation

@masuda-so
Copy link
Copy Markdown
Owner

Summary

Comprehensive rebrand based on the company charter (定款) and a parallel architectural cleanup that drops the Cookiecutter-Django bootstrap in favour of the minimal layout that Vercel's Python Runtime auto-detects.

Positioning

Repositions the public site around three pillars drawn directly from Article 2 of the charter:

Holdings Ethereum (ETH) held as the company's long-term reserve asset (charter §20–21)
Software iOS/SwiftUI products. Flagship: GratefulMoments (charter §8)
Culture Music, video, publishing, events (charter §1–4, 11)

Information architecture

JA                              EN
/                  Home         /en/
/vision/           Vision       /en/vision/
/holdings/         Holdings     /en/holdings/   (NEW)
/software/         Software     /en/software/   (NEW)
/business/         Business     /en/business/   (was services/)
/company/          Company      /en/company/
/contact/          Contact      /en/contact/
/legal/privacy/    Privacy      /en/legal/privacy/  (NEW)
/legal/cookies/    Cookies      /en/legal/cookies/  (NEW)

Plus `/robots.txt`, `/sitemap.xml`, `/admin/`. Bilingual (JA + EN) throughout, with a header language switcher and `hreflang` alternates.

Real company data (replaced placeholders)

  • Representative member: 増田 創 (Soh Masuda)
  • Founded: 2025-12-22 (令和7年12月22日)
  • Capital: ¥1
  • Corporate number: 4011103016903
  • Registered office: 東京都新宿区新宿四丁目3番15号
  • Email: `so.masuda.2003@ether-llc.com` (replaces the placeholder `info@ether.local` everywhere)

Architecture cleanup

Migrated to Vercel's Django template layout — Vercel auto-detects `manage.py` and configures WSGI + static files. No `vercel.json` or `api/index.py` needed.

Deleted:

  • `scripts/export_static_site.py` and `scripts/static_export_urls.py` (custom static-export shim)
  • `vercel.json` (auto-detection makes it unnecessary)
  • `compose/`, `docker-compose.*.yml`, `.dockerignore`, `.devcontainer/` (Docker)
  • `config/settings/{base,local,production,test}.py` → single `config/settings.py`
  • `ether/users/` (custom User model), `ether/contrib/`, `ether/conftest.py`
  • `tests/`, `locale/`, `docs/`, `.readthedocs.yml`, `justfile`, `merge_production_dotenvs_in_dotenv.py`

Dependencies pruned from 17+ runtime packages down to just `django>=6.0` (dev: `djlint`, `ruff`). Removed: allauth, anymail, crispy-forms, django-environ, redis, postgres, gunicorn, whitenoise, mypy, sphinx, pytest, etc.

SEO

  • Per-page OGP metadata + `Organization` JSON-LD with corporate number, address, founder, email
  • `/robots.txt` and `/sitemap.xml` with `hreflang` alternates

Conflicts with main

Resolved against PR #13's editorial design refresh by keeping this branch's Material 3-based CSS — the new pages depend on those CSS variables and the IA in this PR completely replaces the previous services/about layout. PR #15's hero image deletion and PR #14's gitignore tweaks are preserved.

Test plan

  • `uv run python manage.py check` — System check identified no issues
  • `uv run python manage.py migrate` — applies Django auth/sessions migrations to SQLite
  • `uv run python manage.py collectstatic --noinput` — 134 static files copied
  • `uv run python manage.py runserver` — all 21 routes return 200 (admin → 302 login redirect)
  • `uv run djlint ether/templates/ --check` — 0 files would be updated
  • `uv run ruff check .` — all checks passed
  • Vercel preview deploy: confirm `manage.py` auto-detection, set `DJANGO_SECRET_KEY` env var
  • Visual check on mobile + desktop, JA + EN
  • OGP card preview (Twitter/Slack) for `/` and `/en/`

🤖 Generated with Claude Code

masuda-so added 2 commits May 5, 2026 00:20
…go template

Repositions the site around three pillars (Ethereum holdings / Software /
Culture) per the company charter, adds bilingual JA/EN coverage, and
collapses the Cookiecutter-Django bootstrap to the minimal layout that
Vercel's Python Runtime auto-detects from manage.py.

What changed:
- Information architecture: new Vision, Holdings, Software, Business,
  legal/Privacy, legal/Cookies pages (replacing Services / About).
- Software page features GratefulMoments
  (https://github.com/masuda-so/GratefulMoments) as the flagship product.
- Company page now lists representative member, founding date, capital,
  corporate number 4011103016903, and registered office.
- Real contact email so.masuda.2003@ether-llc.com everywhere; segmented
  contact channels (partnerships, software, press, company info).
- OGP, Organization JSON-LD, /robots.txt, /sitemap.xml.
- Full English mirror under /en/ with hreflang alternates and a language
  switcher in the header.

Architecture cleanup:
- Drop scripts/export_static_site.py and scripts/static_export_urls.py
  along with vercel.json — Vercel auto-detects manage.py.
- Drop allauth, users app, anymail, crispy-forms, redis, postgres,
  whitenoise, mypy, sphinx, pytest from dependencies.
- Replace config/settings/{base,local,production,test}.py with a single
  config/settings.py modelled on Vercel's Django template.
- Remove Docker compose, devcontainer, justfile, ReadTheDocs, locale po
  files, and tests/ scaffolding.
…d22462

# Conflicts:
#	ether/static/css/project.css
#	ether/templates/base.html
#	ether/templates/pages/company.html
#	ether/templates/pages/contact.html
#	ether/templates/pages/home.html
#	ether/templates/pages/services.html
#	scripts/export_static_site.py
@vercel
Copy link
Copy Markdown

vercel Bot commented May 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
website Ready Ready Preview, Comment May 4, 2026 4:08pm

@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools Bot commented May 4, 2026

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@masuda-so masuda-so enabled auto-merge (squash) May 4, 2026 15:25
…jlint D018

- Replace docker-compose-based pytest job with a uv-based Django sanity
  job (check + migrate + collectstatic). The previous job referenced
  docker-compose.local.yml which was removed in this PR.
- django-upgrade dropped DEFAULT_AUTO_FIELD (BigAutoField is the default
  in Django 6).
- end-of-file-fixer added trailing newlines on config/urls.py and
  ether/static/css/project.css.
- pyproject-fmt added Python 3.12/3.14 classifiers.
- Ignore djlint D018: hardcoded internal links are intentional because
  the language switching produces conditional /en/ vs / paths that don't
  fit the {% url %} pattern cleanly.
@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools Bot commented May 4, 2026

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

…d22462

# Conflicts:
#	pyproject.toml
#	uv.lock
@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools Bot commented May 4, 2026

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@masuda-so masuda-so merged commit f9fd985 into main May 5, 2026
4 checks passed
@masuda-so masuda-so deleted the claude/elated-rhodes-d22462 branch May 5, 2026 13:23
masuda-so added a commit that referenced this pull request May 5, 2026
#17)

* refactor: rebrand as Ethereum-native holding, simplify to Vercel Django template

Repositions the site around three pillars (Ethereum holdings / Software /
Culture) per the company charter, adds bilingual JA/EN coverage, and
collapses the Cookiecutter-Django bootstrap to the minimal layout that
Vercel's Python Runtime auto-detects from manage.py.

What changed:
- Information architecture: new Vision, Holdings, Software, Business,
  legal/Privacy, legal/Cookies pages (replacing Services / About).
- Software page features GratefulMoments
  (https://github.com/masuda-so/GratefulMoments) as the flagship product.
- Company page now lists representative member, founding date, capital,
  corporate number 4011103016903, and registered office.
- Real contact email so.masuda.2003@ether-llc.com everywhere; segmented
  contact channels (partnerships, software, press, company info).
- OGP, Organization JSON-LD, /robots.txt, /sitemap.xml.
- Full English mirror under /en/ with hreflang alternates and a language
  switcher in the header.

Architecture cleanup:
- Drop scripts/export_static_site.py and scripts/static_export_urls.py
  along with vercel.json — Vercel auto-detects manage.py.
- Drop allauth, users app, anymail, crispy-forms, redis, postgres,
  whitenoise, mypy, sphinx, pytest from dependencies.
- Replace config/settings/{base,local,production,test}.py with a single
  config/settings.py modelled on Vercel's Django template.
- Remove Docker compose, devcontainer, justfile, ReadTheDocs, locale po
  files, and tests/ scaffolding.

* fix(ci): drop Docker test job, apply pre-commit auto-fixers, ignore djlint D018

- Replace docker-compose-based pytest job with a uv-based Django sanity
  job (check + migrate + collectstatic). The previous job referenced
  docker-compose.local.yml which was removed in this PR.
- django-upgrade dropped DEFAULT_AUTO_FIELD (BigAutoField is the default
  in Django 6).
- end-of-file-fixer added trailing newlines on config/urls.py and
  ether/static/css/project.css.
- pyproject-fmt added Python 3.12/3.14 classifiers.
- Ignore djlint D018: hardcoded internal links are intentional because
  the language switching produces conditional /en/ vs / paths that don't
  fit the {% url %} pattern cleanly.
masuda-so added a commit that referenced this pull request May 9, 2026
#17)

* refactor: rebrand as Ethereum-native holding, simplify to Vercel Django template

Repositions the site around three pillars (Ethereum holdings / Software /
Culture) per the company charter, adds bilingual JA/EN coverage, and
collapses the Cookiecutter-Django bootstrap to the minimal layout that
Vercel's Python Runtime auto-detects from manage.py.

What changed:
- Information architecture: new Vision, Holdings, Software, Business,
  legal/Privacy, legal/Cookies pages (replacing Services / About).
- Software page features GratefulMoments
  (https://github.com/masuda-so/GratefulMoments) as the flagship product.
- Company page now lists representative member, founding date, capital,
  corporate number 4011103016903, and registered office.
- Real contact email so.masuda.2003@ether-llc.com everywhere; segmented
  contact channels (partnerships, software, press, company info).
- OGP, Organization JSON-LD, /robots.txt, /sitemap.xml.
- Full English mirror under /en/ with hreflang alternates and a language
  switcher in the header.

Architecture cleanup:
- Drop scripts/export_static_site.py and scripts/static_export_urls.py
  along with vercel.json — Vercel auto-detects manage.py.
- Drop allauth, users app, anymail, crispy-forms, redis, postgres,
  whitenoise, mypy, sphinx, pytest from dependencies.
- Replace config/settings/{base,local,production,test}.py with a single
  config/settings.py modelled on Vercel's Django template.
- Remove Docker compose, devcontainer, justfile, ReadTheDocs, locale po
  files, and tests/ scaffolding.

* fix(ci): drop Docker test job, apply pre-commit auto-fixers, ignore djlint D018

- Replace docker-compose-based pytest job with a uv-based Django sanity
  job (check + migrate + collectstatic). The previous job referenced
  docker-compose.local.yml which was removed in this PR.
- django-upgrade dropped DEFAULT_AUTO_FIELD (BigAutoField is the default
  in Django 6).
- end-of-file-fixer added trailing newlines on config/urls.py and
  ether/static/css/project.css.
- pyproject-fmt added Python 3.12/3.14 classifiers.
- Ignore djlint D018: hardcoded internal links are intentional because
  the language switching produces conditional /en/ vs / paths that don't
  fit the {% url %} pattern cleanly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant