├── .gitignore ├── .vscode ├── extensions.json └── launch.json ├── README.md ├── astro.config.mjs ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── fonts │ ├── Hubot-Sans.ttf │ ├── Hubot-Sans.woff │ ├── Hubot-Sans.woff2 │ ├── Mona-Sans.ttf │ ├── Mona-Sans.woff │ └── Mona-Sans.woff2 ├── images │ ├── bot-user.png │ ├── btn-add-to-slack-small.png │ ├── btn-add-to-slack.png │ ├── console-connect.png │ ├── console-subscribe.png │ ├── graph-billing-portal.png │ ├── graph-billing-subscribe.png │ ├── graph-connect.png │ ├── graph-forget.png │ ├── graph-help.png │ ├── graph-me-1.png │ ├── graph-me-2.png │ ├── graph-me-3.png │ ├── graph-me-4.png │ ├── graph-me.png │ ├── graph-save.png │ ├── graph-search.png │ ├── remove-app.png │ ├── screenshot.png │ └── slack-mark.png ├── logo.png └── robots.txt ├── src ├── components │ ├── DocsSidebar.astro │ ├── DocsToc.astro │ ├── Faq.astro │ ├── Features.astro │ ├── Footer.astro │ ├── Hero.astro │ └── Navbar.astro ├── env.d.ts ├── layouts │ ├── DocsLayout.astro │ ├── Layout.astro │ └── PageLayout.astro ├── pages │ ├── 404.astro │ ├── _faq │ │ ├── 01-free-plan.md │ │ ├── 02-trial.md │ │ ├── 03-manage-subscription.md │ │ └── 04-more-than-max-users.md │ ├── docs │ │ ├── billing.md │ │ ├── connect.md │ │ ├── get-started.md │ │ ├── index.md │ │ ├── share.md │ │ └── slack.md │ ├── index.astro │ ├── pricing.astro │ ├── privacy.md │ ├── support.md │ └── terms.md └── styles │ └── global.css ├── tailwind.config.cjs └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | .output/ 4 | 5 | # dependencies 6 | node_modules/ 7 | 8 | # logs 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | pnpm-debug.log* 13 | 14 | 15 | # environment variables 16 | .env 17 | .env.production 18 | 19 | # macOS-specific files 20 | .DS_Store 21 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode"], 3 | "unwantedRecommendations": [] 4 | } 5 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GraphMe website 2 | 3 | ## Local development 4 | 5 | All commands are run from the root of the project, from a terminal: 6 | 7 | | Command | Action | 8 | | :--------------------- | :------------------------------------------------- | 9 | | `npm install` | Installs dependencies | 10 | | `npm run dev` | Starts local dev server at `localhost:3000` | 11 | | `npm run build` | Build your production site to `./dist/` | 12 | | `npm run preview` | Preview your build locally, before deploying | 13 | 14 | ## License 15 | 16 | Layout is based on [Landwind](https://github.com/themesberg/landwind), licensed under the MIT license: 17 | 18 | ``` 19 | MIT License 20 | 21 | Copyright (c) 2022 Themesberg 22 | 23 | Permission is hereby granted, free of charge, to any person obtaining a copy 24 | of this software and associated documentation files (the "Software"), to deal 25 | in the Software without restriction, including without limitation the rights 26 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 27 | copies of the Software, and to permit persons to whom the Software is 28 | furnished to do so, subject to the following conditions: 29 | 30 | The above copyright notice and this permission notice shall be included in all 31 | copies or substantial portions of the Software. 32 | ``` -------------------------------------------------------------------------------- /astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'astro/config'; 2 | import tailwind from "@astrojs/tailwind"; 3 | import react from "@astrojs/react"; 4 | import remarkDirective from "remark-directive"; 5 | import remarkCalloutDirectives from "@microflash/remark-callout-directives"; 6 | import sitemap from "@astrojs/sitemap"; 7 | 8 | // https://astro.build/config 9 | export default defineConfig({ 10 | site: 'https://graphme.app', 11 | markdown: { 12 | remarkPlugins: [remarkDirective, remarkCalloutDirectives], 13 | extendDefaultPlugins: true 14 | }, 15 | integrations: [tailwind({ 16 | config: { 17 | applyBaseStyles: false 18 | } 19 | }), react(), sitemap()] 20 | }); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@example/basics", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "private": true, 6 | "scripts": { 7 | "dev": "astro dev", 8 | "start": "astro dev", 9 | "build": "astro build", 10 | "preview": "astro preview", 11 | "astro": "astro" 12 | }, 13 | "dependencies": { 14 | "@astrojs/react": "^1.2.2", 15 | "@astrojs/sitemap": "^1.0.0", 16 | "@astrojs/tailwind": "^2.1.3", 17 | "@microflash/remark-callout-directives": "^1.5.0", 18 | "@tailwindcss/typography": "^0.5.8", 19 | "@types/react": "^18.0.26", 20 | "@types/react-dom": "^18.0.10", 21 | "astro": "^1.8.0", 22 | "framer-motion": "^8.0.2", 23 | "react": "^18.2.0", 24 | "react-dom": "^18.2.0", 25 | "remark-directive": "^2.0.1", 26 | "tailwindcss": "^3.2.4" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/favicon.ico -------------------------------------------------------------------------------- /public/fonts/Hubot-Sans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/fonts/Hubot-Sans.ttf -------------------------------------------------------------------------------- /public/fonts/Hubot-Sans.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/fonts/Hubot-Sans.woff -------------------------------------------------------------------------------- /public/fonts/Hubot-Sans.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/fonts/Hubot-Sans.woff2 -------------------------------------------------------------------------------- /public/fonts/Mona-Sans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/fonts/Mona-Sans.ttf -------------------------------------------------------------------------------- /public/fonts/Mona-Sans.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/fonts/Mona-Sans.woff -------------------------------------------------------------------------------- /public/fonts/Mona-Sans.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/fonts/Mona-Sans.woff2 -------------------------------------------------------------------------------- /public/images/bot-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/bot-user.png -------------------------------------------------------------------------------- /public/images/btn-add-to-slack-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/btn-add-to-slack-small.png -------------------------------------------------------------------------------- /public/images/btn-add-to-slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/btn-add-to-slack.png -------------------------------------------------------------------------------- /public/images/console-connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/console-connect.png -------------------------------------------------------------------------------- /public/images/console-subscribe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/console-subscribe.png -------------------------------------------------------------------------------- /public/images/graph-billing-portal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-billing-portal.png -------------------------------------------------------------------------------- /public/images/graph-billing-subscribe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-billing-subscribe.png -------------------------------------------------------------------------------- /public/images/graph-connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-connect.png -------------------------------------------------------------------------------- /public/images/graph-forget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-forget.png -------------------------------------------------------------------------------- /public/images/graph-help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-help.png -------------------------------------------------------------------------------- /public/images/graph-me-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-me-1.png -------------------------------------------------------------------------------- /public/images/graph-me-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-me-2.png -------------------------------------------------------------------------------- /public/images/graph-me-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-me-3.png -------------------------------------------------------------------------------- /public/images/graph-me-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-me-4.png -------------------------------------------------------------------------------- /public/images/graph-me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-me.png -------------------------------------------------------------------------------- /public/images/graph-save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-save.png -------------------------------------------------------------------------------- /public/images/graph-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/graph-search.png -------------------------------------------------------------------------------- /public/images/remove-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/remove-app.png -------------------------------------------------------------------------------- /public/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/screenshot.png -------------------------------------------------------------------------------- /public/images/slack-mark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/images/slack-mark.png -------------------------------------------------------------------------------- /public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/graphme-app/website/1fd9ee19388f1ae2f5b8c93fdc3bf130221fe9f7/public/logo.png -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / -------------------------------------------------------------------------------- /src/components/DocsSidebar.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import fs from 'node:fs/promises'; 3 | 4 | const pathname = trimTrailingSlash(Astro.url.pathname); 5 | const links = []; 6 | 7 | function trimTrailingSlash(str) { 8 | return str.endsWith('/') ? str.slice(0, -1) : str; 9 | } 10 | 11 | const pages = await Astro.glob('/src/pages/docs/*.{md,mdx}'); 12 | pages.sort((a, b) => (a.frontmatter.position < b.frontmatter.position) ? -1 : 1); 13 | pages.forEach(page => { 14 | links.push({ 15 | "label": page.frontmatter.title, 16 | "url": page.url, 17 | "active": pathname == page.url, 18 | }); 19 | }); 20 | --- 21 | 55 | -------------------------------------------------------------------------------- /src/components/DocsToc.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const { headings } = Astro.props; 3 | // Only display level 2 and 3 headings. Level 1 is the main title. 4 | const items = headings.filter(heading => heading.depth > 1 && heading.depth <= 3); 5 | --- 6 | 21 | -------------------------------------------------------------------------------- /src/components/Faq.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const questions = await Astro.glob('../pages/_faq/*.md'); 3 | --- 4 |

