# linter

Published articles for linter.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## tota11y - an accessibility visualization toolkit

DevFeed: [tota11y - an accessibility visualization toolkit](<https://devfeed.tech/articles/tota11y-an-accessibility-visualization-toolkit-27413.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/tota11y.htm>)

Author: Khan Academy

Published: 2015-06-08T22:00:00Z

Content type: release

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [audit](<https://devfeed.tech/topics/audit.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessibility-testing](<https://devfeed.tech/tags/accessibility-testing.md>), [audit](<https://devfeed.tech/tags/audit.md>), [browser](<https://devfeed.tech/tags/browser.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [linter](<https://devfeed.tech/tags/linter.md>), [news](<https://devfeed.tech/tags/news.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>), [visualization](<https://devfeed.tech/tags/visualization.md>), [web](<https://devfeed.tech/tags/web.md>), [web-frontend](<https://devfeed.tech/tags/web-frontend.md>)

### AI overview

Khan Academy announces tota11y, an accessibility visualization toolkit designed to make manual accessibility testing easier for developers. The article describes its development and use of browser-based annotations to help teams understand and fix accessibility issues.

### Source excerpt

By Jordan Scales Today we're releasing tota11y (on GitHub), an accessibility visualization toolkit that aims to reduce the ... Read more

## Checking code with lint, formatting it with prettier

DevFeed: [Checking code with lint, formatting it with prettier](<https://devfeed.tech/articles/checking-code-with-lint-formatting-it-with-prettier-22415.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/08/checking-code-with-lint-formatting-it.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-08-10T23:23:45Z

Content type: tutorial

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [ESLint](<https://devfeed.tech/topics/eslint.md>), [Prettier](<https://devfeed.tech/topics/prettier.md>), [Playwright](<https://devfeed.tech/topics/playwright.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [bun](<https://devfeed.tech/tags/bun.md>), [bun-create-playwright](<https://devfeed.tech/tags/bun-create-playwright.md>), [eslint](<https://devfeed.tech/tags/eslint.md>), [formatting](<https://devfeed.tech/tags/formatting.md>), [linter](<https://devfeed.tech/tags/linter.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This tutorial explains how to add ESLint for static analysis and Prettier for consistent code formatting in a Playwright project. It also discusses eslint-plugin-playwright and using eslint-config-prettier to reduce conflicts between ESLint and Prettier.

### Source excerpt

Now that we've installed bun, Anthropic's package manager, scaffolded a Playwright framework and closely examined the results, and added typechecking with TypeScript's compiler, it's time to add ways to check the code with lint, and reformat the code with prettier. We will be using: ESLint, as the static-analysis tool to review the code without running it. Little bits of fluff -- like syntax errors, structural bugs, anti-patterns, and code style violations -- can collect on your code, so it helps to run a linter to help catch it all, such as ESLint. There is also a linter, eslint-plugin-playwright, for Playwright tests. Prettier enforces a consistent code style across your entire codebase. Because ESLint and Prettier can conflict, we will be using Prettier's eslint-config-prettier, which turns off all rules that are unnecessary or might conflict with ESLint. What is a Linter? According to the Wikiwand entry for Lint, "Stephen C. Johnson, a computer scientist at Bell Labs, came up with the term 'lint' in 1978 while debugging the yacc grammar he was writing for C and dealing with portability issues stemming from porting Unix to a 32-bit machine. The term was borrowed from lint, the tiny bits of fiber and fluff shed by clothing, as the command he wrote would act like a lint trap in a clothes dryer, capturing waste fibers while leaving whole fabrics intact. The lint program was released outside of Bell Labs in Unix V7, in 1979. "In his 1978 paper, Johnson explained his reasons for creating a new program to detect errors: '...the general notion of having two programs is a good one' because they concentrate on different things, thereby allowing the programmer to 'concentrate at one stage of the programming process solely on the algorithms, data structures, and correctness of the program, and then later retrofit, with the aid of lint, the desirable properties of universality and portability' " What is ESLint? Website: https://eslint.org/ GitHub: https://github.com/eslint/e

## YAML for DevOps Beginners, Syntax, Rules and Common Mistakes

DevFeed: [YAML for DevOps Beginners, Syntax, Rules and Common Mistakes](<https://devfeed.tech/articles/yaml-for-devops-beginners-syntax-rules-and-common-mistakes-17492.md>)

Original publisher: [Read original article](<https://kodekloud.com/blog/yaml-for-devops-beginners-syntax-rules-mistakes/>)

Author: Pramodh Kumar M

Published: 2026-08-06T17:16:19Z

Content type: tutorial

Language: en

Sources: [Kubernetes - KodeKloud Blog | DevOps, Cloud, Kubernetes, AI Tutorials & More](<https://devfeed.tech/sources/kubernetes-kodekloud-blog-devops-cloud-kubernetes-ai-tutorials-more.md>)

Topics: [YAML](<https://devfeed.tech/topics/yaml.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Ansible](<https://devfeed.tech/topics/ansible.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [block-scalars](<https://devfeed.tech/tags/block-scalars.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [devops](<https://devfeed.tech/tags/devops.md>), [errors](<https://devfeed.tech/tags/errors.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [json](<https://devfeed.tech/tags/json.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [kubernetes-yaml-manifests](<https://devfeed.tech/tags/kubernetes-yaml-manifests.md>), [linter](<https://devfeed.tech/tags/linter.md>), [mistakes](<https://devfeed.tech/tags/mistakes.md>), [multi-document-yaml](<https://devfeed.tech/tags/multi-document-yaml.md>), [structure](<https://devfeed.tech/tags/structure.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [validation](<https://devfeed.tech/tags/validation.md>), [yaml](<https://devfeed.tech/tags/yaml.md>), [yaml-anchors-and-aliases](<https://devfeed.tech/tags/yaml-anchors-and-aliases.md>), [yaml-common-mistakes](<https://devfeed.tech/tags/yaml-common-mistakes.md>), [yaml-for-devops](<https://devfeed.tech/tags/yaml-for-devops.md>), [yaml-indentation-rules](<https://devfeed.tech/tags/yaml-indentation-rules.md>), [yaml-norway-problem](<https://devfeed.tech/tags/yaml-norway-problem.md>), [yaml-syntax-rules](<https://devfeed.tech/tags/yaml-syntax-rules.md>), [yaml-vs-json](<https://devfeed.tech/tags/yaml-vs-json.md>), [yamllint-validation](<https://devfeed.tech/tags/yamllint-validation.md>)

### AI overview

A tutorial explaining YAML syntax, implicit typing, indentation rules, block scalars, anchors, aliases, and merge keys. It emphasizes that YAML can silently reinterpret unquoted values and recommends linting and schema validation in CI pipelines.

### Source excerpt

YAML tries to guess what you meant, and that is the entire problem. Once you know which values it silently reinterprets and why, the manifests that mysteriously break stop being mysterious.

## AI Coding Tip 027 - Force Code Standards

DevFeed: [AI Coding Tip 027 - Force Code Standards](<https://devfeed.tech/articles/ai-coding-tip-027-force-code-standards-18217.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-027-force-code-standards>)

Author: Maxi Contieri

Published: 2026-07-10T14:24:14Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [Language models](<https://devfeed.tech/topics/language-models.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [harness](<https://devfeed.tech/tags/harness.md>), [hooks](<https://devfeed.tech/tags/hooks.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [large-language-model](<https://devfeed.tech/tags/large-language-model.md>), [linter](<https://devfeed.tech/tags/linter.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [reviews](<https://devfeed.tech/tags/reviews.md>), [skills](<https://devfeed.tech/tags/skills.md>), [trust](<https://devfeed.tech/tags/trust.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

A tutorial on enforcing coding standards in AI-assisted development. It recommends converting prose standards into machine-checkable rules, running them through hooks and validator skills, and using an LLM judge for ambiguous semantic violations before code reaches human review.

### Source excerpt

TL;DR: Wire your standards into hooks, skills, and a judge, so the harness blocks violations before a human opens the diff. Common Mistake ❌ You paste your coding standards into AGENTS.md and trust t

## OpenAI Eng & Dev Tools Founder: How Software Engineering Is Changing | Charlie Marsh

DevFeed: [OpenAI Eng & Dev Tools Founder: How Software Engineering Is Changing | Charlie Marsh](<https://devfeed.tech/articles/openai-eng-dev-tools-founder-how-software-engineering-is-changing-charlie-marsh-18095.md>)

Original publisher: [Read original article](<https://www.developing.dev/p/openai-eng-and-dev-tools-founder>)

Author: Ryan Peterman

Published: 2026-06-22T09:45:53Z

Content type: article

Language: en

Sources: [The Developing Dev](<https://devfeed.tech/sources/the-developing-dev.md>)

Topics: [dev-tools](<https://devfeed.tech/topics/dev-tools.md>), [Development](<https://devfeed.tech/topics/development.md>), [Python](<https://devfeed.tech/topics/python.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [engineering-culture](<https://devfeed.tech/topics/engineering-culture.md>)

Tags: [dev](<https://devfeed.tech/tags/dev.md>), [dev-tools](<https://devfeed.tech/tags/dev-tools.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [go](<https://devfeed.tech/tags/go.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [linter](<https://devfeed.tech/tags/linter.md>), [openai](<https://devfeed.tech/tags/openai.md>), [python](<https://devfeed.tech/tags/python.md>), [rust](<https://devfeed.tech/tags/rust.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

An interview with Charlie Marsh, founder of Astral, examines how software engineering and developer tooling are changing. Marsh discusses his experience building Python systems, limitations in Python tooling, and the influence of performance-focused native tools in the JavaScript ecosystem.

### Source excerpt

Charlie Marsh is the founder of Astral, the Python devtool startup that was acquired by OpenAI.

## How To Type Function Mocha Context With Cypress Aliases

DevFeed: [How To Type Function Mocha Context With Cypress Aliases](<https://devfeed.tech/articles/how-to-type-function-mocha-context-with-cypress-aliases-28901.md>)

Original publisher: [Read original article](<https://glebbahmutov.com/blog/type-test-context/>)

Author: Gleb Bahmutov

Published: 2025-12-11T05:00:00Z

Content type: tutorial

Language: en

Sources: [Gleb Bahmutov](<https://devfeed.tech/sources/gleb-bahmutov.md>)

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [Mocha](<https://devfeed.tech/topics/mocha.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [argument](<https://devfeed.tech/tags/argument.md>), [callback](<https://devfeed.tech/tags/callback.md>), [code](<https://devfeed.tech/tags/code.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [interface](<https://devfeed.tech/tags/interface.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [linter](<https://devfeed.tech/tags/linter.md>), [products](<https://devfeed.tech/tags/products.md>), [test](<https://devfeed.tech/tags/test.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This tutorial explains how to add strong typing for the custom property Cypress aliases place on the Mocha test context. It shows how to extend the relevant callback context type when the bundled type is not directly exposed.

### Source excerpt

In Cypress you can save values under aliases which is pretty handy. You can get the aliased value

## React 19.2

DevFeed: [React 19.2](<https://devfeed.tech/articles/react-19-2-2988.md>)

Original publisher: [Read original article](<https://react.dev/blog/2025/10/01/react-19-2>)

Author: The React Team

Published: 2025-10-01T00:00:00Z

Content type: article

Language: en

Sources: [React Blog](<https://devfeed.tech/sources/react-blog.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [linter](<https://devfeed.tech/tags/linter.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [npm](<https://devfeed.tech/tags/npm.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [release](<https://devfeed.tech/tags/release.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

React 19.2 introduces Activity for prioritizing hidden and visible UI work, React Performance Tracks, and useEffectEvent for separating event logic from Effects. The release also improves pre-rendering, background loading, navigation performance, and state preservation.

### Source excerpt

React 19.2 adds new features like Activity, React Performance Tracks, useEffectEvent, and more.

## What Is Linting?

DevFeed: [What Is Linting?](<https://devfeed.tech/articles/what-is-linting-4505.md>)

Original publisher: [Read original article](<https://feeds.feedblitz.com/~/921146306/0/baeldung/cs>)

Author: John Caleb

Published: 2025-07-04T04:23:28Z

Content type: tutorial

Language: en

Sources: [Baeldung - CS](<https://devfeed.tech/sources/baeldung-cs.md>)

Topics: [developer tooling](<https://devfeed.tech/topics/developer-tooling.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [automated](<https://devfeed.tech/tags/automated.md>), [code-analysis](<https://devfeed.tech/tags/code-analysis.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [compilers-and-linkers](<https://devfeed.tech/tags/compilers-and-linkers.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [lint](<https://devfeed.tech/tags/lint.md>), [linter](<https://devfeed.tech/tags/linter.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-compilers-and-linkers](<https://devfeed.tech/tags/programming-compilers-and-linkers.md>), [quality-control](<https://devfeed.tech/tags/quality-control.md>), [readability](<https://devfeed.tech/tags/readability.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

This tutorial explains what linting is, why linters are useful in software development, and how they detect syntax, semantic, formatting, and coding-style problems. It describes parsing source code into an abstract syntax tree and applying rules to identify issues such as undefined variables and incorrect code usage.

### Source excerpt

Explore linters, tools for automated code analysis that can capture syntactic, semantic, and stylistic errors in code. The post What Is Linting? first appeared on Baeldung on Computer Science. Related Stories How to Start Building an Operating System Raft Consensus Algorithm What Is a Monad?

## Suppressions of Suppressions

DevFeed: [Suppressions of Suppressions](<https://devfeed.tech/articles/suppressions-of-suppressions-36196.md>)

Original publisher: [Read original article](<https://overreacted.io/suppressions-of-suppressions/>)

Published: 2025-06-11T00:00:00Z

Content type: article

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [ci](<https://devfeed.tech/topics/ci.md>), [syntax](<https://devfeed.tech/topics/syntax.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [code](<https://devfeed.tech/tags/code.md>), [false-positives](<https://devfeed.tech/tags/false-positives.md>), [lint](<https://devfeed.tech/tags/lint.md>), [linter](<https://devfeed.tech/tags/linter.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rules](<https://devfeed.tech/tags/rules.md>)

### AI overview

The article examines lint-rule suppressions: they can handle false positives and gradual rule adoption, but suppressing certain rules may cause serious problems. It proposes a lint rule that prevents suppression of selected other rules and notes that this protection can itself be suppressed.

### Source excerpt

I heard you like linting.

## React Compiler Beta Release

DevFeed: [React Compiler Beta Release](<https://devfeed.tech/articles/react-compiler-beta-release-2982.md>)

Original publisher: [Read original article](<https://react.dev/blog/2024/10/21/react-compiler-beta-release>)

Author: Lauren Tan

Published: 2024-10-21T00:00:00Z

Content type: article

Language: en

Sources: [React Blog](<https://devfeed.tech/sources/react-blog.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [React](<https://devfeed.tech/topics/react.md>), [ESLint](<https://devfeed.tech/topics/eslint.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [npm](<https://devfeed.tech/topics/npm.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [build](<https://devfeed.tech/tags/build.md>), [community](<https://devfeed.tech/tags/community.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [eslint](<https://devfeed.tech/tags/eslint.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [linter](<https://devfeed.tech/tags/linter.md>), [npm](<https://devfeed.tech/tags/npm.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [react](<https://devfeed.tech/tags/react.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

React Compiler Beta is now available for early adopters and library maintainers. The build-time tool automatically memoizes React applications, supports React 17 and later, and is accompanied by an ESLint plugin that helps identify Rules of React violations. The React team also opened public membership in the React Compiler Working Group to gather feedback and support gradual adoption.

### Source excerpt

At React Conf 2024, we announced the experimental release of React Compiler, a build-time tool that optimizes your React app through automatic memoization. In this post, we want to share what's next for open source, and our progress on the compiler.

## Enforce schema consistency across federated graphs with GraphOS

DevFeed: [Enforce schema consistency across federated graphs with GraphOS](<https://devfeed.tech/articles/enforce-schema-consistency-across-federated-graphs-with-graphos-23287.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/enforce-schema-consistency-across-federated-graphs-with-graphos>)

Author: Vivek Ravishankar

Published: 2023-08-24T15:37:06Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphOS](<https://devfeed.tech/topics/graphos.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [consistency](<https://devfeed.tech/topics/consistency.md>), [API Platform](<https://devfeed.tech/topics/api-platform.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [backend](<https://devfeed.tech/tags/backend.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [graphos](<https://devfeed.tech/tags/graphos.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [guide](<https://devfeed.tech/tags/guide.md>), [linter](<https://devfeed.tech/tags/linter.md>), [platform](<https://devfeed.tech/tags/platform.md>), [schema](<https://devfeed.tech/tags/schema.md>)

### AI overview

Apollo GraphOS adds composition rules to its schema linter, enabling API platform teams to enforce consistency across federated GraphQL subgraphs. Teams can configure rule severity and apply checks in CI/CD pipelines or the GraphOS registry.

### Source excerpt

When you're building a federated GraphQL API that spans multiple backend teams and services, it can be difficult to ensure that the schema for your graph stays consistent from subgraph to subgraph. For example, how do you ensure that a type defined as an entity in one subgraph is also defined as an entity in all other subgraphs? Today, we're making it easier for API platform teams to enforce schema consistency across multiple subgraphs by adding composition rules to the Apollo GraphOS linter.

## Standardize GraphQL schema linting policies with GraphOS

DevFeed: [Standardize GraphQL schema linting policies with GraphOS](<https://devfeed.tech/articles/standardize-graphql-schema-linting-policies-with-graphos-23523.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/standardize-graphql-schema-linting-policies-with-graphos>)

Author: Vivek Ravishankar

Published: 2023-06-15T08:29:00Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphOS](<https://devfeed.tech/topics/graphos.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [API](<https://devfeed.tech/topics/api.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Development](<https://devfeed.tech/topics/development.md>), [consistency](<https://devfeed.tech/topics/consistency.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [apis](<https://devfeed.tech/tags/apis.md>), [ci-cd-pipeline](<https://devfeed.tech/tags/ci-cd-pipeline.md>), [cli](<https://devfeed.tech/tags/cli.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [graphos](<https://devfeed.tech/tags/graphos.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [lint](<https://devfeed.tech/tags/lint.md>), [linter](<https://devfeed.tech/tags/linter.md>), [schema](<https://devfeed.tech/tags/schema.md>)

### AI overview

Apollo GraphOS adds schema linting for GraphQL APIs. The checks validate predefined formatting and naming rules, run automatically when schema changes are published, and can also be run locally or in CI/CD pipelines with the Rover CLI. The feature is available to organizations on GraphOS Enterprise and Serverless plans.

### Source excerpt

When it comes to writing code collaboratively, consistency is everything. APIs are no exception. In fact, APIs are perhaps the most important place to ensure consistency, since they act as a vein for collaboration across nearly every developer in an organization's ecosystem. For GraphQL APIs, the schema is at the heart of all collaboration and consumption, but ensuring consistency in a graph that spans many teams, tools, and workflows is no easy task.

## When Android Compat Libraries Do Not Prevent New API Compatibility Issues

DevFeed: [When Android Compat Libraries Do Not Prevent New API Compatibility Issues](<https://devfeed.tech/articles/when-compat-libraries-won-t-save-you-25895.md>)

Original publisher: [Read original article](<https://proandroiddev.com/when-compat-libraries-do-not-save-you-dc55f16b4160?source=rss-1331e67af4e1------2>)

Author: Danny Preussler

Published: 2021-01-04T19:34:03Z

Content type: tutorial

Language: en

Sources: [Stories by Danny Preussler on Medium](<https://devfeed.tech/sources/stories-by-danny-preussler-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [deprecated](<https://devfeed.tech/topics/deprecated.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [fragmentation](<https://devfeed.tech/tags/fragmentation.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [linter](<https://devfeed.tech/tags/linter.md>)

### AI overview

This tutorial explains why Android compatibility libraries do not all work the same way. Some duplicate platform APIs, while others bridge to the original APIs, so developers still need appropriate API-level checks and should avoid using the "NewApi" suppression indiscriminately.

### Source excerpt

And why you should avoid using the "NewApi" suppression! https://unsplash.com/photos/EgGIPA68Nwo The idea of "Compat" libraries was probably one of the key aspects of Android dominating the mobile space. Other than with iOS, Android users often could not update their operating system after a new version launch, simply as their phones won't allow them to, the Android problem of fragmentation. But developers still wanted to use the latest features to compete. The solution was simple: instead of adding new APIs to the operating system, you shipped those directly with your app by using a "backport" version Google gave you. It all started with ActionBar Sherlock by Jake Wharton then got adopted by Google with in their "support libraries". Later on, this was mirrored as AndroidX under the Jetpack umbrella. Same but different Under the hood, not all of those "compat"-APIs are made the same way. Some, like the ones for Fragments, are complete copies of the code. You either use android.app.Fragment from the OS (actually deprecated) or androidx.fragment.app.Fragment. Both don't share any code or have a common base class (which is why we also have two versions of the FragmentManager). On the other handAppCompatActivity for example, simply extends the original Activity. AlsoAppCompatImageButton still is an ImageButton! We can see that sometimes these "Compat"-classes are just a "bridge" to add missing functionalities and sometimes they are complete duplicates. Let's look at another example! One area that changed a lot over time is the notification API from Android. There was a time where every Google I/O introduced a new API change. Good that we have NotificationManagerCompat to save us!? If, for example, we need to get the notification channel groups: val groups = notificationManagerCompat.notificationChannelGroups We don't need to worry about the groups being supported on all OS versions, as it is handled under the hood for us: public List<NotificationChannelGroup> getNotific

## Writing Resilient Components

DevFeed: [Writing Resilient Components](<https://devfeed.tech/articles/writing-resilient-components-36213.md>)

Original publisher: [Read original article](<https://overreacted.io/writing-resilient-components/>)

Published: 2019-03-16T00:00:00Z

Content type: opinion

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [linter](<https://devfeed.tech/tags/linter.md>), [opinion](<https://devfeed.tech/tags/opinion.md>), [react](<https://devfeed.tech/tags/react.md>), [style-guide](<https://devfeed.tech/tags/style-guide.md>)

### AI overview

An opinionated discussion of React component design that questions strict, linter-enforced style guides. It argues that flexible conventions can support integration, while excessive style rules may create friction, obscure useful warnings, and encourage technically unhelpful enforcement.

### Source excerpt

Four principles to set you on the right path.

## Improve productivity with TypeScript and lifecycle hooks for Cloud Functions

DevFeed: [Improve productivity with TypeScript and lifecycle hooks for Cloud Functions](<https://devfeed.tech/articles/improve-productivity-with-typescript-and-lifecycle-hooks-for-cloud-functions-16243.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2017/12/improve-productivity-with-typescript>)

Author: Thomas Bouldin

Published: 2017-12-08T00:00:00Z

Content type: release

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Cloud Functions](<https://devfeed.tech/topics/cloud-functions.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [cloud-functions](<https://devfeed.tech/tags/cloud-functions.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firebase-cli](<https://devfeed.tech/tags/firebase-cli.md>), [lifecycle](<https://devfeed.tech/tags/lifecycle.md>), [lint](<https://devfeed.tech/tags/lint.md>), [linter](<https://devfeed.tech/tags/linter.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

The Firebase CLI added first-class TypeScript support for Cloud Functions starting with version 3.16.0. New TypeScript projects are configured for compilation, automatic transpilation during deployment, and recommended linting with TSLint. The article also explains lifecycle hooks such as predeploy and postdeploy.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Announcing our Experimental Linter Tool for Firebase on iOS

DevFeed: [Announcing our Experimental Linter Tool for Firebase on iOS](<https://devfeed.tech/articles/announcing-our-experimental-linter-tool-for-firebase-on-ios-16214.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2017/08/announcing-our-experimental-linter-tool>)

Author: Ibrahim Ulukaya

Published: 2017-08-17T00:00:00Z

Content type: release

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [development](<https://devfeed.tech/tags/development.md>), [display](<https://devfeed.tech/tags/display.md>), [download](<https://devfeed.tech/tags/download.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [ios](<https://devfeed.tech/tags/ios.md>), [launch](<https://devfeed.tech/tags/launch.md>), [linter](<https://devfeed.tech/tags/linter.md>), [news](<https://devfeed.tech/tags/news.md>), [pkg](<https://devfeed.tech/tags/pkg.md>), [pre-release](<https://devfeed.tech/tags/pre-release.md>), [project](<https://devfeed.tech/tags/project.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [source](<https://devfeed.tech/tags/source.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [updates](<https://devfeed.tech/tags/updates.md>), [us](<https://devfeed.tech/tags/us.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Firebase introduces experimental SwiftLint rules that warn about common mistakes when using the Firebase SDK in Swift projects. The rules are available through a Firebase fork and a pre-release binary, with instructions for installation and use in Xcode projects.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Perfect Workflow in Sublime Text 2

DevFeed: [Perfect Workflow in Sublime Text 2](<https://devfeed.tech/articles/perfect-workflow-in-sublime-text-2-21194.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2013/05/perfect-workflow-in-sublime-text2/>)

Published: 2013-05-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Sublime Text](<https://devfeed.tech/topics/sublime-text.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [linter](<https://devfeed.tech/tags/linter.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [search](<https://devfeed.tech/tags/search.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>)

### AI overview

A short recommendation of a Tuts+ tutorial covering Sublime Text 2 features and workflow techniques, including multiple cursors, fuzzy search, the Command Palette, Package Control, code snippets, and plugins. The tutorial is available as individual sessions or as a single YouTube video.

### Source excerpt

Lorem ipsum dolor sit amet