CSS Layout News in the ATmosphere

🔗 **Source:** [CSS Layout News in the ATmosphere](https://rachelandrew.co.uk/archives/2026/09/04/css-layout-news-in-the-atmosphere/)
> [!note]+ Document Notes
> tags: [atproto, css-layout, newsletters, data-portability, indieweb, rachel-andrew]
> author: Rachel Andrew
> source: rachelandrew.co.uk
> reference: https://rachelandrew.co.uk/archives/2026/09/04/css-layout-news-in-the-atmosphere/
> date created: 2026-10-02 11:00
>
> > [!info] Generated analysis — not the author's words. Sections below are machine-written
> > from the captured source. Only text inside `> [!quote]` blocks is verbatim from the author.
> > Do not quote or attribute any other line to the named author.
>
> # 🏷️ Title: CSS Layout News in the ATmosphere
>
<!-- deep-read:sections start -->
## 🧭 Table of contents
- [📝 Summary](#-summary)
- [📖 Main content](#-main-content)
- [🗒️ Notes](#️-notes)
- [📚 References](#-references)
- [🗣️ Paraphrase](#️-paraphrase)
- [📰 Newsletter](#-newsletter)
- [✅ Action items](#-action-items)
- [🧪 Hypotheses](#-hypotheses)
- [📊 Methodology](#-methodology)
- [❓ Questions](#-questions)
- [🔮 Future research](#-future-research)
- [💡 Implications](#-implications)
- [🧠 Learning styles assessment](#-learning-styles-assessment)
- [📊 Accessibility assessment](#-accessibility-assessment)
- [🌍 DEIB assessment](#-deib-assessment)
- [✅ Logical validity](#-logical-validity)
- [🛡️ DARVO analysis](#️-darvo-analysis)
- [🎯 Conclusion](#-conclusion)
- [🔄 Refactor appendix](#-refactor-appendix--css-layout-news-in-the-atmosphere)
Paragraph labels like ¶2 are the pipeline's extraction labels, not part of the original post. The captured text is 236 words in four paragraphs, with five links. This note replaces an earlier light-touch note and keeps its verified facts. Several claims in that earlier note went beyond the source; the Main content section marks which parts are the author's statements and which are inference.
## 📝 Summary
- **What happened.** On 2026-09-04 (the Reader date for this capture), Rachel Andrew announced a relaunched CSS Layout News, hosted on Offprint (¶2). The newsletter began in 2015 "mostly to have my own venue to go on about CSS grid" when no stable browser supported it (¶1). It reached 343 issues by 2023, then "fizzled out" (¶1).
- **The claim.** Two reasons ended it. One was being busy. The larger one, in the author's words, was spam signups on the previous platform's form: "If I didn’t clean them up, I got charged for sending email to them" (¶1). The relaunch moves the archive to Offprint, an atproto app, and the author expects this to be the last migration, because each issue is stored in the author's own PDS (¶2).
- **Why it matters.** The post is a first-person example of two problems newsletter authors hit: abuse costs that land on the sender, and platform lock-in at migration time. It states the AT Protocol answer to the second in one sentence. The post is an announcement, not an argument, and it carries no code, pricing or comparison with other tools.
- **Key stakeholders.** Rachel Andrew (author and publisher), Offprint (host, credited with migration help in ¶2), former subscribers (they must sign up again, ¶4), and the unnamed previous platform (¶1).
- **Risks and tradeoffs.** The list starts at zero (¶3, ¶4). The portability claim is a prediction ("should be the last time," ¶2), and the post gives no evidence yet that another app can read the stored issues. The post names no commercial relationship with Offprint beyond help with the migration.
- **Bottom line.** A 343-issue CSS newsletter returns on an atproto publishing app with a new subscriber list. The post is advocacy only in the sense of a personal announcement; it doesn't try to persuade anyone to adopt atproto.
## 📖 Main content
**What the author says (¶1 to ¶4).**
- The newsletter began in 2015, mostly as a venue to write about CSS grid, which no stable browser shipped at the time (¶1).
- It stopped in 2023 after 343 issues (¶1). The author gives two causes: being busy, and signup-form spam on the previous platform. The author says the second was the bigger one ("mostly," ¶1).
- Spam signups carried a cost: unremoved addresses meant being "charged for sending email to them" (¶1).
- Interesting developments in CSS layout and "the existence of atproto publishing apps" prompted the restart (¶2).
- Offprint helped with the archive migration (¶2). Because Offprint "is an atproto app," the author expects no further migration, and each issue "is safely stored in my PDS" (¶2).
- Prior recipients must re-subscribe. Two reasons are given: the spam-signup problem, and the list "hadn’t been sent to for over two years" (¶4). The author says a sudden send to an old list is "a good way to get flagged as spam" even without selling anything (¶4).
**Terms.** These definitions are background, not stated in the post, and are standard in the AT Protocol ecosystem.
- **atproto / AT Protocol.** An open protocol for social and publishing apps. Accounts and posts live in a personal data server (PDS), so an app is one view onto data the account holder stores.
- **PDS.** The server that holds an account's records. The post says each issue is stored in the author's.
- **Offprint.** Named in the post as the hosting app and as "an atproto app." The captured text says nothing else about how it works.
**Inference, clearly labeled.** The post doesn't say which platform billed per recipient, how many spam signups arrived, or what the charges were. It doesn't say how a PDS record differs from an exported archive, and it gives no test of moving to a second atproto app. A reader can infer that per-recipient billing turns signup abuse into an invoice for the sender, but the post states only the outcome. The vault's earlier note also made claims the source doesn't: that the earlier list "is gone," that a dormant list harms delivery "regardless of consent history," and that the promise ties to a specific publisher-side protocol audit. None of those is in the captured text, and this note drops them.
**What the links show.** The link list has five entries (see References). The captured markup gives anchor text and URLs only, so this note describes the links by their anchors and URL shapes and doesn't describe the pages behind them.
**Uncertain or contested.** Nothing in the post is contested. The only forward-looking claim is the portability prediction in ¶2.
## 🗒️ Notes
#### 📄 ¶1 Origin and decline
- Started in 2015, mostly as a place to write about CSS grid when no stable browser had it (¶1).
- 343 issues by 2023, then it "fizzled out" (¶1).
- Causes: being busy, and "mostly" the signup form filling with spam (¶1).
- Cost mechanism: uncleaned spam addresses meant send charges (¶1).
#### 📄 ¶2 Relaunch on Offprint
- Motive: "the number of interesting things happening in the CSS layout space" (¶2).
- Push: atproto publishing apps existing (¶2).
- Offprint helped migrate the archive (¶2).
- Claim: as an atproto app, Offprint means this is the last migration, with each issue stored in the author's PDS (¶2).
#### 📄 ¶3-¶4 Starting with a new list
- Heading: "Starting with a new list" (¶3).
- Previous recipients need to sign up again (¶4).
- Reasons: spam signups, plus no sends for over two years (¶4).
- Risk named: a sudden send to an old list is a good way to get flagged as spam, though nothing is for sale (¶4).
- Call to action: sign up for "nerdy CSS layout observations" by email, via the "sign up here" link (¶4).
## 📚 References
The captured link list has five entries. All five are the author's own links; the post cites no outside source. Descriptions below come from anchor text and URL shape only, and no linked page was read.
- [In 2015 I started my CSS Layout News newsletter](https://csslayout.news/a/3mttbgsjzzw23-issue-1): anchored on the start of ¶1. The URL path ends in "issue-1". The page itself wasn't read.
- [CSS Layout News](https://csslayout.news): the newsletter's site, linked from the relaunch announcement in ¶2.
- [Offprint](https://offprint.app/): the host named in ¶2.
- [safely stored in my PDS](https://pds.ls/at://did:plc:xi53lkcvx4b3bl5tgsb7tnqe/app.offprint.document.article): anchored on the PDS claim in ¶2. The URL embeds an at:// address with a DID and the record type `app.offprint.document.article`. Whether it resolves to an issue, a list of issues or something else is unverified.
- [sign up here](https://csslayout.news/): the signup link in ¶4, the same site root as the second entry.
Claims with no link in the captured markup: the 343-issue count, the 2023 end date, the spam-billing account, and the claim that a dormant list risks spam flags. These are the author's statements about the author's own experience.
## 🗣️ Paraphrase
Rachel Andrew started CSS Layout News in 2015 because there was no good place to write about CSS grid before browsers shipped it. By 2023 it had 343 issues, and then it stopped. Being busy was part of it. The bigger part was spam signups: leave them on the list and the previous platform billed for emailing them, so cleanup was the author's job.
Now the author is bringing it back. CSS layout has a lot going on, and atproto publishing apps tipped the decision. The new home is Offprint, which helped move the archive. Since Offprint is an atproto app, the author expects not to migrate again, and each issue sits in the author's own PDS.
The list starts over. Anyone who got the emails before has to sign up again. The old list was also two years silent, and a surprise send after that gap is a quick way to be marked as spam, even for a free newsletter. If you want nerdy CSS layout observations in your inbox, there's a signup link.
## 📰 Newsletter
**CSS Layout News is back, and it lives in an atproto PDS.** Rachel Andrew's CSS Layout News ran for 343 issues from 2015 to 2023 and has relaunched on Offprint. Issues now sit in the author's own personal data server, so the next move shouldn't mean another export. Prior subscribers need to sign up again at [csslayout.news](https://csslayout.news).
For WordPress people, the interest is in the pattern, not the platform. The post names no WordPress tool. The takeaway for anyone running a newsletter is to watch what spam signups cost you and to plan your next migration before you need it. Any tie to WordPress publishing plugins is inference, not something the post says.
## ✅ Action items
Each line ties to the post or says plainly that no action follows.
#### DevRel
- Developer advocacy: no direct action. If you cite this post in a talk on data portability, quote the author's own words (¶2) and label the portability claim as a prediction.
- Education: a short explainer using this post as a worked example of "content in the author's own PDS, app on top."
- Developer experience: none from this source.
- Developer marketing: none. Don't present the post as an endorsement of Offprint beyond the author's own statements.
- Community management: if you run a signup form, check what spam signups cost you before they arrive (¶1).
- Internal/external/cross-project: none from this source.
#### OSPO
- Policy and governance: none directly. The post is an individual's publishing choice.
- License compliance: none.
- Security management: none. The post doesn't discuss security.
- Software inventory: none.
- Developer support: none.
- Community engagement: none from this source.
- Strategic alignment: none. Nearest relevance: a note on owning your archive when choosing a publishing host.
#### Community
- Maintainers: no direct action. Nearest relevance: maintainers who run newsletters can read ¶4 before mailing a list that's been silent for two years.
- Contributors: none.
- Sponsors: none. The post discusses no sponsorship.
- Ecosystem: none from this source.
#### WordPress
- Core: no direct action.
- Core Performance: none.
- Core AI: none.
- **Core Program Team:** none.
- Mobile: none.
- Playground: none.
- Community: no direct action. Nearest relevance: meetup organizers who run mailing lists can use ¶4 as a prompt about re-permissioning old lists.
- Training: none.
- Marketing: none. The post isn't WordPress-related; don't frame it as WordPress news.
- Support: none.
- Design: none.
- Documentation: none.
- Photos: none.
- TV: none.
- Polyglots: none.
- Accessibility: none from this source.
- Meta: none. The post doesn't touch the .org directory.
- CLI: none.
- Hosting: none. The post names no host other than Offprint.
- Tide: none.
- Openverse: none.
- Themes: none.
- Plugins: none. Any link between atproto and publishing plugins is outside this post.
#### The WPOCC
- Programs: none directly.
- Projects: none.
- Funding experiments: none from this source.
### FAIR
- Technical independence: none directly. The post's PDS claim (¶2) is about archive portability, not package signing or provenance.
- Policies and covenants: none directly.
- Productized governance artifacts: none from this source.
## 🧪 Hypotheses
1. Newsletter platforms that bill per recipient cost senders measurable money on spam signups, and the share rises when the signup form has no confirmation step.
2. An archive stored as records in an author's PDS can be re-read by a second atproto publishing app without a manual export, if the second app understands the same record type.
3. A list that hasn't been mailed for two years produces a higher spam-complaint rate on its first send than a list mailed monthly.
4. Authors who restart a dormant newsletter with a fresh opt-in list reach a higher engaged-reader share than authors who mail the old list.
5. Publishing on atproto apps reduces migration effort for authors compared with platform-hosted newsletters, measured in hours per migration.
## 📊 Methodology
- **H1.** Collect public pricing pages for newsletter platforms and model a spam-signup scenario at a stated rate. Compare cost with and without double opt-in. Use platform documentation, not anecdotes.
- **H2.** Using a test account, publish a document through one atproto publishing app, then check whether a second app displays the record. The record type named in the post's PDS link (`app.offprint.document.article`) is the first thing to check. Report which fields survive.
- **H3.** Seed two lists of equal size, one dormant and one active, with test addresses at major mailbox providers. Send the same message and compare placement and complaint signals.
- **H4.** Survey authors who restarted a newsletter. Compare open and unsubscribe rates between those who re-permissioned and those who didn't. Self-report limits this design.
- **H5.** Time a migration of a sample archive from a hosted newsletter platform to an atproto app and back, and record steps and hours.
- **Controls throughout.** Use test content, and name the platforms and versions tested.
## ❓ Questions
- Which platform billed for spam signups, and does it offer double opt-in or signup limits (¶1)?
- What does a PDS record for an issue contain, and can another app render it (the PDS link in ¶2)?
- What happens to the archive if Offprint shuts down: does it stay in the author's PDS and stay readable?
- How do subscriber email addresses fit into the model, given that issues are stored in the PDS but the list lives somewhere (¶4)?
- Did the previous list's contents come over at all, or does "sign up again" mean none did (¶4)?
- How did Offprint help with the migration (¶2), and was it a one-time import?
- Does the newsletter's email delivery run through Offprint or a separate sender?
- Is the "last migration" claim (¶2) revisited later, for example after a year of use?
## 🔮 Future research
- **Portability test.** A year after the relaunch, check whether the issues are still readable from the author's PDS and whether a second app can display them.
- **Spam-signup economics.** Compare per-recipient billing models across newsletter platforms and how each handles bot signups.
- **Dormant-list restarts.** Collect documented cases of restarting an old list, with the methods used and the results.
- **atproto publishing apps.** Map which apps share a record format for long-form articles, using public lexicon definitions rather than app marketing.
## 💡 Implications
- **Practice.** Newsletter authors can check what their platform charges for unconfirmed addresses and whether archives export. The post shows one author choosing a host partly to avoid the next migration.
- **Policy.** The post makes no policy claim. Anyone running a list should check their jurisdiction's rules on re-contacting subscribers before a mailing to an old list. This note doesn't give legal advice.
- **Security.** The spam-signup abuse in ¶1 is a form-abuse problem with a billing consequence. The post doesn't discuss protections.
- **Education.** The post is a short, concrete example of a PDS in use, useful when teaching the "data lives with the account" idea. The PDS link in ¶2 can anchor a demo, once someone has opened it and verified what it holds.
- **Funding.** The post doesn't discuss funding or pricing for the relaunch. The one cost described is the previous platform's per-send charge on spam addresses (¶1).
## 🧠 Learning styles assessment
- **Reading level estimate.** Flesch-Kincaid Grade Level 7.9 and Flesch Reading Ease 69.2 for the 224 words of body text, using a rough syllable counter. Treat the numbers as approximate.
#### 👀 Visual learners
- Present: no images, diagrams or code in the captured text.
- Improve: a before/after diagram of the platform-hosted versus PDS-hosted archive would show the migration claim in ¶2.
#### 🔊 Aural learners
- Present: no audio is referenced.
- Improve: a short audio read of the four paragraphs, about two minutes.
#### 🗣️ Verbal learners
- Present: short, plain sentences and a personal narrative with dates and numbers (¶1).
- Improve: a glossary for "atproto," "PDS" and "atproto app." The post uses them without definition (¶2).
#### 🧩 Kinesthetic learners
- Present: one action, signing up (¶4).
- Improve: a small task, such as publishing a test document on an atproto app and finding it in a PDS viewer.
#### 🧠 Logical learners
- Present: a clear cause chain: spam signups, then send charges, then the newsletter stalls (¶1).
- Improve: state the evidence for "last time I need to migrate" (¶2), such as the record type's shared definition.
#### 🧑🤝🧑 Social learners
- Present: the post invites readers to join the list (¶4).
- Improve: a discussion prompt for newsletter authors: "What did your last migration cost you?"
#### 🧘♀️ Solitary learners
- Present: a self-contained four-paragraph read.
- Improve: a self-check: "Where does my archive live, and could I move it in an afternoon?"
#### 🌿 Naturalistic learners
- Present: nothing relevant.
- Improve: none needed for this topic.
## 📊 Accessibility assessment
Judged as captured. The capture is the post's text and link list, so the live page's markup, images and styles aren't visible.
#### Screen reader semantics
- Present: one heading appears in the captured text ("Starting with a new list," ¶3), and paragraphs are short.
- Improve: heading levels can't be confirmed from the capture. The title carries "ATmosphere," a wordplay that a screen reader reads as a word; the post doesn't explain it. Link anchors such as "sign up here" (¶4) are descriptive only in context. WCAG 2.4.4 (Link Purpose, In Context) is met if the surrounding sentence is read, and "sign up here" would be clearer as "sign up for CSS Layout News."
#### Keyboard navigation
- Present: not assessable from the captured text.
- Improve: the post contains five links and no other interactive element in the capture.
#### Contrast and readability
- Present: unknowable from text. Page styling isn't captured.
- Improve: none can be recommended without the rendered page.
#### Text resizing and reflow
- Present: the short paragraphs reflow as plain text.
- Improve: WCAG 1.4.10 (Reflow) can't be verified here.
#### Media and captions
- No media referenced in the captured text.
#### Forms and interactions
- Present: the post links to a signup (¶4) but shows no form in the capture.
- Improve: the signup form on the linked site wasn't read, so labels and error handling are unverified. WCAG 3.3.2 (Labels or Instructions) applies to that form.
#### Standards reference
- Candidate gaps against WCAG 2.2 AA, each unverified: **2.4.4** (link purpose for "sign up here"), **3.3.2** (the linked signup form), **1.3.1** (heading structure, not visible in the capture). The capture shows no images, so 1.1.1 has nothing to test.
## 🌍 DEIB assessment
#### Cultural breadth
- Present: a UK-hosted personal site (rachelandrew.co.uk) and an English-language post. The text has no multilingual content.
- Improve: the post doesn't mention translated issues. A language note would help non-English readers of CSS content.
#### Inclusive language
- Present: plain, first-person language. Jargon such as "atproto" and "PDS" appears undefined (¶2).
- Improve: define atproto and PDS on first use, with one link to an explainer. "Nerdy" (¶4) is a self-descriptive, affectionate term for the content.
#### Neurodiversity support
- Present: four short paragraphs with one heading, consistent and predictable.
- Improve: a short "what changed" list (new host, new list, where to sign up) would help scanning.
#### Representation
- Present: one named author. The post names no other people. Offprint is named as an organization.
- Improve: none needed. Pronouns for the author don't appear in the post, so none are used in this note.
#### Psychological safety
- Present: no accusations or blame. The previous platform isn't named (¶1).
- Improve: none needed. The "start over" request (¶4) is explained plainly rather than assigned to readers as a failing.
## ✅ Logical validity
Source type: a personal announcement. It reports the author's own history and states one prediction. It isn't an argument for atproto, and the author doesn't sell anything (¶4).
#### Strong reasoning
- **Cause and effect, ¶1.** Spam signups plus per-send charges explain why cleanup was unavoidable. The mechanism is given: uncleaned addresses cost money.
- **Explicit reasoning for the restart, ¶4.** Two stated reasons, spam signups and a two-year gap, support the decision to start a new list. The second reason names its risk: a sudden send can get flagged as spam.
- **Conditional framing, ¶2.** "This should be the last time" uses "should," not "will." The claim is hedged correctly for a prediction. Clarify by naming what would make it false, such as Offprint changing its record format.
#### Fallacies
- None found. Checked: the causal chain in ¶1, the portability claim in ¶2, and the re-subscribe reasoning in ¶4. The gaps are omissions, not errors. The post doesn't show that another app can read the stored issues, and it gives no figures on the spam volume or the charges. For a short announcement that is proportionate.
#### Tone of voice
- Informal, warm and self-aware. Examples: "fizzled out" (¶1), "it might be fun to resurrect the project" (¶2), "nerdy CSS layout observations" (¶4). The tone is promotional only toward the newsletter itself, not toward any vendor.
## 🛡️ DARVO analysis
Not applicable to this source. DARVO describes a response to an accusation, and this post answers none. **Deny:** the post denies nothing; it admits the newsletter "fizzled out" (¶1). **Attack:** no person or company is attacked, and the previous platform isn't named. **Reverse victim/offender:** the spam-signup passage describes a cost to the author but doesn't cast anyone as an offender (¶1).
## 🎯 Conclusion
CSS Layout News returned on 2026-09-04 as a relaunch on Offprint, after 343 issues, a 2023 stall and a spam-signup problem that cost the author money (¶1, ¶2). The author stores each issue in the author's own PDS and expects this to be the last migration (¶2). The list restarts from zero, partly because of spam and partly because the old list had gone two years without a send (¶4).
The post proves little about atproto itself. Its value is the first-person account and one checkable pointer, the PDS link, which this note didn't open. The portability claim stays a prediction until another app reads the same records.
**Next steps for readers:** sign up at [csslayout.news](https://csslayout.news) if you want the newsletter, since prior subscription doesn't carry over (¶4). If you run your own list, check your platform's charge for unconfirmed signups and your archive's export path. Revisit the portability claim in a year.
## 🔄 Refactor Appendix — CSS Layout News in the ATmosphere
> Density: 2–5 Literature atoms (H1 pad), 0–3 Permanent candidates (H4 pad).
> Emitted: 4 Literature, 1 Permanent. Resonance filter applied: the signup call to action and
> the newsletter's origin story were dropped as announcement detail.
>
> Konik claim-header rules: present tense, declarative, ≤10 words, searchable, unique.
>
> Atomicity: one declarative sentence per atom. "and"/"also" → split.
>
> Tag pool: #bmf · #addendum · #xref · #articleseed · #storystem · #share · #aphorisms
### 📚 Literature Split Pad
#### [H1] Spam signups turn into a sender's bill
> [!quote] [¶1]
> If I didn’t clean them up, I got charged for sending email to them.
**Context & use**:
- ¶1, the author's account of why the newsletter stalled.
- States the mechanism but not the platform, the volume or the rate. Don't infer them.
**Tags**: #xref #articleseed
<!-- atomicity: 1 idea ✓ -->
#### [H2] An atproto app is the author's last migration
> [!quote] [¶2]
> as Offprint is an atproto app, this should be the last time I need to migrate it anywhere.
**Context & use**:
- ¶2, the only forward-looking claim in the post.
- A prediction ("should"), not a demonstrated result. Revisit after a year.
**Tags**: #xref #share
<!-- atomicity: 1 idea ✓ -->
#### [H3] Each issue lives in the author's own PDS
> [!quote] [¶2]
> Each issue is safely stored in my PDS.
**Context & use**:
- ¶2, paired with the PDS link in References.
- The post doesn't say which fields the stored record keeps. Check the record before relying on it.
**Tags**: #xref
<!-- atomicity: 1 idea ✓ -->
#### [H4] A dormant list risks spam flags on first send
> [!quote] [¶4]
> Suddenly sending email to an old list is a good way to get flagged as spam, even though I’m not selling anything.
**Context & use**:
- ¶4, the author's reason for starting a new list.
- The post gives no figures. Treat it as an author's experience, not a measured rate.
**Tags**: #xref #share
<!-- atomicity: 1 idea ✓ -->
### 🧠 Atomic Split Pad
#### [P1] Portability needs a second reader
**Claim** (one sentence, Courtney's voice): A portability claim stays a prediction until a second app reads the same stored records.
**Evidence pointer**: [[#H2]] · [[#H3]]
**Scope & conditions**: Holds for any "store it in your own data server" claim, including this one. Breaks if the second app is built by the same team on a private format. The post gives no test, so this note treats ¶2 as a prediction.
**Links**:
- [[Data portability]] — because extends
- [[Platform lock-in]] — because contrasts on where the content lives
- [[Newsletter migration]] — because applies-in
<!-- atomicity: 1 idea ✓ -->
### ✏️ Fleeting Queue
- [F1] Open the PDS link in ¶2 and record what the record holds, once on a machine with network access #fleeting #inbox
- [F2] Check which platform charged for spam signups in ¶1, if the author ever names it #fleeting #inbox
- [F3] Compare record types across atproto publishing apps before relying on the "last migration" claim #fleeting #inbox #articleseed
### → Things 3 (max 2 actions)
- [ ] Open the PDS record linked in ¶2 and note what fields an issue stores, CSS Layout News follow-up #things
- [ ] Revisit the "last migration" claim in a year, 2027-09, CSS Layout News follow-up #things
<!-- deep-read:sections end -->
📄 **Full text:** [[Full Document Contents/Articles/CSS Layout News in the ATmosphere.md|CSS Layout News in the ATmosphere by Rachel Andrew]]
## Highlights
- However, given the number of interesting things happening in the CSS layout space, I thought it might be fun to resurrect the project. The existence of atproto publishing apps gave me a final push. Today I’m announcing a relaunched [CSS Layout News](https://csslayout.news), hosted on [Offprint](https://offprint.app/). They were really helpful in helping me migrate my archive and, as Offprint is an atproto app, this should be the last time I need to migrate it anywhere. Each issue is [safely stored in my PDS](https://pds.ls/at://did:plc:xi53lkcvx4b3bl5tgsb7tnqe/app.offprint.document.article). ([View Highlight](https://read.readwise.io/read/01m1p9fyy44xktx1e10r41vg1y))
- Note: A working publisher-side atproto example, endorsed by someone with a 343-issue archive and real migration scars — more credible than an architectural argument. Relevant to the PKIW Standard.site publisher-pillar gap. "The last time I need to migrate" is a prediction, not a demonstration: it holds only while the schema stays readable by other apps and the PDS stays hers.
- Tags: atom/zettel/z1, atom/literature/h1