Frequently asked questions

5 |
6 |
7 | {questions.map((question, idx) => ( 8 |

9 | 18 |

19 |
0) ? 'hidden' : ''} 21 | aria-labelledby={`accordion-flush-heading-${idx}`}> 22 |
23 |
24 | 25 |
26 |
27 |
28 | ))} 29 |
30 |
-------------------------------------------------------------------------------- /src/components/Features.astro: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |

6 | Query dashboards directly from Slack 7 |

8 |

9 | Do you still take screenshots and upload them in Slack? 10 | GraphMe automates this process without leaving Slack. 11 |

12 |

13 | /graph me service-health:requests 14 |

15 |
16 | 19 |
20 |
21 |
22 | 23 |
24 |
25 |
26 | 29 |
30 |

31 | Save and reuse common queries 32 |

33 |

34 | Do you commonly share the same dashboards?
35 | GraphMe allows to save common queries under an alias. 36 |

37 |

38 | 39 | /graph save as logins
40 | /graph me logins 41 |
42 |

43 |
44 |
45 |
46 |
47 | 48 |
49 |
50 |
51 |
52 |

53 | Parameterize your queries 54 |

55 |

56 | GraphMe allows you to use the full power of Grafana, but providing variables, a timezone, dimensions or a time range. 57 |

