Goal
Add a reusable personal space for Gosuda members inside gosuda.org.
The feature should not be hard-coded for a specific person. Any member should be able to create and maintain a stable public page that collects their writing, projects, talks, and external profiles while remaining part of the Gosuda website.
The intent is to let individual contributors build a public technical identity without splitting personal work into separate websites.
Contribution model
Each member should create and maintain their own personal space through a pull request.
The site should provide a simple, documented profile/content structure so a member can:
- fork or branch from the repository
- add their own profile metadata and optional personal content
- open a pull request
- have the change reviewed and merged like any other Gosuda website contribution
Adding or updating a personal space should not require maintainers to manually edit a central profile page or implement member-specific logic.
A member should remain the primary author of their own profile data. Future changes to bio, links, projects, talks, or other personal metadata should also be submitted through pull requests.
Proposed model
Introduce a generic member/profile model and route, for example:
/members/{handle}
/members/{handle}/writing
/members/{handle}/projects
/members/{handle}/talks
/members/{handle}/about
The exact URL structure can change, but it should be data-driven and work for any member rather than being tied to one username.
A possible repository structure could be something like:
root/members/{handle}/profile.md
or an equivalent metadata format that is easy for contributors to edit in a PR.
Member profile
Each member should be able to define metadata such as:
- handle / display name
- short bio or positioning line
- avatar
- external profiles and contact links
- selected projects
- talks / conference appearances
- optional featured writing
The profile should prefer public evidence—projects, articles, talks, benchmarks, architecture work, and other output—over a long biography.
Writing integration
Existing blog posts already carry author metadata. Use that metadata to automatically surface posts on the corresponding member page without moving or duplicating canonical articles.
A member's writing page should therefore be generated from existing content metadata rather than maintained as a separate manual list.
Members can add new writing through the existing blog contribution flow and associate it with their profile via author metadata.
Projects
Allow members to select or annotate projects they contributed to. This should be a curated set of proof-of-work rather than a complete repository list.
Each project entry may include:
- project name
- short description / problem being explored
- member role or contribution
- repository or project URL
- related technical writing
Project selections and annotations should be maintained by the member through pull requests.
Talks
Provide a place to accumulate public talks, conference appearances, workshops, and recordings per member.
This makes the member page usable as a stable speaker/profile URL instead of depending entirely on third-party conference profiles.
Talk metadata should also be editable through the same PR-based member profile workflow.
Multilingual support
Member pages should use the website's existing translation pipeline where appropriate.
Language variants should remain linked to the same logical profile/content and support the existing language switcher, canonical URLs, and hreflang metadata.
Integration with the existing site
Personal spaces should remain part of Gosuda rather than becoming isolated personal sites.
Navigation should make it easy to move between:
- Gosuda organization/projects
- member profiles
- shared blog content
The goal is a single reputation surface where individual contributors and Gosuda reinforce each other.
Acceptance criteria
Goal
Add a reusable personal space for Gosuda members inside
gosuda.org.The feature should not be hard-coded for a specific person. Any member should be able to create and maintain a stable public page that collects their writing, projects, talks, and external profiles while remaining part of the Gosuda website.
The intent is to let individual contributors build a public technical identity without splitting personal work into separate websites.
Contribution model
Each member should create and maintain their own personal space through a pull request.
The site should provide a simple, documented profile/content structure so a member can:
Adding or updating a personal space should not require maintainers to manually edit a central profile page or implement member-specific logic.
A member should remain the primary author of their own profile data. Future changes to bio, links, projects, talks, or other personal metadata should also be submitted through pull requests.
Proposed model
Introduce a generic member/profile model and route, for example:
/members/{handle}/members/{handle}/writing/members/{handle}/projects/members/{handle}/talks/members/{handle}/aboutThe exact URL structure can change, but it should be data-driven and work for any member rather than being tied to one username.
A possible repository structure could be something like:
or an equivalent metadata format that is easy for contributors to edit in a PR.
Member profile
Each member should be able to define metadata such as:
The profile should prefer public evidence—projects, articles, talks, benchmarks, architecture work, and other output—over a long biography.
Writing integration
Existing blog posts already carry author metadata. Use that metadata to automatically surface posts on the corresponding member page without moving or duplicating canonical articles.
A member's writing page should therefore be generated from existing content metadata rather than maintained as a separate manual list.
Members can add new writing through the existing blog contribution flow and associate it with their profile via author metadata.
Projects
Allow members to select or annotate projects they contributed to. This should be a curated set of proof-of-work rather than a complete repository list.
Each project entry may include:
Project selections and annotations should be maintained by the member through pull requests.
Talks
Provide a place to accumulate public talks, conference appearances, workshops, and recordings per member.
This makes the member page usable as a stable speaker/profile URL instead of depending entirely on third-party conference profiles.
Talk metadata should also be editable through the same PR-based member profile workflow.
Multilingual support
Member pages should use the website's existing translation pipeline where appropriate.
Language variants should remain linked to the same logical profile/content and support the existing language switcher, canonical URLs, and
hreflangmetadata.Integration with the existing site
Personal spaces should remain part of Gosuda rather than becoming isolated personal sites.
Navigation should make it easy to move between:
The goal is a single reputation surface where individual contributors and Gosuda reinforce each other.
Acceptance criteria