You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tracking issue for the second stage of the content relaunch planned in June 2026. The reconstruction it is built from: ~/reports/2026-09-20-openipc-org-content-relaunch-beyond-phase-1.md. The June plan file itself is lost, so this issue is the scope of record.
What the June plan decided
Positioning: "OpenIPC is the open platform for embedded video", plus the story of freeing cameras from their vendors' clouds. Navigation: Get Started | Hardware | Low Latency | Ecosystem | For Business | Community | News. Design: an engineering workbench, light body with dark ink (#0f1422) anchor sections, brand indigo #4c60d8 as the real primary, IBM Plex self-hosted, vanilla JS. Low Latency is the flagship pillar (/fpv is a 301 to it). Integrator logo walls are territory-specific: Russian integrators appear for ru visitors only. News is written as Markdown in the repository and rendered with kramdown. Labs and news ship in English only.
Languages: three. The maintainers decided on 2026-08-25 that the site serves English, Russian and Chinese and nothing else, because the cost is in keeping translations in step with the English copy, not in producing them.
What Phase 1 delivered, and what it left
Phase 1 landed on 2026-08-28 as #120 to #124: the design foundation (split stylesheet, self-hosted fonts, modular JS), the metadata, the navigation and footer, seven full-bleed pages (home, get-started, low-latency, ecosystem, business, community, donate), the redirect map, and the resurrected /open-wall.
It left 24 templates rendering inside the pre-relaunch .container wrapper (app/views/layouts/application.html.erb:64-75 falls back to it for any page that does not set content_for :fullwidth):
surface
templates
fate in this epic
/our-team, /green_life
2
fold into the new /about
/utilities
1
fold into the new /tools
/merchandise
1
retire
three web tools under /tools/
3
restyle, with a /tools landing page
timelaps-interval-calculator (unrouted stub)
1
delete
/stages-of-firmware-development
1
restyle
/web-interface, /majestic-endpoints
2
restyle
hardware catalogue and wizard (cameras/socs/)
7
restyle
Open Wall (snapshots/)
6
restyle
And three things June named that do not exist yet: /about (still a 302 to /community), /labs, and the news section (there is no Markdown renderer anywhere in the app).
Decisions taken
choice
About
one page: what OpenIPC is, the team, the longevity story; absorbs /our-team and /green_life with 301s
Tools
one landing page: the web tools we host and the vendor downloads; absorbs /utilities with a 301
Merchandise
retired; the shop is rebuilt when there is something to sell
Open Wall
in scope; it is the most visited page after the homepage and the one the homepage mosaic sends people to
News
Markdown files in the repository, kramdown, English only at launch, Atom feed
Labs
English only at launch, as June decided
/majestic-endpoints
the URL stays for inbound links; it leaves the sitemap, matching its absence from the menus
Russian integrator wall
stays visible on the ru homepage. This was left as a question in #123; it is settled here unless the maintainers say otherwise
Languages
every new page lands in en, ru and zh, or is listed above as English only
Folds before restyles, so nothing is restyled and then deleted. The new pages before the restyles, because they settle the components the restyles reuse (project cards, stage badges, browser frames). The seam closes last, and only when test/controllers/legacy_pages_test.rb has nothing left to pin.
Risks worth reading before starting
The wizard's printed commands. People paste them into bootloaders, and InstallationHelper#guarded_flash carries three field reports of a missing step bricking a camera. The hardware restyle changes markup and stylesheet and not one byte of a command; test/controllers/socs_controller_test.rb is the spec and stays untouched.
A restyle that drops a URL breaks inbound links in forum posts and the wiki. Every fold ships a 301 with a test, the way Serve the relaunched site #124 did.
Three languages is a promise per page. A page that lands in English with "translation missing" elsewhere is worse than the old page. Each child says which it is: three locales, or English only by decision.
The seam never closes. If the restyles are done "later", the site keeps two designs indefinitely, which is what Phase 1 was supposed to end. Phase 3 is the finish line, not an option.
Things that must not be lost
socs_controller_test.rb and guarded_flash define the wizard's output. The restyle is done against them, never around them.
/web-interface is generated from config/webui_gallery.yml, and tools/webui-gallery/run.sh photographs a camera from the same manifest, so the page and the pictures cannot drift. The restyle keeps that pairing and test/controllers/web_interface_test.rb.
The high-resolution timer must not depend on the JS bundle. Its inline script is what makes it usable as a latency-measurement tool on any device; the comment in the template says why.
/majestic-endpoints stays reachable. It is a pointer for inbound links, not a page to browse; test/controllers/majestic_endpoints_test.rb holds that.
PagesHelper::RU_INTEGRATORS is appended for ru only. The territory gate is in Ruby with a test; no restyle moves it back into CSS.
POST /snapshots is the camera upload API. The Open Wall restyle touches the gallery views and nothing on that path.
Tracking issue for the second stage of the content relaunch planned in June 2026. The reconstruction it is built from:
~/reports/2026-09-20-openipc-org-content-relaunch-beyond-phase-1.md. The June plan file itself is lost, so this issue is the scope of record.What the June plan decided
Positioning: "OpenIPC is the open platform for embedded video", plus the story of freeing cameras from their vendors' clouds. Navigation: Get Started | Hardware | Low Latency | Ecosystem | For Business | Community | News. Design: an engineering workbench, light body with dark ink (
#0f1422) anchor sections, brand indigo#4c60d8as the real primary, IBM Plex self-hosted, vanilla JS. Low Latency is the flagship pillar (/fpvis a 301 to it). Integrator logo walls are territory-specific: Russian integrators appear forruvisitors only. News is written as Markdown in the repository and rendered with kramdown. Labs and news ship in English only.Languages: three. The maintainers decided on 2026-08-25 that the site serves English, Russian and Chinese and nothing else, because the cost is in keeping translations in step with the English copy, not in producing them.
What Phase 1 delivered, and what it left
Phase 1 landed on 2026-08-28 as #120 to #124: the design foundation (split stylesheet, self-hosted fonts, modular JS), the metadata, the navigation and footer, seven full-bleed pages (home, get-started, low-latency, ecosystem, business, community, donate), the redirect map, and the resurrected
/open-wall.It left 24 templates rendering inside the pre-relaunch
.containerwrapper (app/views/layouts/application.html.erb:64-75falls back to it for any page that does not setcontent_for :fullwidth):/our-team,/green_life/about/utilities/tools/merchandise/tools//toolslanding pagetimelaps-interval-calculator(unrouted stub)/stages-of-firmware-development/web-interface,/majestic-endpointscameras/socs/)snapshots/)And three things June named that do not exist yet:
/about(still a 302 to/community),/labs, and the news section (there is no Markdown renderer anywhere in the app).Decisions taken
/our-teamand/green_lifewith 301s/utilitieswith a 301/majestic-endpointsruhomepage. This was left as a question in #123; it is settled here unless the maintainers say otherwisePhases
Phase 0 — needs no design work.
Phase 1 — the pages June named, built by folding what exists.
Phase 2 — restyle what stays.
Phase 3 — close the seam.
The sequencing judgement that matters most
Folds before restyles, so nothing is restyled and then deleted. The new pages before the restyles, because they settle the components the restyles reuse (project cards, stage badges, browser frames). The seam closes last, and only when
test/controllers/legacy_pages_test.rbhas nothing left to pin.Risks worth reading before starting
InstallationHelper#guarded_flashcarries three field reports of a missing step bricking a camera. The hardware restyle changes markup and stylesheet and not one byte of a command;test/controllers/socs_controller_test.rbis the spec and stays untouched.Things that must not be lost
socs_controller_test.rbandguarded_flashdefine the wizard's output. The restyle is done against them, never around them./web-interfaceis generated fromconfig/webui_gallery.yml, andtools/webui-gallery/run.shphotographs a camera from the same manifest, so the page and the pictures cannot drift. The restyle keeps that pairing andtest/controllers/web_interface_test.rb./majestic-endpointsstays reachable. It is a pointer for inbound links, not a page to browse;test/controllers/majestic_endpoints_test.rbholds that.PagesHelper::RU_INTEGRATORSis appended forruonly. The territory gate is in Ruby with a test; no restyle moves it back into CSS.POST /snapshotsis the camera upload API. The Open Wall restyle touches the gallery views and nothing on that path.