58 |

59 | /graph me traffic now-7d host=srv1.graphme.app 60 |

61 |
62 | 65 |
66 |
67 |
-------------------------------------------------------------------------------- /src/components/Footer.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const year = new Date().getFullYear(); 3 | --- 4 | -------------------------------------------------------------------------------- /src/components/Hero.astro: -------------------------------------------------------------------------------- 1 | --- 2 | // Rotating words inspired by https://github.com/Shroud-email/website/blob/main/src/components/atoms/ScrollingText.vue 3 | --- 4 | 5 |
6 |
7 |
8 |

9 |
Dashboards from Grafana
10 |
11 | at your fingertips in Slack 12 |
13 |

14 |

15 | 🚀 Querying dashboards from Grafana and sharing them in Slack is now a fast and enjoyable experience! 16 |

17 |
18 | 19 | Add to Slack 20 | 21 |
22 |
23 | 29 |
30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /src/components/Navbar.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const pathname = Astro.url.pathname; 3 | const links = [ 4 | {"label": "Features", "url": "/"}, 5 | // {"label": "Changelog", "url": "/changelog"}, 6 | {"label": "Pricing", "url": "/pricing"}, 7 | {"label": "Docs", "url": "/docs"}, 8 | ]; 9 | links.forEach(link => link.active = (link.url == "/") ? pathname == link.url : pathname.startsWith(link.url)); 10 | --- 11 | 12 |
13 | 48 |
-------------------------------------------------------------------------------- /src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/layouts/DocsLayout.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Layout from './Layout.astro' 3 | import DocsSidebar from '../components/DocsSidebar.astro' 4 | import DocsToc from '../components/DocsToc.astro' 5 | 6 | const { frontmatter, headings } = Astro.props; 7 | --- 8 | 9 |
10 |
11 | 12 |
13 | 14 |
15 | 16 |
17 |
18 |
-------------------------------------------------------------------------------- /src/layouts/Layout.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import "../styles/global.css" 3 | import Navbar from "../components/Navbar.astro" 4 | import Footer from "../components/Footer.astro" 5 | 6 | export interface Props { 7 | title: string; 8 | } 9 | 10 | const { title } = Astro.props; 11 | --- 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | {title} | GraphMe 21 | 22 | 23 | 24 |
25 | 26 |
27 |