├── .dockerignore ├── .eslintrc.cjs ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── build.md │ ├── chore.md │ ├── ci.md │ ├── config.yml │ ├── documentation.md │ ├── feature_request.md │ ├── performance.md │ ├── refactor.md │ ├── revert.md │ ├── style.md │ └── test.md ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml └── workflows │ └── main.yaml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode └── settings.json ├── Dockerfile ├── LICENSE ├── README.md ├── astro.config.mjs ├── components.json ├── cspell.config.yaml ├── docker-compose.yaml ├── package-lock.json ├── package.json ├── public ├── .well-known │ └── microsoft-identity-association ├── CNAME ├── apple-touch-icon.png ├── blog │ └── open-graph.png ├── favicon.svg ├── fonts │ └── GeneralSans │ │ ├── GeneralSans-Bold.otf │ │ ├── GeneralSans-BoldItalic.otf │ │ ├── GeneralSans-Extralight.otf │ │ ├── GeneralSans-ExtralightItalic.otf │ │ ├── GeneralSans-Italic.otf │ │ ├── GeneralSans-Light.otf │ │ ├── GeneralSans-LightItalic.otf │ │ ├── GeneralSans-Medium.otf │ │ ├── GeneralSans-MediumItalic.otf │ │ ├── GeneralSans-Regular.otf │ │ ├── GeneralSans-Semibold.otf │ │ └── GeneralSans-SemiboldItalic.otf ├── legal │ └── Shorebird DPA online template EU, UK and Swiss 2024-09-07.docx.pdf ├── open-graph.png └── success-stories │ └── open-graph.png ├── src ├── assets │ ├── blog │ │ ├── brand-refresh │ │ │ ├── color-palette.png │ │ │ ├── new-site-design.png │ │ │ └── refreshed-logo.png │ │ ├── covers │ │ │ ├── 1.0-cover.png │ │ │ ├── brand-refresh-cover.png │ │ │ ├── buy-dont-build-cover.png │ │ │ ├── code-push-v2-cover.png │ │ │ ├── codemagic-cover.png │ │ │ ├── custom-tracks-cover.png │ │ │ ├── dart-3.5-cover.png │ │ │ ├── dart-macros-cover.png │ │ │ ├── development-workflow-cover.png │ │ │ ├── flutter-3.32-cover.png │ │ │ ├── flutter-jobs-cover.png │ │ │ ├── flutterconusa-2025-cover.png │ │ │ ├── how-we-built-code-push-cover.png │ │ │ ├── improved-cloud-infra-cover.png │ │ │ ├── improved-patch-delivery-cover.png │ │ │ ├── ios-beta-cover.png │ │ │ ├── macos-beta-cover.png │ │ │ ├── organizations-cover.png │ │ │ ├── patch-rollback-cover.png │ │ │ ├── patch-signing-cover.png │ │ │ ├── simplified-pricing-cover.png │ │ │ ├── stable-desktop-cover.png │ │ │ ├── tom-joins-shorebird-cover.png │ │ │ ├── tracks-cover.png │ │ │ ├── viewing-logs-cover.png │ │ │ ├── windows-beta-cover.png │ │ │ ├── workshops-cover.png │ │ │ └── yearly-plans-cover.png │ │ ├── flutter-3.32-release │ │ │ └── apple-squircle.jpg │ │ ├── flutterconusa-2025-sponsor │ │ │ └── register-now-banner.jpg │ │ ├── headshots │ │ │ ├── bryan-headshot.png │ │ │ ├── eric-headshot.jpeg │ │ │ ├── felix-headshot.jpeg │ │ │ ├── shorebird-headshot.png │ │ │ └── tom-headshot.jpg │ │ ├── improved-cloud-infra │ │ │ ├── customer-facing-service-load.png │ │ │ ├── insights-page-loads.png │ │ │ ├── insights-tab.png │ │ │ ├── patch-check-latency-improvements.png │ │ │ ├── patch-installs-30d.png │ │ │ └── traffic-comparison.png │ │ ├── improved-patch-delivery │ │ │ └── china-availability.png │ │ ├── release-logs │ │ │ ├── ConsolePatchCheckResponse.png │ │ │ ├── ConsoleShowProcessMenu.png │ │ │ ├── EmptyConsoleStartButtonArrow.png │ │ │ └── TerminalLogcat.png │ │ ├── simplified-pricing │ │ │ ├── ProPlan.png │ │ │ └── UsageLimit.png │ │ └── windows-desktop │ │ │ └── screenshot.png │ ├── brands │ │ ├── apna-klub.png │ │ ├── chai.png │ │ ├── flash-co.png │ │ ├── invoice-home.png │ │ ├── junglee.png │ │ ├── kalshi.png │ │ ├── kijiji.png │ │ ├── pushpress.png │ │ ├── solides.png │ │ ├── tracker.png │ │ └── tradeling.png │ ├── features │ │ ├── all-platforms.png │ │ ├── any-code.png │ │ ├── compliance.png │ │ ├── quick-fix.png │ │ ├── releases.png │ │ ├── rollback.png │ │ └── social-proof.png │ ├── resources │ │ ├── discord.png │ │ └── shorebird.png │ ├── success-stories │ │ └── covers │ │ │ ├── easyspend-cover.png │ │ │ ├── junglee-games-cover.png │ │ │ ├── kijiji-cover.png │ │ │ ├── pushpress-cover.png │ │ │ ├── solides-cover.png │ │ │ └── visible-cover.png │ ├── team │ │ ├── bryan-headshot.png │ │ ├── eric-headshot.jpeg │ │ ├── felix-headshot.jpeg │ │ └── tom-headshot.jpg │ └── testimonials │ │ ├── david-paul.jpg │ │ ├── esra-kadah.png │ │ ├── jason-rai.png │ │ ├── renan-araujo.png │ │ ├── scott-macdougall.jpeg │ │ └── taha-tesser.png ├── components │ ├── blog │ │ ├── blog-callout.tsx │ │ └── formatted-date.astro │ ├── ellipse.tsx │ ├── home │ │ ├── blog-overview.astro │ │ ├── brands.astro │ │ ├── callout.astro │ │ ├── faq-overview.tsx │ │ ├── faq.astro │ │ ├── features.astro │ │ ├── for-developers.astro │ │ ├── for-teams.astro │ │ ├── hero-motion.tsx │ │ ├── hero.astro │ │ ├── pricing-overview.astro │ │ ├── problem.astro │ │ ├── resources.astro │ │ ├── solution.astro │ │ ├── success-stories-overview.astro │ │ └── testimonials.astro │ ├── logos │ │ ├── discord-logo.tsx │ │ ├── flutter-logo.tsx │ │ ├── github-logo.tsx │ │ ├── linkedin-logo.tsx │ │ ├── logo-full.tsx │ │ └── twitter-logo.tsx │ ├── newsletter │ │ └── newsletter-form.tsx │ ├── pricing │ │ ├── pricing-calculator.tsx │ │ ├── pricing-details.astro │ │ ├── pricing-faq.tsx │ │ └── pricing-plans.tsx │ ├── scroll-to-top-button.tsx │ └── ui │ │ ├── accordion.tsx │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── footer.astro │ │ ├── input.tsx │ │ ├── markdown.tsx │ │ ├── marquee.tsx │ │ ├── navbar.tsx │ │ ├── sheet.tsx │ │ ├── slider.tsx │ │ ├── spacer.tsx │ │ └── table.tsx ├── config.ts ├── content │ ├── blog │ │ ├── 1.0.md │ │ ├── brand-refresh.md │ │ ├── buy-dont-build.md │ │ ├── cloud-infra-improvements.md │ │ ├── custom-tracks.md │ │ ├── dart-3.5.0.md │ │ ├── dart-macros.md │ │ ├── desktop-in-production.md │ │ ├── development-workflow.md │ │ ├── flutter-3.32-release.md │ │ ├── flutter-jobs.md │ │ ├── flutterconusa-2025-sponsor.md │ │ ├── how-we-built-code-push.md │ │ ├── improved-patch-delivery.md │ │ ├── ios-beta.md │ │ ├── macos-beta.md │ │ ├── organizations.md │ │ ├── patch-rollback.md │ │ ├── patch-signing-beta.md │ │ ├── shorebird-code-push-v2.md │ │ ├── shorebird-codemagic.md │ │ ├── simplified-pricing.md │ │ ├── tom-joins-shorebird.md │ │ ├── tracks-percentage-rollouts-a-b-testing.md │ │ ├── viewing-logs.md │ │ ├── windows-beta.md │ │ ├── workshops.md │ │ └── yearly-plans.md │ ├── config.ts │ └── success-stories │ │ ├── easyspend.md │ │ ├── junglee-games.md │ │ ├── kijiji.md │ │ ├── push-press.md │ │ ├── solides.md │ │ └── visible.md ├── layouts │ ├── blog.astro │ ├── main.astro │ ├── markdown.astro │ └── success-story.astro ├── lib │ └── utils.ts ├── motion │ └── hero-motion.json ├── pages │ ├── about.astro │ ├── blog │ │ ├── [...slug].astro │ │ └── index.astro │ ├── contact.md │ ├── demo.html │ ├── index.astro │ ├── jobs.md │ ├── legal │ │ └── dpa.md │ ├── newsletter-signup.astro │ ├── pricing.astro │ ├── privacy │ │ ├── index.md │ │ └── raw.ts │ ├── success-stories │ │ ├── [...slug].astro │ │ └── index.astro │ └── terms │ │ ├── index.md │ │ └── raw.ts └── styles │ └── global.css ├── tailwind.config.ts └── tsconfig.json /.dockerignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Production 5 | /build 6 | 7 | # Misc 8 | .DS_Store 9 | 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['plugin:astro/recommended'], 3 | overrides: [ 4 | { 5 | // Define the configuration for `.astro` file. 6 | files: ['*.astro'], 7 | // Allows Astro components to be parsed. 8 | parser: 'astro-eslint-parser', 9 | // Parse the script in `.ast 10 | // It's the setting you need when using TypeScript. 11 | parserOptions: { 12 | parser: '@typescript-eslint/parser', 13 | extraFileExtensions: ['.astro'], 14 | }, 15 | }, 16 | ], 17 | }; 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help us improve 4 | title: 'fix: ' 5 | labels: bug 6 | --- 7 | 8 | **Description** 9 | 10 | A clear and concise description of what the bug is. 11 | 12 | **Steps To Reproduce** 13 | 14 | 1. Go to '...' 15 | 2. Click on '....' 16 | 3. Scroll down to '....' 17 | 4. See error 18 | 19 | **Expected Behavior** 20 | 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | 25 | If applicable, add screenshots to help explain your problem. 26 | 27 | **Additional Context** 28 | 29 | Add any other context about the problem here. 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/build.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Build System 3 | about: Changes that affect the build system or external dependencies 4 | title: 'build: ' 5 | labels: build 6 | --- 7 | 8 | **Description** 9 | 10 | Describe what changes need to be done to the build system and why. 11 | 12 | **Requirements** 13 | 14 | - [ ] The build system is passing 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/chore.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Chore 3 | about: Other changes that don't modify src or test files 4 | title: 'chore: ' 5 | labels: chore 6 | --- 7 | 8 | **Description** 9 | 10 | Clearly describe what change is needed and why. If this changes code then please 11 | use another issue type. 12 | 13 | **Requirements** 14 | 15 | - [ ] No functional changes to the code 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/ci.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Continuous Integration 3 | about: Changes to the CI configuration files and scripts 4 | title: 'ci: ' 5 | labels: ci 6 | --- 7 | 8 | **Description** 9 | 10 | Describe what changes need to be done to the ci/cd system and why. 11 | 12 | **Requirements** 13 | 14 | - [ ] The ci system is passing 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Documentation 3 | about: 4 | Improve the documentation so all collaborators have a common understanding 5 | title: 'docs: ' 6 | labels: documentation 7 | --- 8 | 9 | **Description** 10 | 11 | Clearly describe what documentation you are looking to add or improve. 12 | 13 | **Requirements** 14 | 15 | - [ ] Requirements go here 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: A new feature to be added to the project 4 | title: 'feat: ' 5 | labels: feature 6 | --- 7 | 8 | **Description** 9 | 10 | Clearly describe what you are looking to add. The more context the better. 11 | 12 | **Requirements** 13 | 14 | - [ ] Checklist of requirements to be fulfilled 15 | 16 | **Additional Context** 17 | 18 | Add any other context or screenshots about the feature request go here. 19 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/performance.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Performance Update 3 | about: A code change that improves performance 4 | title: 'perf: ' 5 | labels: performance 6 | --- 7 | 8 | **Description** 9 | 10 | Clearly describe what code needs to be changed and what the performance impact 11 | is going to be. Bonus point's if you can tie this directly to user experience. 12 | 13 | **Requirements** 14 | 15 | - [ ] There is no drop in test coverage. 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/refactor.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Refactor 3 | about: A code change that neither fixes a bug nor adds a feature 4 | title: 'refactor: ' 5 | labels: refactor 6 | --- 7 | 8 | **Description** 9 | 10 | Clearly describe what needs to be refactored and why. Please provide links to 11 | related issues (bugs or upcoming features) in order to help prioritize. 12 | 13 | **Requirements** 14 | 15 | - [ ] There is no drop in test coverage. 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/revert.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Revert Commit 3 | about: Reverts a previous commit 4 | title: 'revert: ' 5 | labels: revert 6 | --- 7 | 8 | **Description** 9 | 10 | Provide a link to a PR/Commit that you are looking to revert and why. 11 | 12 | **Requirements** 13 | 14 | - [ ] Change has been reverted 15 | - [ ] No change in test coverage has happened 16 | - [ ] A new ticket is created for any follow on work that needs to happen 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/style.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Style Changes 3 | about: 4 | Changes that do not affect the meaning of the code (white-space, formatting, 5 | missing semi-colons, etc) 6 | title: 'style: ' 7 | labels: style 8 | --- 9 | 10 | **Description** 11 | 12 | Clearly describe what you are looking to change and why. 13 | 14 | **Requirements** 15 | 16 | - [ ] There is no drop in test coverage. 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/test.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Test 3 | about: Adding missing tests or correcting existing tests 4 | title: 'test: ' 5 | labels: test 6 | --- 7 | 8 | **Description** 9 | 10 | List out the tests that need to be added or changed. Please also include any 11 | information as to why this was not covered in the past. 12 | 13 | **Requirements** 14 | 15 | - [ ] There is no drop in test coverage. 16 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## Status 8 | 9 | **READY/IN DEVELOPMENT/HOLD** 10 | 11 | ## Description 12 | 13 | 14 | 15 | ## Type of Change 16 | 17 | 18 | 19 | - [ ] ✨ New feature (non-breaking change which adds functionality) 20 | - [ ] 🛠️ Bug fix (non-breaking change which fixes an issue) 21 | - [ ] ❌ Breaking change (fix or feature that would cause existing functionality 22 | to change) 23 | - [ ] 🧹 Code refactor 24 | - [ ] ✅ Build configuration change 25 | - [ ] 📝 Documentation 26 | - [ ] 🗑️ Chore 27 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: 'github-actions' 9 | directory: '/' 10 | schedule: 11 | interval: 'weekly' 12 | groups: 13 | gha-deps: 14 | patterns: 15 | - '*' 16 | - package-ecosystem: 'npm' 17 | directory: '/' 18 | schedule: 19 | interval: 'weekly' 20 | groups: 21 | npm-deps: 22 | patterns: 23 | - '*' 24 | -------------------------------------------------------------------------------- /.github/workflows/main.yaml: -------------------------------------------------------------------------------- 1 | name: ci 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | build: 11 | runs-on: macos-latest 12 | 13 | steps: 14 | - name: 📚 Git Checkout 15 | uses: actions/checkout@v4 16 | 17 | - name: ⚙️ Setup Node 18 | uses: actions/setup-node@v4 19 | with: 20 | node-version: 22.12.x 21 | cache: npm 22 | cache-dependency-path: package-lock.json 23 | 24 | - name: 📦 Install Dependencies 25 | run: npm ci 26 | 27 | - name: ✨ Check Format 28 | run: npm run format:check 29 | 30 | - name: 🧹 Lint 31 | run: npm run lint 32 | 33 | - name: 🔤 Check Spelling 34 | run: npm run cspell "**" 35 | 36 | - name: 👷 Build website 37 | run: npm run build 38 | 39 | deploy: 40 | needs: build 41 | 42 | runs-on: macos-latest 43 | 44 | if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} 45 | 46 | steps: 47 | - name: 📚 Git Checkout 48 | uses: actions/checkout@v4 49 | 50 | - name: ⚙️ Setup Node 51 | uses: actions/setup-node@v4 52 | with: 53 | node-version: 22.12.x 54 | cache: npm 55 | cache-dependency-path: package-lock.json 56 | 57 | - name: 📦 Install Dependencies 58 | run: npm ci 59 | 60 | - name: ✨ Check Format 61 | run: npm run format:check 62 | 63 | - name: 🧹 Lint 64 | run: npm run lint 65 | 66 | - name: 🔤 Check Spelling 67 | run: npm run cspell 68 | 69 | - name: 👷 Build website 70 | run: npm run build 71 | 72 | - name: ☁️ Deploy to GitHub Pages 73 | uses: peaceiris/actions-gh-pages@v4 74 | with: 75 | github_token: ${{ secrets.GITHUB_TOKEN }} 76 | publish_dir: ./dist 77 | user_name: github-actions[bot] 78 | user_email: 41898282+github-actions[bot]@users.noreply.github.com 79 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | .output/ 4 | 5 | # generated types 6 | .astro/ 7 | 8 | # dependencies 9 | node_modules/ 10 | 11 | # logs 12 | npm-debug.log* 13 | yarn-debug.log* 14 | yarn-error.log* 15 | pnpm-debug.log* 16 | 17 | # environment variables 18 | .env 19 | .env.production 20 | 21 | # macOS-specific files 22 | .DS_Store 23 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | src/motion/* 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": ["prettier-plugin-tailwindcss"], 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "proseWrap": "always" 6 | } 7 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/typescript/lib" 3 | } 4 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:lts as base 2 | 3 | WORKDIR /app 4 | 5 | COPY ./package.json ./ 6 | COPY ./package-lock.json ./ 7 | 8 | RUN npm ci 9 | 10 | COPY . . 11 | 12 | EXPOSE 3000 35729 13 | 14 | ENTRYPOINT npm start -- --host 0.0.0.0 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Shorebird Site 🐦 2 | 3 | Home of the [shorebird.dev](https://shorebird.dev) site. 4 | 5 | ## Running with Docker 🐳 6 | 7 | ``` 8 | docker compose up --build 9 | ``` 10 | -------------------------------------------------------------------------------- /astro.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | import { defineConfig } from 'astro/config'; 3 | import tailwindcss from '@tailwindcss/vite'; 4 | import react from '@astrojs/react'; 5 | import sitemap from '@astrojs/sitemap'; 6 | import config from './src/config'; 7 | 8 | // https://astro.build/config 9 | export default defineConfig({ 10 | site: 'https://shorebird.dev', 11 | vite: { 12 | plugins: [tailwindcss()], 13 | }, 14 | integrations: [react(), sitemap()], 15 | redirects: { 16 | '/faq': 'https://docs.shorebird.dev/faq', 17 | '/privacy.html': '/privacy', 18 | '/security': 'https://handbook.shorebird.dev/security', 19 | // Initially tweeted the wrong link: 20 | '/success-stories/pushpress/': '/success-stories/push-press', 21 | '/talk-to-sales': config.contactSales, 22 | '/terms.html': '/terms', 23 | '/workshops': 'https://calendly.com/felix-shorebird/shorebird-workshop', 24 | }, 25 | }); 26 | -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "new-york", 4 | "rsc": false, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "", 8 | "css": "src/styles/global.css", 9 | "baseColor": "neutral", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils", 16 | "ui": "@/components/ui", 17 | "lib": "@/lib", 18 | "hooks": "@/hooks" 19 | }, 20 | "iconLibrary": "lucide" 21 | } 22 | -------------------------------------------------------------------------------- /cspell.config.yaml: -------------------------------------------------------------------------------- 1 | $schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json 2 | version: '0.2' 3 | ignorePaths: ['dist', 'node_modules'] 4 | words: 5 | - afonso 6 | - angelov 7 | - apna 8 | - araujo 9 | - arra 10 | - astro 11 | - astrojs 12 | - autoplay 13 | - bhavesh 14 | - BIGL 15 | - bryanoltman 16 | - cancelbots 17 | - codemagic 18 | - cupertino 19 | - devnomic 20 | - dougall 21 | - dominik 22 | - droidcon 23 | - eseidel 24 | - esra 25 | - evenodd 26 | - felangel 27 | - felangelov 28 | - findstr 29 | - fintech 30 | - fluttercon 31 | - flutterconusa 32 | - fontsource 33 | - FOUC 34 | - frontmatter 35 | - ghisi 36 | - grayscale 37 | - headshot 38 | - headshots 39 | - howzat 40 | - ITAR 41 | - jsxs 42 | - junglee 43 | - kalshi 44 | - kadah 45 | - kijiji 46 | - klub 47 | - leeming 48 | - logcat 49 | - macdougall 50 | - mailchimp 51 | - mairramer 52 | - nubank 53 | - oltman 54 | - onclick 55 | - Palo 56 | - Posthog 57 | - pubspec 58 | - pushpress 59 | - renan 60 | - rollout 61 | - rollouts 62 | - roszkowski 63 | - seidel 64 | - shorebirddev 65 | - shorebirdtech 66 | - siclen 67 | - signups 68 | - signup 69 | - solides 70 | - souza 71 | - squircle 72 | - squircles 73 | - superlist 74 | - taha 75 | - techlead 76 | - tesser 77 | - thiago 78 | - tomarra 79 | - tradeling 80 | - tsconfigs 81 | - upvoted 82 | - userbase 83 | - veloso 84 | - xlink 85 | -------------------------------------------------------------------------------- /docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | volumes: 4 | node_modules: 5 | 6 | services: 7 | shorebird-site: 8 | build: . 9 | container_name: shorebird-site 10 | stdin_open: true 11 | tty: true 12 | ports: 13 | - 4321:4321 14 | - 35729:35729 15 | volumes: 16 | - ./:/app 17 | - node_modules:/app/node_modules 18 | working_dir: /app 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "website", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "scripts": { 6 | "dev": "astro dev", 7 | "build": "astro build", 8 | "preview": "astro preview", 9 | "astro": "astro", 10 | "format": "prettier --write .", 11 | "format:check": "prettier --check .", 12 | "lint": "", 13 | "cspell": "cspell \"**\"" 14 | }, 15 | "dependencies": { 16 | "@astrojs/mdx": "^4.3.0", 17 | "@astrojs/react": "^4.3.0", 18 | "@astrojs/sitemap": "^3.4.0", 19 | "@base-ui-components/react": "^1.0.0-beta.0", 20 | "@phosphor-icons/react": "^2.1.10", 21 | "@radix-ui/react-accordion": "^1.2.11", 22 | "@radix-ui/react-dialog": "^1.1.14", 23 | "@radix-ui/react-slot": "^1.1.2", 24 | "@tailwindcss/vite": "^4.1.8", 25 | "@types/react": "^19.1.6", 26 | "@types/react-dom": "^19.1.5", 27 | "astro": "^5.8.1", 28 | "class-variance-authority": "^0.7.1", 29 | "clsx": "^2.1.1", 30 | "lottie-react": "^2.4.1", 31 | "lucide-react": "^0.511.0", 32 | "react": "^19.1.0", 33 | "react-dom": "^19.1.0", 34 | "react-markdown": "^10.1.0", 35 | "tailwind-merge": "^3.3.0", 36 | "tailwindcss": "^4.0.3", 37 | "tailwindcss-animate": "^1.0.7" 38 | }, 39 | "devDependencies": { 40 | "@tailwindcss/typography": "^0.5.16", 41 | "cspell": "^9.0.2", 42 | "prettier": "^3.4.2", 43 | "prettier-plugin-astro": "^0.14.1", 44 | "prettier-plugin-tailwindcss": "^0.6.12" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /public/.well-known/microsoft-identity-association: -------------------------------------------------------------------------------- 1 | { 2 | "associatedApplications": [ 3 | { 4 | "applicationId": "4fc38981-4ec4-4bd9-a755-e6ad9a413054" 5 | } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /public/CNAME: -------------------------------------------------------------------------------- 1 | shorebird.dev -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/apple-touch-icon.png -------------------------------------------------------------------------------- /public/blog/open-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/blog/open-graph.png -------------------------------------------------------------------------------- /public/favicon.svg: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-Bold.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-BoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-BoldItalic.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-Extralight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-Extralight.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-ExtralightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-ExtralightItalic.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-Italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-Italic.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-Light.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-LightItalic.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-Medium.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-MediumItalic.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-Regular.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-Semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-Semibold.otf -------------------------------------------------------------------------------- /public/fonts/GeneralSans/GeneralSans-SemiboldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/fonts/GeneralSans/GeneralSans-SemiboldItalic.otf -------------------------------------------------------------------------------- /public/legal/Shorebird DPA online template EU, UK and Swiss 2024-09-07.docx.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/legal/Shorebird DPA online template EU, UK and Swiss 2024-09-07.docx.pdf -------------------------------------------------------------------------------- /public/open-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/open-graph.png -------------------------------------------------------------------------------- /public/success-stories/open-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/public/success-stories/open-graph.png -------------------------------------------------------------------------------- /src/assets/blog/brand-refresh/color-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/brand-refresh/color-palette.png -------------------------------------------------------------------------------- /src/assets/blog/brand-refresh/new-site-design.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/brand-refresh/new-site-design.png -------------------------------------------------------------------------------- /src/assets/blog/brand-refresh/refreshed-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/brand-refresh/refreshed-logo.png -------------------------------------------------------------------------------- /src/assets/blog/covers/1.0-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/1.0-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/brand-refresh-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/brand-refresh-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/buy-dont-build-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/buy-dont-build-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/code-push-v2-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/code-push-v2-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/codemagic-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/codemagic-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/custom-tracks-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/custom-tracks-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/dart-3.5-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/dart-3.5-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/dart-macros-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/dart-macros-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/development-workflow-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/development-workflow-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/flutter-3.32-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/flutter-3.32-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/flutter-jobs-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/flutter-jobs-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/flutterconusa-2025-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/flutterconusa-2025-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/how-we-built-code-push-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/how-we-built-code-push-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/improved-cloud-infra-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/improved-cloud-infra-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/improved-patch-delivery-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/improved-patch-delivery-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/ios-beta-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/ios-beta-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/macos-beta-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/macos-beta-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/organizations-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/organizations-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/patch-rollback-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/patch-rollback-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/patch-signing-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/patch-signing-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/simplified-pricing-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/simplified-pricing-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/stable-desktop-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/stable-desktop-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/tom-joins-shorebird-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/tom-joins-shorebird-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/tracks-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/tracks-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/viewing-logs-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/viewing-logs-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/windows-beta-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/windows-beta-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/workshops-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/workshops-cover.png -------------------------------------------------------------------------------- /src/assets/blog/covers/yearly-plans-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/covers/yearly-plans-cover.png -------------------------------------------------------------------------------- /src/assets/blog/flutter-3.32-release/apple-squircle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/flutter-3.32-release/apple-squircle.jpg -------------------------------------------------------------------------------- /src/assets/blog/flutterconusa-2025-sponsor/register-now-banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/flutterconusa-2025-sponsor/register-now-banner.jpg -------------------------------------------------------------------------------- /src/assets/blog/headshots/bryan-headshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/headshots/bryan-headshot.png -------------------------------------------------------------------------------- /src/assets/blog/headshots/eric-headshot.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/headshots/eric-headshot.jpeg -------------------------------------------------------------------------------- /src/assets/blog/headshots/felix-headshot.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/headshots/felix-headshot.jpeg -------------------------------------------------------------------------------- /src/assets/blog/headshots/shorebird-headshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/headshots/shorebird-headshot.png -------------------------------------------------------------------------------- /src/assets/blog/headshots/tom-headshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/headshots/tom-headshot.jpg -------------------------------------------------------------------------------- /src/assets/blog/improved-cloud-infra/customer-facing-service-load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/improved-cloud-infra/customer-facing-service-load.png -------------------------------------------------------------------------------- /src/assets/blog/improved-cloud-infra/insights-page-loads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/improved-cloud-infra/insights-page-loads.png -------------------------------------------------------------------------------- /src/assets/blog/improved-cloud-infra/insights-tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/improved-cloud-infra/insights-tab.png -------------------------------------------------------------------------------- /src/assets/blog/improved-cloud-infra/patch-check-latency-improvements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/improved-cloud-infra/patch-check-latency-improvements.png -------------------------------------------------------------------------------- /src/assets/blog/improved-cloud-infra/patch-installs-30d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/improved-cloud-infra/patch-installs-30d.png -------------------------------------------------------------------------------- /src/assets/blog/improved-cloud-infra/traffic-comparison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/improved-cloud-infra/traffic-comparison.png -------------------------------------------------------------------------------- /src/assets/blog/improved-patch-delivery/china-availability.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/improved-patch-delivery/china-availability.png -------------------------------------------------------------------------------- /src/assets/blog/release-logs/ConsolePatchCheckResponse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/release-logs/ConsolePatchCheckResponse.png -------------------------------------------------------------------------------- /src/assets/blog/release-logs/ConsoleShowProcessMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/release-logs/ConsoleShowProcessMenu.png -------------------------------------------------------------------------------- /src/assets/blog/release-logs/EmptyConsoleStartButtonArrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/release-logs/EmptyConsoleStartButtonArrow.png -------------------------------------------------------------------------------- /src/assets/blog/release-logs/TerminalLogcat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/release-logs/TerminalLogcat.png -------------------------------------------------------------------------------- /src/assets/blog/simplified-pricing/ProPlan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/simplified-pricing/ProPlan.png -------------------------------------------------------------------------------- /src/assets/blog/simplified-pricing/UsageLimit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/simplified-pricing/UsageLimit.png -------------------------------------------------------------------------------- /src/assets/blog/windows-desktop/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/blog/windows-desktop/screenshot.png -------------------------------------------------------------------------------- /src/assets/brands/apna-klub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/apna-klub.png -------------------------------------------------------------------------------- /src/assets/brands/chai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/chai.png -------------------------------------------------------------------------------- /src/assets/brands/flash-co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/flash-co.png -------------------------------------------------------------------------------- /src/assets/brands/invoice-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/invoice-home.png -------------------------------------------------------------------------------- /src/assets/brands/junglee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/junglee.png -------------------------------------------------------------------------------- /src/assets/brands/kalshi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/kalshi.png -------------------------------------------------------------------------------- /src/assets/brands/kijiji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/kijiji.png -------------------------------------------------------------------------------- /src/assets/brands/pushpress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/pushpress.png -------------------------------------------------------------------------------- /src/assets/brands/solides.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/solides.png -------------------------------------------------------------------------------- /src/assets/brands/tracker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/tracker.png -------------------------------------------------------------------------------- /src/assets/brands/tradeling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/brands/tradeling.png -------------------------------------------------------------------------------- /src/assets/features/all-platforms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/features/all-platforms.png -------------------------------------------------------------------------------- /src/assets/features/any-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/features/any-code.png -------------------------------------------------------------------------------- /src/assets/features/compliance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/features/compliance.png -------------------------------------------------------------------------------- /src/assets/features/quick-fix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/features/quick-fix.png -------------------------------------------------------------------------------- /src/assets/features/releases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/features/releases.png -------------------------------------------------------------------------------- /src/assets/features/rollback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/features/rollback.png -------------------------------------------------------------------------------- /src/assets/features/social-proof.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/features/social-proof.png -------------------------------------------------------------------------------- /src/assets/resources/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/resources/discord.png -------------------------------------------------------------------------------- /src/assets/resources/shorebird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/resources/shorebird.png -------------------------------------------------------------------------------- /src/assets/success-stories/covers/easyspend-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/success-stories/covers/easyspend-cover.png -------------------------------------------------------------------------------- /src/assets/success-stories/covers/junglee-games-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/success-stories/covers/junglee-games-cover.png -------------------------------------------------------------------------------- /src/assets/success-stories/covers/kijiji-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/success-stories/covers/kijiji-cover.png -------------------------------------------------------------------------------- /src/assets/success-stories/covers/pushpress-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/success-stories/covers/pushpress-cover.png -------------------------------------------------------------------------------- /src/assets/success-stories/covers/solides-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/success-stories/covers/solides-cover.png -------------------------------------------------------------------------------- /src/assets/success-stories/covers/visible-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/success-stories/covers/visible-cover.png -------------------------------------------------------------------------------- /src/assets/team/bryan-headshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/team/bryan-headshot.png -------------------------------------------------------------------------------- /src/assets/team/eric-headshot.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/team/eric-headshot.jpeg -------------------------------------------------------------------------------- /src/assets/team/felix-headshot.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/team/felix-headshot.jpeg -------------------------------------------------------------------------------- /src/assets/team/tom-headshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/team/tom-headshot.jpg -------------------------------------------------------------------------------- /src/assets/testimonials/david-paul.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/testimonials/david-paul.jpg -------------------------------------------------------------------------------- /src/assets/testimonials/esra-kadah.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/testimonials/esra-kadah.png -------------------------------------------------------------------------------- /src/assets/testimonials/jason-rai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/testimonials/jason-rai.png -------------------------------------------------------------------------------- /src/assets/testimonials/renan-araujo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/testimonials/renan-araujo.png -------------------------------------------------------------------------------- /src/assets/testimonials/scott-macdougall.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/testimonials/scott-macdougall.jpeg -------------------------------------------------------------------------------- /src/assets/testimonials/taha-tesser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shorebirdtech/website/8a31d4eb3e3b43ff3dce92cb7aaa65eefbcbd60c/src/assets/testimonials/taha-tesser.png -------------------------------------------------------------------------------- /src/components/blog/blog-callout.tsx: -------------------------------------------------------------------------------- 1 | import { Ellipse } from '@/components/ellipse'; 2 | import { GradientOutlineButton } from '@/components/ui/button'; 3 | import config from '@/config'; 4 | import NewsletterSignupForm from '../newsletter/newsletter-form'; 5 | 6 | function BlogCallout() { 7 | return ( 8 |
59 |
66 | {post.data.description} 67 |
68 |18 | It takes less than 5 minutes to integrate with your current codebase. 19 |
20 |64 | {post.data.description} 65 |
66 |{testimonial.name}
83 |{testimonial.title}
84 |Cost per patch
41 |42 | Estimate the cost to send a patch to your users. 43 |
44 |Users
59 |60 | {monthlyActiveUsers} 61 |
62 |Estimated Cost
65 |66 | {pricing.total ?? 'Contact Us '} 67 |
68 |81 | *Prices are quoted in USD and sold as "patch installs per month", 82 | reflecting successful installs of a given patch. For example, 1 83 | patch pushed to 10 devices is 10 installs. 2 patches pushed to 5 84 | devices is also 10 installs. 85 |
86 |
71 |
78 | {post.data.description} 79 |
80 |
20 | We're on a mission to make businesses successful with Flutter, and we're
21 | thrilled to have you on board.
By signing up, you'll be the first
22 | to know about new tools, updates, and insights to help you build and iterate
23 | faster.
24 |
78 | {story.data.description} 79 |
80 |